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

19

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

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

DRS
источник

Ответы:

19

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

:%>

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

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

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

:%>
user21497
источник
3

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

gg>G
romainl
источник
2
недостатком здесь является то, что вы теряете свою позицию в файле
TankorSmash
Все остальные ответы разделяют этот недостаток, и ОП не упомянул «уважение положения курсора» как требование.
romainl
1
<co> может использоваться для возврата к вашей предыдущей позиции. Решение romainl требует, чтобы вы возвращались дважды, в то время как для другого требуется возврат только один раз
Бретт Y
Конечно, вы можете оценить ценность сохранения своего места и то, как будет ценен ответ, который поможет сохранить эту позицию.
TankorSmash
1
Вот почему это не понижается. Это просто записка о том, что где-то есть лучший вариант, и что они должны продолжать искать. Например, на программном сайте SE небрежный код, который решает проблему, решает проблему, но вы все равно ожидаете найти другое решение, которое решает проблему и выглядит хорошо.
TankorSmash
3

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

:g/^/>

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

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

Бретт Y
источник