Это должно быть тривиально, и это может даже помочь, но я не могу понять, как с этим справиться. Как быстро сделать отступ в нескольких строках в vi?
vim
editor
indentation
vi
Аллен Лалонд
источник
источник
shiftwidth
Настройки для способа изменить это.Этот ответ суммирует другие ответы и комментарии на этот вопрос, а также добавляет дополнительную информацию на основе документации Vim и вики- сайта Vim . Для краткости этот ответ не различает команды Vi и Vim.
В приведенных ниже командах «re-indent» означает «отступ строк в соответствии с вашими настройками отступов ».
shiftwidth
является основной переменной, которая контролирует отступы.Общие команды
Вы можете заменить
{
на}
илиB
, например,=iB
допустимой командой отступа блока. Посмотрите на «Отступ блока кода» для хорошего примера, чтобы попробовать эти команды.Кроме того, помните, что
Таким образом, команды отступа могут быть легко и удобно повторены.
Повторный отступ полных файлов
Другая распространенная ситуация требует исправления отступа в исходном файле:
Вы можете распространить эту идею на несколько файлов:
Или несколько буферов:
В визуальном режиме
В режиме вставки
Эти команды применяются к текущей строке:
Ex команды
Они полезны, когда вы хотите сделать отступ для определенного диапазона строк, не перемещая курсор.
Отступ с использованием маркеров
Другой подход с помощью маркеров :
... переместить курсор в конечную позицию
Переменные, которые управляют отступом
Вы можете установить их в своем файле .vimrc .
Vim имеет интеллектуальные отступы, основанные на типе файла. Попробуйте добавить это в ваш .vimrc:
Ссылки
:help =
источник
>}
. Большое спасибоБольшой выбор будет:
Это действительно быстро, и все становится с отступом ;-)
источник
gg=G
просто помещает каждую строку, начиная с позиции 1. Все пробелы были удалены. Есть ли что-то еще специфичное для XML?set cindent
должен быть в vimrc или должен запускаться:set cindent
перед выполнением этой командыТакже попробуйте это для отступа C-отступа . Есть
:help =
для получения дополнительной информации:={
Это автоматически сделает отступ для текущего блока кода, в котором вы находитесь.
Или просто:
==
для автоматического отступа текущей строки.
источник
Нажатие клавиш для более визуальных людей:
Войдите в командный режим:
Escape
Переместитесь в начало области, чтобы сделать отступ:
hjkl↑↓←→
Начать блок:
v
Переместитесь в конец области, чтобы сделать отступ:
hjkl↑↓←→
(Необязательно) Введите желаемое количество уровней отступов
0..9
Выполните отступ на блоке:
>
источник
Мастер всех команд
gg=G
Это отступы всего файла!
Ниже приведены некоторые простые и элегантные команды, используемые для быстрого отступа строк в Vim или gVim.
Для отступа текущей строки
==
Чтобы сделать отступ для всех строк под текущей строкой
=G
Для отступа
n
строк ниже текущей строкиn==
Например, чтобы сделать отступ на 4 строки ниже текущей
4==
Чтобы сделать отступ для блока кода, перейдите к одной из фигурных скобок и используйте команду
=%
Это самые простые, но мощные команды для отступа в несколько строк.
источник
vim
, нетvi
.vim
что было связано с какvi
?В дополнение к ответу, который уже дан и принят, также можно разместить маркер и затем сделать отступ от всего курсора до маркера.
Таким образом, введите,
ma
где вы хотите, верхнюю часть блока с отступом, наведите курсор вниз, сколько вам нужно, и затем введите>'a
(обратите внимание, что «a
» может быть заменено на любое допустимое имя маркера). Это иногда проще, чем5>>
илиvjjj>
.источник
Перейти к началу текста
источник
Помимо предлагаемых решений, мне нравится делать вещи по параграфу одновременно с
>}
источник
Когда вы выбираете блок и используете >отступ, он отступает и возвращается в нормальный режим. У меня есть это в моем файле .vimrc:
Это позволяет вам делать отступы столько раз, сколько вы хотите.
источник
Предположим, вы используете 2 пробела для отступа вашего кода. Тип:
Затем:
Вы поняли идею.
( Пустые строки не получат отступ, что, я думаю, неплохо. )
Я нашел ответ в документации (g) vim для блоков отступов:
источник
Прелесть пользовательского интерфейса Vim в том, что он согласован. Команды редактирования состоят из команды и перемещения курсора. Движения курсора всегда одинаковы:
'
.Итак, чтобы использовать vim, вы должны научиться перемещать курсор и запоминать набор команд, например, >для отступа (и< отступ).
Таким образом, для отступа строки из позиции курсора в верхней части экрана вы делаете >H, >Gчтобы сделать отступ в нижней части файла.
Если вместо ввода >Hвы набираете , dHто удаляете тот же блок строк, cHчтобы заменить его и т. Д.
Некоторые движения курсора лучше соответствуют определенным командам. В частности, %команда удобна для отступа всего блока HTML или XML. Если для файла выделен синтаксис (
:syn on
), установите курсор в тексте тега (например, в «i» элемента <div> и введите>% будет делать отступ до закрывающего тега </ div>.Вот как работает Vim: нужно помнить только движения курсора и команды, и как их смешивать. Поэтому мой ответ на этот вопрос будет следующим: «перейдите к одному концу блока строк, для которого вы хотите сделать отступ, а затем введите >команду и движение к другому концу блока», если отступ интерпретируется как смещение строк,= если отступ интерпретируется как в симпатичной печати.
источник
Сделай это:
И добавьте эту строку:
Это только для файла cpp. Вы можете сделать это для другого типа файла, также просто изменив тип файла ...
источник
Вы можете использовать
norm i
команду, чтобы вставить данный текст в начале строки. Чтобы вставить 10 пробелов перед строками 2-10:Помните, что в конце команды должен быть символ пробела - это будет символ, который мы хотим вставить. Мы также можем сделать отступ для строки с любым другим текстом, например, чтобы сделать отступ для каждой строки в файле с пятью символами подчеркивания:
Или что-то еще более причудливое:
Более практический пример - комментирование кода Bash / Python / etc символом #:
Для повторного отступа используйте xвместо i. Например, чтобы удалить первые 5 символов из каждой строки:
источник
Быстрый способ сделать это с помощью
VISUAL MODE
использованием того же процесса, что и комментирование блока кода.Это полезно, если вы предпочитаете не менять
shiftwidth
или использовать какие-либоset
директивы и достаточно гибки для работы с TABS, SPACES или любым другим символом.-- VISUAL MODE --
:
чтобы переключиться на приглашениеЗамена на 3 ведущих пробела:
:'<,'>s/^/ /g
Или заменить ведущими вкладками:
:'<,'>s/^/\t/g
Краткое объяснение:
'<,'>
- в пределах визуально выбранного диапазонаs/^/ /g
- Вставьте 3 пробела в начале каждой строки во всем диапазоне(или)
s/^/\t/g
- ВставлятьTab
в начале каждой строки во всем диапазонеисточник
>}
или>{
отступ от текущей строки до следующего абзаца<}
или<{
такой же отступисточник
Мне нравится отмечать текст для отступа:
PS: вы можете использовать эту :'a,'zтехнику, чтобы отметить диапазон для любой операции (d, y, s /// и т. Д.), Где вы можете использовать строки, числа или %.
источник
:help left
В
ex mode
вы можете использовать:left
или:le
для выравнивания линий указанного количества. В частности,:left
выровняйте по левому краю линии в [диапазоне]. Устанавливает отступ в строках на [отступ] (по умолчанию 0).:%le3
или:%le 3
или:%left3
или:%left 3
выровняет весь файл, добавляя три пробела.:5,7 le 3
выровняйте строки с 5 по 7, заполнив их тремя пробелами.:le
без какого-либо значения или:le 0
будет выравниваться по левому краю с отступом 0.Это работает в Vim и gVim.
источник
:'<,'>le4
вставьте пробелы. Спасибо!Для меня решение MacVim (Visual) было, выберите с помощью мыши и нажмите «>», но после добавления следующих строк в «~ / .vimrc», так как я люблю пробелы вместо вкладок:
Также полезно иметь возможность вызывать MacVim из командной строки (Terminal.app), так как у меня есть следующий вспомогательный каталог «~ / bin», где я размещаю скрипт с именем «macvim»:
И, конечно, в "~ / .bashrc":
MacPorts много путается с ~ / .profile, поэтому переменная окружения PATH может быть довольно длинной.
источник
5==
будет отступать пять строк от текущей позиции курсора.Таким образом, вы можете ввести любой номер раньше
==
. Это будет отступать количество строк. Это в командном режиме.gg=G
будет отступать весь файл сверху вниз.источник
Я не нашел метод, который я использую в комментариях, поэтому я поделюсь им (я думаю, только Vim):
Это полезно, если вы не хотите изменять настройки отступа / вкладки
vimrc
или запоминать их для изменения во время редактирования.Чтобы удалить отступ, я использую тот же самый блок Ctrl+ Vвыбор, чтобы выделить пробелы и удалить его с помощью D.
источник
Я не знаю, почему так сложно найти простой ответ, как этот ...
Мне самому пришлось много бороться, чтобы узнать это. Это очень просто:
.vimrc
файл в домашнем каталоге.Добавить эту строку
в вашем файле, где вы хотите сделать отступ правильно.
В нормальном / командном режиме типа
источник
Например,
Увеличьте символ «>» для большего количества вкладок.
Например,
источник
:set number
для переключения номеров строк ( по умолчанию они отключены ) или ввестиset number
ваш vimrc.Много пользуясь Python, мне часто приходится сдвигать блоки более чем на один отступ. Вы можете сделать это, используя любой из методов выбора блока, а затем просто введите количество отступов, которые вы хотите перепрыгнуть прямо перед
>
Например,
V5j3>
три строки отступят пять раз - это 12 пробелов, если вы используете четыре пробела для отступов.источник
Чтобы сделать отступ для каждой строки в типе файла, Escа затем G=gg.
источник
Как сделать отступ для выделенного кода в vi сразу по нескольким пробелам:
Вариант 1. Отступ блока кода в vi от трех пробелов в режиме Visual Block:
Выберите блок кода, который вы хотите сделать отступ. Сделайте это с помощью Ctrl+Vобычного режима и используйте стрелки вниз для выбора текста. Пока он выбран, введите,
:
чтобы дать команду блоку выделенного текста.В командной строке появится следующее:
:'<,'>
Чтобы установить отступ в три пробела, введите
le 3
и нажмите ввод. Вот что появляется::'<,'>le 3
Выделенный текст сразу же отступает в три пробела.
Вариант 2. Отступ блока кода в vi от трех пробелов в режиме Visual Line:
Перейдите в обычный режим и нажмите следующие клавиши:
Интерпретация того, что вы сделали:
V
означает начать выделять текст.jjjj
стрелки вниз на четыре строки, выделяя четыре строки.:
говорит vi, что вы введете инструкцию для выделенного текста.le 3
означает отступ выделенного текста на три строки.Выбранный код сразу увеличивается или уменьшается до трех пробелов.
Вариант 3: используйте режим Visual Block и специальный режим вставки для увеличения отступа:
Находясь в обычном режиме, нажмите следующие клавиши:
Ctrl+V
(нажмите пробел пять раз)
Esc Shift+i
Весь выделенный текст имеет отступ в пять дополнительных пробелов.
источник
Я использую блочный режим визуального выбора:
I
( Shift+ I), чтобы войти в режим вставки.Это не однозадачность. Оно работает:
c
вместоI
).источник
vim-prettier
вместо механизма отступа по умолчанию). В>
противном случае использование по-королевски улучшит форматирование, выполненное Преттиером.Для блока кода {}: =+%
Для выбранной строки: Shift+ vвыберите с помощью клавиш со стрелками вверх / вниз, а затем нажмите =.
Для всего файла: gg+ =+G
Примечание: «gg» означает переход к строке 1, «=» - команда отступа, а «G» перемещает курсор в конец файла .
источник
Чтобы сделать отступ для всего файла на четыре:
источник
Источник: https://www.fir3net.com/UNIX/General/how-do-i-tab-multiple-lines-within-vi.html
источник