Как я применяю команду ко всем строкам?


19

Если я хочу сделать отступ для всех строк в документе, я могу напечатать, >Gчтобы применить его к текущей строке и ниже, а затем и >ggприменить ее к строкам выше.

Есть ли комбинация, которую я могу использовать, чтобы просто применить >ко всем линиям одновременно?

Ответы:


19

Вы ищете :>команду и диапазон 1,$( %для краткости) для всего файла.

:%>

Для получения дополнительной помощи см .:

:h :>
:h :range

5
Из-за названия этого вопроса («применить команду ко всем строкам»), я чувствую, что стоит отметить, что в примере в вопросе упоминается оператор нормального режима >, в то время как в этом ответе используется команда командного режима :>. Строго говоря, это не одно и то же. То, что они имеют одно и то же имя, следует считать совпадением; не думайте, что вы можете менять операторы и команды в целом. Например, gUоператор преобразует текст в верхний регистр, но :%gUэто не является допустимым команда применить тот же для всего буфера.
Tommcdo

7

Один из способов сделать отступ во всех строках документа:

:%>

3

Не выходя из обычного режима вы можете просто сделать:

gg>G

2
недостатком здесь является то, что вы теряете свою позицию в файле
TankorSmash

Все остальные ответы разделяют этот недостаток, и ОП не упомянул «уважение положения курсора» как требование.
romainl

1
<co> может использоваться для возврата к вашей предыдущей позиции. Решение romainl требует, чтобы вы возвращались дважды, в то время как для другого требуется возврат только один раз
Бретт Y

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

1
Вот почему это не понижается. Это просто записка о том, что где-то есть лучший вариант, и что они должны продолжать искать. Например, на программном сайте SE небрежный код, который решает проблему, решает проблему, но вы все равно ожидаете найти другое решение, которое решает проблему и выглядит хорошо.
TankorSmash

3

Еще один вариант, который еще не был упомянут:

:g/^/>

Это запустит команду >на всех линиях, которые соответствуют шаблону ^.

Недостатком является то, что это перезапишет вашу историю поиска.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.