2

Для переключения между буферами без установки каких-либо плагинов хорошим способом является

:b <tab>

Который показывает все текущие имена буферов в строке состояния, и вы можете выбрать один с помощью клавиш курсора и ввести.

Но:b <tab> - это 5 нажатий клавиш, и я хотел бы сопоставить его с <лидером>.

Но установка следующего не работает.

:nnoremap <Leader>. :b <Tab>

Он показывает «:b ^ I» в строке состояния и фактически не открывает имена буферов в строке состояния.

Кто-нибудь знает почему?

2 ответа2

4

Вам нужно установить настройку wildcharm . Попробуй это:

set wildcharm=<Tab>
nnoremap <leader>. :b <Tab>

По крайней мере, это работает здесь.

1

Я думаю, что это как-то связано с тем, что <tab> не является реальным аргументом для :b .

Если вы отбросите вкладку, как в nnoremap <leader>. :b<space> вы можете нажать <tab> чтобы получить меню.

Для вызова меню у вас осталось всего три нажатия, но вам все равно, возможно, придется нажимать <tab> еще раз, чтобы выбрать правильный буфер, и нажать <CR> . Это минимум 4 нажатия клавиш, если вы хотите 1-й буфер, что довольно неплохо, но что, если вы хотите 7-й или 12-й буфер?

Могу ли я предложить другой способ?

nnoremap <leader>. :ls<CR>:b<Space>

При таком отображении отображается список буферов (:ls) и инициируется команда :b , ожидающая номер буфера в качестве аргумента. Это 4 нажатия клавиш (,.5<CR>), любой буфер, к которому вы хотите перейти (ну, если у вас есть 10 или более буферов, то это будет 5 нажатий клавиш, но вы получите точку).

Я не знаю, как вы могли бы сделать это короче, кроме сопоставления одной клавиши (например, <F11> или чего-то еще).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .