Быстрый отступ нескольких строк в vi - PullRequest
2067 голосов
/ 25 октября 2008

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

Ответы [ 30 ]

9 голосов
/ 05 ноября 2013

Я не нашел метод, который я использую в комментариях, поэтому я поделюсь им (я думаю, только vim):

  1. Esc для входа в командный режим
  2. Перейти к первому символу последней строки, которую вы хотите идентифицировать
  3. ctrl - v для выбора блока выбора
  4. Перейти к первому символу первой строки, которую вы хотите идентифицировать
  5. shift - i для входа в специальный режим вставки
  6. введите столько интервалов / вкладок, сколько нужно, чтобы сделать отступ (например, 2
  7. нажмите Esc и во всех строках появятся пробелы

Это полезно, если вы не хотите изменять настройки идент / вкладки в vimrc или запоминать их для изменения во время редактирования.

Для удаления отступов я использую тот же блок ctrl - v , чтобы выбрать пробелы и удалить его с помощью d .

9 голосов
/ 07 мая 2013

5== будет отступать 5 строк от текущей позиции курсора. так что вы можете набрать любое число до ==, оно будет отступать число строк. Это в командном режиме.

gg=G будет отступать весь файл сверху вниз.

7 голосов
/ 15 июля 2014
:line_num_start,line_num_end>

например.

14,21> shifts line number 14 to 21 to one tab

Увеличьте символ '>' для большего количества вкладок

например.

14,21>>> for 3 tabs
7 голосов
/ 01 марта 2015

Чтобы сделать отступ для каждой строки в типе файла, esc , затем G = gg

7 голосов
/ 02 июля 2013

Много пользуясь Python, мне часто приходится сдвигать блоки более чем на один отступ. Вы можете сделать это, используя любой из методов выбора блока, а затем просто ввести количество отступов, которые вы хотите перепрыгнуть прямо перед >

Например. V5j3> будет отступать 5 строк 3 раза - это 12 пробелов, если вы используете 4 пробела для отступов

6 голосов
/ 23 декабря 2013

Как сделать отступ для выделенного кода в vi сразу по пробелам:

Вариант 1. Отступ блока кода в vi с тремя пробелами в режиме Visual Block:

  1. Выберите блок кода, который вы хотите сделать отступ. Сделайте это, используя Ctrl + V в обычном режиме и используя стрелки вниз, чтобы выделить текст. Пока он выбран, введите :, чтобы дать команду блоку выделенного текста.

  2. В командной строке появится следующее: :'<,'>

  3. Чтобы установить отступ в 3 пробела, введите le 3 и нажмите ввод. Вот что появляется: :'<,'>le 3

  4. Выбранный текст сразу же отступает в 3 пробела.

Вариант 2. Отступ блока кода в vi с тремя пробелами в режиме Visual Line:

  1. Откройте ваш файл в VI.
  2. Наведите курсор на код
  3. Находясь в обычном режиме, нажмите следующие клавиши:

    Vjjjj:le 3
    

    Интерпретация того, что вы сделали:

    V означает начать выделение текста.

    jjjj стрелки вниз на 4 строки, выделяя 4 строки.

    : говорит vi, что вы введете инструкцию для выделенного текста.

    le 3 означает отступ выделенного текста на 3 строки.

    Выбранный код сразу увеличивается или уменьшается до трех пробелов.

Вариант 3: используйте режим Visual Block и специальный режим вставки для увеличения отступа:

  1. Откройте ваш файл в VI.
  2. Наведите курсор на код
  3. В обычном режиме нажмите следующие клавиши:

    Ctrl + V

    jjjj
    

    (нажмите пробел 5 раз)

    Esc Shift + я

    Весь выделенный текст имеет отступ 5 дополнительных пробелов.

4 голосов
/ 29 сентября 2017

Я использую визуальный выбор в блочном режиме:

  • Перейти к передней части блока для перемещения (вверху или внизу).
  • Нажмите ctrl-v, чтобы войти в режим визуального блока.
  • Навигация для выбора столбца перед строками.
  • Нажмите I (shift i), чтобы войти в режим вставки.
  • Введите несколько пробелов.
  • Нажмите ESC. Все линии будут сдвинуты.

Это не однозадачник. Работает:

  • Посередине строк.
  • Для вставки любой строки во все строки.
  • Чтобы изменить столбец (используйте c вместо I).
  • дергать, удалять, заменять и т.д ...
4 голосов
/ 19 декабря 2014

Для отступа всего файла на 4:

esc 4G=G
2 голосов
/ 15 ноября 2018
  • Для блока кода {}: = + %

  • Для выбранной строки: Shift + v выберите, используя клавишу со стрелкой вверх / вниз, затем нажмите = .

  • Для всего файла: гг + = + G

Примечание: «gg» означает переход к строке 1, «=» - команда отступа, а «G» перемещает курсор в конец файла .

0 голосов
/ 25 апреля 2018

Предположим, | представляет позицию курсора в Vim. Если текст с отступом заключен в блок кода, например:

int main() {
line1
line2|
line3
}

вы можете сделать >i{, что означает " отступ (>) внутри (i) блока ({) " и получить:

int main() {
    line1
    line2|
    line3
}

Теперь предположим, что линии смежные, но за пределами блока, например:

do
line2|
line3
line4
done

Чтобы сделать отступы строк от 2 до 4, вы можете визуально выбрать строки и ввести >. Или даже быстрее вы можете сделать >2j, чтобы получить:

do
    line2|
    line3
    line4
done

Обратите внимание, что >Nj означает отступ от текущей строки до N строк ниже. Если количество строк должно быть большим, пользователю может потребоваться несколько секунд, чтобы рассчитать правильное значение N. Чтобы сэкономить драгоценные секунды, вы можете активировать опцию относительное число с set relativenumber (доступно с версии Vim 7.3).

...