Как ярлык алмазного персонажа в Vim - PullRequest
4 голосов
/ 05 мая 2010

В файл словаря, который я редактирую, мне часто нужно вставить символ "◊" вместо <>. Есть ли способ сопоставить "◊" с какой-либо клавишей, чтобы я нажимал "r" для замены, а затем my_shortcut, чтобы заменить <> на "◊" ? Я нашел способ сделать отображение IMAP в .vimrc:

:imap <> ◊

Но переход в режим вставки является неоптимальным, было бы возможно сделать все это в режиме replace и что мне для этого написать в .vimrc?

Ответы [ 3 ]

6 голосов
/ 05 мая 2010

со следующей картой

:map r<> :%s/<>/◊/g<CR>

вы можете нажать r<>, который заменит все <> на ◊ в текущем буфере.

Карта (или, скорее, замена, которая вызывается с ней) даст вам ошибка E486, если шаблон не найден. Если вы не хотите такую ​​ошибку, вы будете хотите указать флаг e для команды подстановки:

:map r<> :%s/<>/◊/ge<CR>

Вы можете поместить одно из этих сопоставлений в файл .vimrc.

5 голосов
/ 05 мая 2010

вы также можете использовать функцию орграфа vim, нажмите CTRL-K, а затем cD, и вы получите ромб. Или, если CTRL-K сопоставлен с чем-то другим (некоторые сценарии имеют тенденцию переназначать его), вы можете :set digraph и использовать c <BS> D в режиме вставки.

2 голосов
/ 23 мая 2010

Вы пытались использовать для него аббревиатуру? Вы можете сделать:

:abbr <> ◊

И затем каждый раз, когда вы вводите <> с последующим пробелом (или любым символом, не являющимся ключевым словом) в режиме вставки, он заменяется на '' ◊ ''.

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