Удалите все произвольные пробелы перед строкой в ​​Vim - PullRequest
45 голосов
/ 07 января 2011

Я написал плагин для анализа тега XML.Содержимое внутри тега имеет отступ, и когда я копирую проанализированную строку в файл, она выглядит следующим образом:

    Example line
        This is part of the parsed line
        Thats goes one
    End of line

Я хочу удалить все пробелы перед этими строками, окончательный текст должен быть

Example line
This is part of the parsed line
Thats goes one
End of line

Я пытался использовать =, но это не работает так, как я хочу.Как я могу сделать это с минимальными нажатиями клавиш?

Ответы [ 9 ]

130 голосов
/ 07 января 2011

Для форматирования строки слева я использую :left. Используйте этот формат всего файла:

:%le
12 голосов
/ 07 января 2011

Простой поиск / замена s/^\s*// должен помочь, но, вероятно, это не минимальная версия.

9 голосов
/ 07 января 2011

Лично я бы визуально выделил строки с помощью V, а затем использовал 99<, чтобы выдвинуть текст как можно дальше влево.

5 голосов
/ 07 января 2011

Просто введите d, затем w, затем j в начале каждой строки.

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

Как насчет этого:

:%s/^ *//

Или вы ищете решение для vim-script?

1 голос
/ 23 сентября 2016

Чтобы удалить начальные пробелы и символы табуляции в указанных номерах строк (например, в строках с 5 по 10),

:5,10s/^\s*//
0 голосов
/ 12 сентября 2017

Еще один способ добиться этого - использовать обычную команду :h :normal-range

:%norm d^

. Она переходит к столбцу 0 в каждой строке (% ) и удаляет (d ) до первого небелого символа ( ^ ).

Это немного больше для ввода в качестве принятого ответа, но допускает простое расширение, если у вас есть более сложныйИмеется в виду сценарий, такой как дополнительный отказ от комментариев или около того:

:%norm d^I# 

В результате:

#Example line
#This is part of the parsed line
#Thats goes one
#End of line
0 голосов
/ 15 апреля 2014

Удалить все последовательные пробелы: :%s/ */ /g

Мне было полезно перейти от:

$screen-xs-min:              480px;
$screen-sm-min:              768px;
$screen-md-min:                992px;
$screen-lg-min:                  1200px;

До:

$screen-xs-min: 480px;       
$screen-sm-min: 768px;       
$screen-md-min: 992px;           
$screen-lg-min: 1200px;                                                                                                 
0 голосов
/ 07 января 2011

Поиск / замена, предложенные Лукашем Лалинским или подходом %le на странице викия, вероятно, способ, которым я бы это сделал, но в качестве другой альтернативы вы также можете сделать:

:%< 99

Как быстрый способ сместить весь файл (%) 99 раз влево.

...