Как использовать движения плагина vim easy motion с командами y / c / d? - PullRequest
2 голосов
/ 06 февраля 2020

Я использую плагин easymotion (https://github.com/easymotion/vim-easymotion) с vim. Если вы используете движения F / F в VIM (с плагином easymotion), легкое движение выделяет все возможные позиции, когда есть несколько совпадений, таким образом, вы можете легко перейти к желаемой позиции.

Но это не так работать с командами y / c / d, как мне этого добиться? Ниже приведен пример для пояснения:

This is some line.

Скажем, я работаю над строкой выше в vim, и курсор находится на i в "This". Если я сделаю «yfs» в vim, я бы хотел, чтобы легким движением было отмечено три «s» справа от курсора. Таким образом, я могу легко восстановить / изменить / удалить до нужного значения.

Заранее спасибо!

1 Ответ

3 голосов
/ 06 февраля 2020

Вы можете использовать что-то подобное в вашем .vimr c:

" Find next occurence of a char using easymotion
map  <Leader>f <Plug>(easymotion-bd-f)
nmap <Leader>f <Plug>(easymotion-overwin-f)

Теперь вы можете сделать что-то вроде y<Leader>fs, и оно выделит три s-символа. Выбор одного из них приведет к рывку от позиции курсора к этому символу.

Если это не работает

Это означает, что есть другие привязки клавиш, которые используют ту же комбинацию. Вы можете проверить это с помощью :map и затем найти комбинацию клавиш, которую вы пытаетесь сопоставить с easy-motion. Удаление этой привязки клавиш из вашего .vimrc или удаление плагина, создавшего привязку, должны решить эту проблему.

Если это плагин YankRing, который угоняет нажатия клавиш y / c / d, вы можете добавить следующее в свой vimr c, чтобы предотвратить это (проверьте :h yankring для получения дополнительной информации):

let g:yankring_zap_keys = ''
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...