В последнее время я резко сократил количество используемых плагинов, поэтому я ищу ответы, используя только встроенные функции Vim.
Я заметил недостаток в моем рабочем процессе, когда я редактирую много буферов: я нахожусь в буфере, и я хочу переключиться на другой, который я не помню имя, и который не является альтернативным буфером , Таким образом, использование :b#
невозможно, и использование завершения с командой также :b
не удобно.
Для этого я делал следующее:
- Сначала используйте,
:buffers
чтобы получить список открытых буферов - Запомните номер буфера, который я хочу использовать
- Нажмите, Enterчтобы закрыть список буферов
- Использовать
:bX
сX
номером используемого буфера.
Этот рабочий процесс показался мне довольно тяжелым, поэтому я добавил следующие строки в свой
.vimrc
:
" Improve the navigation in the buffers
nnoremap <Leader><S-b> :B<CR>
command! B call Buffers()
function! Buffers()
execute "buffers"
let buffer=input("Enter a buffer:")
execute "b" . buffer
endfunction
Это дает мне команду :B
(и отображение), которая вызывает функцию, :buffers
ожидает ввода и, наконец, вызывает, :b
а затем вводит.
Это работает хорошо, но я удивлен, что мне пришлось разработать такую функцию: обычно Vim имеет довольно эффективный рабочий процесс по умолчанию, поэтому мне интересно, есть ли лучший способ переключиться на буфер, из которого я не знаю ничего, кроме что это уже было открыто в моей сессии редактирования.
:b#
это не то, что я ищу, но да, тот факт, что вы можете сохранить нажатие клавиши, введя напрямую, :b
не нажимая enter
раньше, интересен. (На самом деле это может быть слишком легко, чтобы быть ответом, но это стоило комментировать :-))
#
символ в качестве замены (буферного) числа, а не буквальный #
символ.
:ls
после:b#
(не нужно сначала нажимать return или escape, можно перейти непосредственно из списка буферов в 'ls'.) (Публикация в виде комментария, потому что он не кажется достаточно существенным, чтобы быть ответом? Также интересно, если я что-то