Визуальный режим VIM: выделите последние 2 символа в каждой строке? - PullRequest
3 голосов
/ 30 октября 2008

Мне нравится визуальный режим Vim. v для выделения / выбора символов или линий, Ctrl v для выделения прямоугольника, насколько я знаю (я новичок). Есть ли способ использовать визуальный режим, чтобы выделить два последних символа, например, в каждой строке для некоторых выбранных строк? Выделенные строки имеют разную длину. По сути, я хотел бы найти быстрый способ удалить последние два символа для некоторых выбранных строк. Не уверен, что могу использовать визуальный режим для выделения неправильной области.

Ответы [ 2 ]

9 голосов
/ 30 октября 2008

Мой подход к решению этой проблемы заключается в использовании выбора линии (shift-V, перемещение курсора) для выбора интересующих линий, а затем введите:

 :s/..$//

Это замена с использованием регулярного выражения ..$, которое будет соответствовать двум последним символам в конце строки. Затем замените «ничто», т.е. удалите.

В vim, когда вы нажмете : с активным выделением строки, в командной строке отобразится:

:'<,'>

Что является началом и концом адресов выбора для следующей команды (в данном случае s)

3 голосов
/ 30 октября 2008

Я не могу придумать способ сделать это в визуальном режиме, но вы можете использовать такую ​​команду, как это ...

:10,20 normal $xx

Это будет идти к каждой строке между номерами 10 и 20, использовать $ для перехода в конец строки, а затем дважды использовать x для удаления двух символов. Normal просто говорит vim использовать следующие символы, как если бы они были сочетаниями клавиш, введенными в обычном режиме (т. Е. После нажатия клавиши esc).

Это помогает?

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