У меня есть текст, подобный следующему в файле:
sample text
some random text
even more random text
text with no indent
worst indention
Мне нужно удалить пустое пространство перед каждой из строк. Для одной строки я делаю
0dw
Я могу повторить ту же команду, используя. но вручную переходя к следующим строкам.
Но есть ли способ применить '0dw' к этому блоку линий?
Я предполагаю, что есть способ использовать макросы, но я не использовал их раньше. Но я готов выучить их, если нет другого выбора.
text-processing
vim
saiy2k
источник
источник
Ответы:
Узнайте больше здесь на http://vim.wikia.com/wiki/Remove_unwanted_spaces
Если вы хотите сделать это для определенного диапазона строк:
Кстати, лучший способ начать изучение vim - это выполнить
vimtutor
команду, она научит вас использовать Vim в редакторе Vim.источник
V
и перемещая курсор, чтобы расширить выбор линий. Затем нажмите:
для автоматического входа'<,'>
, и с этого момента вы можете использовать регулярное выражение Nikhil.:'a,'bs/^\s\+//
.Альтернативный способ сделать это - использовать инструменты отступов VIM (обычно связанные с </ >). Для начала вам нужен способ указать, какие строки будут затронуты. Вы можете использовать режим визуального выбора или любое другое средство задания диапазона линий, на которые нужно воздействовать, а затем использовать произвольно большое число или уровни отступов для удаления.
9<
обычно делает довольно неплохо, чтобы удалить как минимум 9 уровней возможных отступов (табуляции / пробелов) из текущей строки (строк).источник
У меня есть подход, чтобы сделать это в следующих простых шагах:
Объяснение третьего шага:
0
Переходит к началу строки.dw
удаляет слово (пробелы).normal
применяет команду0dw
.'<,'>
повторяет нормальное для всех выбранных линий в визуальном режиме.источник
ctrl+v
позволяет делать что-то похожее на то, что вы хотите, но не совсем так. Вы можете выбрать визуальный блок и применить одну команду к лоту.источник
:normal
- это важная вещь здесь, и я думаю, что это лучший ответ здесь. Не могли бы вы опубликовать это как ответ?