1

Я хочу сопоставить :b<buffer_number><cr> с <leader>b<buffer_number> . Я имею:

nmap <leader>b :b

этого недостаточно, потому что мне все еще нужно нажать Enter. Я также попробовал:

nmap <leader>b :execute 'b' (v:count) <cr>

2 ответа2

2

Чтобы использовать [count] , вы можете определить:

nnoremap <leader>b :<C-u>execute 'b' v:count<cr>

При этом вам нужно добавить число, например 4<Leader>b , что также согласуется с другими командами Vim. <C-u> удаляет автоматически добавленный диапазон.

Проблема с конечным счетчиком заключается в определении количества цифр для запроса; Затем вам нужно либо указать все цифры (т. е. 03 вместо 3), запросить другой ключ для завершения сопоставления или дождаться тайм-аута.

Вот упрощенное отображение, которое запрашивает только одну цифру:

nnoremap <leader>b :execute 'b' nr2char(getchar())<cr>

(PS: Вы должны использовать :noremap ; это делает отображение невосприимчивым к переназначению и рекурсии.)

1

Уже есть [count]<C-^> (или [count]<C-6> на некоторых раскладках клавиатуры):

2<C-^>
6<C-^>

и так далее…

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