Правильный ввод команды в визуальном режиме - PullRequest
1 голос
/ 04 февраля 2011

Мне нужно сделать карту для визуального режима, чтобы применить некоторые команды только к выделению.Это означает, что '<,'> должен появиться в командной строке.

Поскольку они появляются автоматически при вводе :, я сделал сопоставления без разделителей, что-то вроде vmap ,{key} :{command}.Пока это работает, они отображаются как :'<,'>{command}.

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

Ответы [ 2 ]

4 голосов
/ 04 февраля 2011

Да, на такое поведение можно положиться.Vim всегда вставляет маркеры визуального диапазона ('< и '>), когда вы нажимаете : в визуальном режиме.Поскольку карта - это просто способ сохранить последовательность нажатий клавиш (игнорируя <expr> карты), она действует так же, как вы ее набрали.

3 голосов
/ 04 февраля 2011

Вы можете использовать <c-u> в начале вашего отображения, чтобы очистить любой диапазон, который может там быть, а затем явно добавить маркеры диапазона (:<c-u>'<,'>).

  • :help omap-info
  • :help c_CTRL-U
...