удаление vim до одного символа до конца строки - PullRequest
0 голосов
/ 05 октября 2018

Я могу нажать $, чтобы перейти к концу строки, поэтому, если я хочу удалить все до EOL, я могу сделать d$ (или D).Что если я хочу удалить до столбца EOL - 1 символ (или - n символов в более широком смысле)?

Пример

У меня есть строка 1234.567890, где . представляет курсор и требуется1234.0 (. снова представляет курсор).

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

Если между ними нет идентичных символов (или их легко определить), команды f и t очень полезны, потому что они просто включают два нажатия клавиш (команду и целевой символ, возможно, с добавлением префикса).на [count]) и (в отличие от более общего /...<CR>) они ограничены текущей строкой.Для вашего примера это было бы dt0 затем.

Для более сложных сценариев, прежде чем я остановлюсь и подробно рассмотрю возможные решения, визуальный режим - это быстрая альтернатива, которая позволяет вам итеративно отрегулируйте область перед применением команды.Я думаю, что это отличное прагматичное дополнение к оригинальному набору команд vi .Для вашего примера это будет v$hd.

0 голосов
/ 05 октября 2018

Для этого нет встроенного механизма, но вы можете легко создать свой собственный с помощью :omap.Он будет работать с любым оператором.

:onoremap <silent> q :<C-U>normal! v$hh<CR>

Теперь dq будет делать то, что вы хотите, а также cq менять до последнего символа, vq, yq и т. Д.on.

Это работает, заменяя q вызовом :normal, чтобы инициировать визуальный выбор, до конца строки (v$) и обратно на два символа (это потому, что $выбирает до самой новой строки).<C-U> очищает любой возможный диапазон.

0 голосов
/ 05 октября 2018

Как насчет

d/.$<CR>

Удаляет до одного символа до EOL.

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