Я хочу сопоставить :b<buffer_number><cr>
с <leader>b<buffer_number>
. Я имею:
nmap <leader>b :b
этого недостаточно, потому что мне все еще нужно нажать Enter. Я также попробовал:
nmap <leader>b :execute 'b' (v:count) <cr>
Я хочу сопоставить :b<buffer_number><cr>
с <leader>b<buffer_number>
. Я имею:
nmap <leader>b :b
этого недостаточно, потому что мне все еще нужно нажать Enter. Я также попробовал:
nmap <leader>b :execute 'b' (v:count) <cr>
Чтобы использовать [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
; это делает отображение невосприимчивым к переназначению и рекурсии.)
Уже есть [count]<C-^>
(или [count]<C-6>
на некоторых раскладках клавиатуры):
2<C-^>
6<C-^>
и так далее…