Ответ 1
Эти команды в моем ответе работают в vim. Большинство людей, которые считают, что они используют vi, используют vim. Чтобы узнать, действительно ли ваш "vi" действительно "vim", откройте vi и введите :version
- если он vim, он это скажет. В противном случае вы можете просто увидеть номер версии без имени программы. Кроме того, когда вы открываете vim в первый раз, вы обычно видите заставку какого-то типа, в которой говорится "VIM-VI iMproved"...
Автоматическое отступы
Чтобы включить автоматическое отступы, убедитесь, что vim знает тип файла, который вы редактируете (он обычно автоматически определяет это из расширения имени файла, но может не понять его с некоторыми типами файлов). Вы можете указать его тип файла, используя меню для подсветки синтаксиса. Затем сделайте следующее:
:filetype indent on
Вы можете отключить автоотчет с помощью
:filetype indent off
Автоматическая настройка/исправление отступа
В общем случае = {motion} выровняет код с уровнем отступов.
-
==
выровнять текущую строку -
=i{
выровнять внутренний блок -
=%
выровняйте соответствующие скобки/скобки под курсором -
=14j
или14==
выровнять следующие 14 строк -
=G
выровнять до конца файла -
vG=
то же самое, выровняйте до конца файл (но с использованием визуального режима) -
vjjj=
выровнять четыре строки (используя визуальный режим)
Ручное отступы
Если vim не правильно угадает уровень отступа, есть два способа его изменить:
- Если вы находитесь в нормальном режиме (где все это команда), сделайте
<<
, чтобы сдвинуть линию влево или>>
, чтобы сдвинуть ее вправо на одна вкладка. Вы можете сделать это несколькими строками, используя те же самые команды перемещения, которые я показал выше (например,>i{
отступы текущего внутреннего блока кода). - Если вы находитесь в режиме вставки, вы можете отступать от линии дальше (без перемещения курсора), выполнив вкладку Ctrl-T или отступы с Ctrl-D
Выравнивание знаков равенства и т.д.
Если вы хотите выровнять знаки равенства в списке объявлений, вам следует использовать этот vim script: http://www.vim.org/scripts/script.php?script_id=294
Настройка размеров отступов/вкладок
Если вы хотите, чтобы vim использовал пробелы вместо вкладок, когда они отступают, запустите эту команду (или добавьте ее в файл vimrc).
:set expandtab
Чтобы установить, сколько пробелов равно табуляции, я обычно делаю это:
:set expandtab softtabstop=3 tabstop=3 shiftwidth=3
- tabstop - сколько столбцов подсчитывает вкладка (влияет на отображение существующих символов табуляции)
- shiftwidth - управляет размером реиндентации с < и → , среди других команд.
- softtabstop - сколько места для вставки при нажатии клавиши вкладки
- expandtab - разблокировать клавиши вкладок в пробелы
Но если вам нужно много работать с разными количествами вкладок, вы также можете использовать эту функцию и привязку клавиш:
function! Ktabs(tabsize)
execute "set softtabstop=" . a:tabsize . " tabstop=" . a:tabsize . " expandtab shiftwidth=" . a:tabsize
"set softtabstop=a:tabsize tabstop=a:tabsize expandtab shiftwidth=a:tabsize
endfunction
noremap <leader><Tab> :call Ktabs(3)<Left>
Если вы редактируете файл с комбинацией вкладок и пробелов, вы можете использовать эту команду после настройки размера вкладки:
:retab