Я использую оконный менеджер листов (потрясающий) + терминальный мультиплексор (tmux) + разделение внутри vim. У меня вообще нет оконных декораций, так что у вас вообще нет визуального разделения между ними, если содержание программы не выдает его. Я вполне доволен этой парадигмой, так как в любом случае использую несколько мониторов и групповые задачи на экране. Если бы у двух окон не было причин быть рядом, их бы там не было.
Однако это создает некоторый визуальный диссонанс, где наиболее очевидное разделение визуально является наименее значимым семантически.
- Xorg window ‹|› window = вообще ничего
- Tmux pane ‹|› pane = 1px разделительная линия
- Vim split ‹|› split = цветной столбец шириной 1 символ
Вот пример, показывающий по одному на каждой стороне окна, панели и разделение vim:
Даже без перехода к версии с полным разрешением, белая разделительная линия, которую вы видите, является наименее значимым разделением на экране, панелями vim. (Обратите внимание, что серый столбец справа от сеанса vim на самом деле является выделением 80-го столбца, а не делителем, хотя я часто работаю с таким размером.)
Я знаю, как изменить характер, нарисованный в расколе или уменьшить контрастность цветовой схемы. То, что я хотел бы сделать, это использовать ту же панель разделения, что и tmux, которая не занимает никакой ширины, потому что она рисуется между столбцами, а не в одном. Это возможно с терминалом на основе vim? Gvim? Neovim? Опираясь на создание визуально ненавязчивого разделителя, можно ли полностью отключить разделительную колонку?
PS Причина использования визуально подобного разделителя имеет смысл, потому что я использую одни и те же привязки клавиш для навигации между панелями tmux и разделениями vim. Одни и те же клавиши плавно перемещаются между ними, это имело бы смысл только в том случае, если бы визуальные границы были такими же.
hi VertSplit cterm=NONE
потому что это поreverse
умолчанию.Нет, это не может быть сделано в Vim, и, вероятно, будет очень трудно реализовать в GVIM.
Vim придерживается адресации на основе ячеек, используемой в терминале; внутри буфера это важно для последовательной вертикальной навигации с помощью
j
/k
. Эта адресация по координатам x и y на основе ячеек настолько укоренилась в реализации Vim, что, мне кажется, ее очень трудно преодолеть.Также обратите внимание
:help design-not
:источник
Даже в моем собственном снимке экрана tmux не использует никакой магии, разделение - это столбец шириной в один символ. Менее навязчивым визуальным эффектом является использование рисованного символа Unicode, который не такой громоздкий, как по умолчанию в Vim ASCII, и отсутствие выделенного цвета фона.
Почти такой же эффект возможен в vim, добавив что-то вроде следующих строк в файл rc:
Использование
autocmd
гарантирует, что переопределение подсветки остается в силе, если вы переключаете цветовые схемы. Вы можете или не можете хотеть это поведение, поскольку у некоторой цветовой схемы есть разумные значения для этой цветовой группы.Также обратите внимание, что
cterm=NONE
это необходимо, чтобы переопределить некоторые цветовые схемы, которые устанавливают это значение, чтобы неreverse
связываться с любыми значениями fg / bg, которые вы пытаетесь использовать.источник