Learning Vim: лучший способ убрать пробел между словами - PullRequest
6 голосов
/ 07 февраля 2011

Я опытный разработчик на платформе Windows, и я пытаюсь научить себя, как использовать Vim.Я довольно хорошо разбираюсь в регулярных выражениях и понимаю принципы использования Vim.Тем не менее, у меня есть конкретная проблема, и, хотя у меня есть решение, кажется, что должно быть лучшее.

У меня есть файл, который содержит строку, подобную следующей:

CODE<tab><tab>Lorem ipsum dolor sit amet

Может быть переменное число символов <tab> или <space> между CODE и Lorem.Предполагая, что курсор находится над 'C' CODE в обычном режиме, я хочу найти комбинацию клавиш, которая выдаст следующий результат, и оставить курсор между 'E' CODEи он 'L' из Lorem в режиме вставки.

CODELorem ipsum dolor sit amet

Мое настоящее решение заключается в использовании следующей последовательности клавиш:

w d ? \ s \ +

Это работает, но кажется нелогичным пройти мимо того, что я хочу удалить, прежде чем я смогу его удалить.Я чувствую, что должен перейти к концу CODE и удалить вперед.Я понимаю, что это может быть просто идиома Vim, о которой я не знаю.Я также мог бы упустить ключевой элемент знаний Vim.

Какой лучший способ достичь моей цели?

Ответы [ 2 ]

19 голосов
/ 07 февраля 2011

e l d w сделает это.

  • e - перейти вперед к концу слова
  • l - переместить 1 символ вправо
  • dw - удалить все пробелы

Если курсор находится в середине некоторого пробела, d i w удалит пробел слева и справа от курсора.(Если оно находится где-то в середине слова, оно удалит слово.)

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

Некоторые альтернативы:

:s/\s\+//
e xx
elxx
eldtL
f<tab>xx
eldw
...