#vim #mapping
#vim #сопоставление
Вопрос:
Я хочу сопоставить некоторые комбинации. Я читал :h map
долгое время, но я до сих пор не понимаю, как сопоставить «d» и «y», чтобы они выполняли следующие действия ( { }
необязательно):
d{count}{movment} => "_d{count}{movment}
{"reg}<Leader>d{count}{movment} => {"reg}d{count}{movment}
Я хочу d
действительно удалить текст, чтобы знакомые d3d
, d3w
, diw
, и т.д. действительно удаляли текст. <Leader>d
вырезать в регистр "1
(если не указано) или в конкретный регистр.
y{count}{movment} => y{count}{movment} call my_func()
"reg y{count}{movment} => "reg y{count}{movment}
То же самое с y
, но здесь y{count}{movment}
необходимо скопировать и вызвать мою функцию. И "reg y{count}{movment}
просто должен работать как обычно.
Я бы хотел, чтобы это работало в визуальном и обычном режиме.
Ответ №1:
-
Это зло, и его не следует делать. Это имеет смысл только в том случае, если вы ищете личный «вызов», но в этом случае вам лучше понять это самостоятельно. Но если вам все еще нужна подсказка, я бы, наверное, начал с
:h 'opfunc'
-
Это легко достижимо, если ваш Vim достаточно современный (8.1 ). Просто перехватывайте
:h TextYankPost
и делайте свои вещи оттуда.