Большое спасибо, это поведение vim сильно меня задело! Кстати, последняя версия bufkill находится на github.com/qpkorr/vim-bufkill
fsrechia
327
bp|bd # сделаю это.
Детали: bp("buffer previous") перемещает нас в другой буфер в текущем окне ( bnтоже будет работать), затем bd #("buffer delete" "альтернативный файл") удаляет буфер, из которого мы только что удалили. См: help bp, help bd, help alternate-file.
Вы не представляете, как долго я искал что-то подобное, настолько простое, не требующее полного запуска скрипта. В моем VIMRC у меня теперь это сопоставлено для CTRL + C:nnoremap <C-c> :bp\|bd #<CR>
Облако
11
Я пытаюсь переназначить, используя nmap <silent> <leader>d :bp|bd #<CR>, но я получаю E94: No matching buffer for #<CR>.
Фабио Перес
22
Положите обратную косую черту перед |(например :bp\|bd)
грязью
4
Я знал, что мне не нужно устанавливать плагин для этого. Спасибо!
Акаш Агравал
2
b#|bd #переключится на последний использованный буфер вместо следующего / предыдущего. Тем не менее, он будет переходить к скрытым буферам, если у вас есть set hidden, поэтому я сделал более интеллектуальную функцию BD, чтобы избежать этого.
c24w
15
Вы можете добавить следующее к вашему, .vimrcчтобы Bdработать как, bdно не касаясь разделения окна:
command Bd bp\|bd \#
Я нашел это как полезное дополнение к тому, что ответила Грязь.
И вы можете добавить 3 команды для выгрузки, удаления и удаления буфера: команда! BUN bp \ | bun \ # команда! Команда BD bp \ | bd \ #! BW bp \ | bw \ #, что эквивалентно тому, что предоставляет bufkill, но с 3 строками в vimrc вместо плагина с 700+ строками!
августа
3
Для меня это работало только с этим в .vimrc command! Bd bp|bd #. Команда выше с `` оставила буфер в списке буферов.
Я делаю что-то похожее на @Mud, но переключаюсь на предыдущий буфер просмотра #, вместо предыдущего буфера в списке буферов. Вот обязательный ключ в моем .vimrc:
Но я нашел определенные случаи, когда это закрывало мое окно. Кроме того, следующий или предыдущий буфер может быть не тем, что вы хотите отобразить в разделении.
Теперь я делаю это:
переключиться на буфер, над которым я хочу работать
DeleteCurBufferNotCloseWindow()
работает хорошо и вполне читабельно] ( stackoverflow.com/a/44950143/3625404 ).Ответы:
Мне очень нравится bufkill.vim есть GitHub репо , а также
источник
bp|bd #
сделаю это.Детали:
bp
("buffer previous") перемещает нас в другой буфер в текущем окне (bn
тоже будет работать), затемbd #
("buffer delete" "альтернативный файл") удаляет буфер, из которого мы только что удалили. См:help bp
,help bd
,help alternate-file
.источник
nnoremap <C-c> :bp\|bd #<CR>
nmap <silent> <leader>d :bp|bd #<CR>
, но я получаюE94: No matching buffer for #<CR>
.|
(например:bp\|bd
)b#|bd #
переключится на последний использованный буфер вместо следующего / предыдущего. Тем не менее, он будет переходить к скрытым буферам, если у вас естьset hidden
, поэтому я сделал более интеллектуальную функцию BD, чтобы избежать этого.Вы можете добавить следующее к вашему,
.vimrc
чтобыBd
работать как,bd
но не касаясь разделения окна:command Bd bp\|bd \#
Я нашел это как полезное дополнение к тому, что ответила Грязь.
источник
command! Bd bp|bd #
. Команда выше с `` оставила буфер в списке буферов.См. Удаление буфера без закрытия окна на вики-подсказках VIM.
источник
Я делаю что-то похожее на @Mud, но переключаюсь на предыдущий буфер просмотра
#
, вместо предыдущего буфера в списке буферов. Вот обязательный ключ в моем.vimrc
:Закройте окно расположения, если оно существует, переключитесь на предыдущий буфер просмотра, а затем закройте последний переключенный буфер.
источник
Мой выбор
Думай так! /// <1. Буфер отзыва> | <2. Удалить буфер>
Зачем?! Это легко запомнить 3 (+ 1) ключевое слово!
Это легко и очень полезно во многих других случаях!
Хорошего дня! :)
источник
Я использовал для:
Но я нашел определенные случаи, когда это закрывало мое окно. Кроме того, следующий или предыдущий буфер может быть не тем, что вы хотите отобразить в разделении.
Теперь я делаю это:
nnoremap <leader>d :bd#<CR>
источник