отображение ключей vim для запуска командной строки, например 9: s / погладить / суб / GE <cr>: - PullRequest
1 голос
/ 06 апреля 2019

Если я хочу запустить команду: s в 9 строках текста, я набираю 9: s, и vim устанавливает командную строку как

:.,+8s  

, что очень полезно. Но как я могу заставить это поведение применяться в сопоставлении клавиш?

Я пробовал следующие сопоставления:

nmap _p :s/etc  
nmap _p :^Us/etc  
nmap _p ^U:s/etc  
nmap _p :^Ulet @l=v:count1<cr>:exe @l.'s/etc'  
nmap _p :^Ulet @l=v:count1<cr>:exe @l.':s/etc'  
nmap _p :^Ulet @l=v:count1<cr>:exe '.,+'.@l-1.'s/etc'  

Первые 3 все обрабатывали 9_p, как если бы это было _p, следующие 2 обрабатывали его как _p, но применяли его к строке 10 текста, в то время как последнее усилие велось как первые 3

Ответы [ 2 ]

1 голос
/ 07 апреля 2019

Вы можете использовать следующую карту:

nnoremap _p :<c-u>exe".,+".v:count." s/etc"<cr>

, которая выполнит команду .,+N s/etc, где N - это счетчик нормального режима.

1 голос
/ 07 апреля 2019

Используйте :normal, чтобы взять счет для отображения:

nmap _p :normal :s/etc/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...