Как @RusAlex, я не люблю плагины.Мне также нравится знать, какой код я на самом деле ввожу.
nmap ,d :b#<bar>bd#<CR>
Короче говоря это добавляет сопоставление клавиш в обычный режим vim, ожидая последовательность клавиш ,d
.При выполнении это переключается на ранее открытый буфер и пытается удалить буфер, с которого вы переключились.
Удаление внеэкранного буфера сохраняет экран разделенным, как есть.
Команда состоит изтри разделенные пробелами части:
nmap
- добавление / изменение соответствия клавиш для нормального режима ,d
- последовательность клавиш, на которые нужно реагировать;сначала ,
(запятая), затем d
:b#<bar>bd#<CR>
- последовательность клавиш для выполнения
Команда для выполнения состоит из пяти частей:
:
- переключить vim в командную строку режима b#
- переключить окно в ранее открытый буфер <bar>
- ожидать команду на выполнение;представляет |
(символ трубы);используется для создания цепочек команд bd#
- удалить ранее открытый буфер, т. е. буфер только что отключился от <CR>
- выполнить команду (и);представляет возврат каретки, в основном ключи Return
или Enter
Команда в том формате, в котором она используется в файле конфигурации, например ~/.vimrc
.Если вы хотите добавить сопоставление из vim, вы добавляете :
(двоеточие) - сопоставление будет потеряно при выходе из vim:
:nmap ,d :b#<bar>bd#<CR>
Когда вы открываете vim, этообычно в обычном режиме, в отличие от режимов вставки (обозначается в нижней части экрана -- INSERT --
после нажатия i
), визуального отображения и так далее.n
в nmap
указывает сопоставление клавиш, которое будет добавлено только в обычный режим.Подробнее о отображениях здесь
Важные примечания:
b#
переключится на текущий буфер, если он является единственным известнымbuffer. b#
может переключиться на скрытый / закрытый буфер, например тот, который вы только что закрыли нажатием ,d
. bd#
закроет текущий буфер, если этоединственный известный буфер, не разделяющий экран, оставляющий вас с пустым буфером. bd#
потерпит неудачу, если буфер, на который был переключен буфер, является скрытым / закрытым буфером. bd#
все еще не будет разделен, еслипосле переключения другое окно показывает закрытие буфера.
Дополнительные примечания:
:windo b#
переключит все окна в ранее открытый буфер.Не уверен, как сочетать с bd
. <CR>
можно не указывать, в этом случае необходимо вручную нажать Return
или Enter
для выполнения. :nmap ,
отображает все сопоставления в нормальном режиме, начиная с ,
. :ls
перечисляет открытые буферы.