Як застосувати команду до всіх рядків?


19

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

Чи є комбінація, яку я можу використовувати, щоб просто застосувати >до всіх рядків одночасно?

Відповіді:


19

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

:%>

Докладнішу інформацію див.

:h :>
:h :range

5
Через заголовок цього питання ("застосувати команду до всіх рядків"), я вважаю, що варто зазначити, що приклад у запитанні згадує оператора "Нормальний режим" >, тоді як у цій відповіді використовується команда "Режим команд" :>. Це, строго кажучи, не те саме. Те, що вони мають одне ім’я, слід вважати збігом; не припускайте, що ви можете взагалі обмінюватися операторами та командами. Наприклад, gUоператор перетворює текст у верхній регістр, але :%gUце НЕ є допустимим команда застосувати той же для всього буфера.
tommcdo


3

Не виходячи із звичайного режиму, ви можете просто зробити:

gg>G

2
Недоліком тут є те, що ви втрачаєте свою позицію у файлі
TankorSmash

Усі інші відповіді поділяють те, що зворотний бік та ОП не згадували "повагу позиції курсора" як вимогу.
romainl

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

Звичайно, ви можете оцінити цінність збереження свого місця і те, як відповідь, яка б зберегла цю позицію, була б цінною.
TankorSmash

1
Ось чому це не заперечується. Це просто записка, в якій говориться, що є кращий варіант десь і що їх слід шукати. Наприклад, на програмувальному веб-сайті SE неохайний код, який вирішує проблему, вирішує проблему, але ви все одно очікуєте знайти інше рішення, яке вирішує проблему і виглядає добре.
TankorSmash

3

Ще один варіант, про який ще не було сказано:

:g/^/>

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

Недоліком є ​​те, що це замінить вашу історію пошуку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.