У меня есть set smartindent
в моем файле конфигурации Vim, но есть один аспект автоматической вставки вкладок в Vim, который я хотел бы изменить. Скажем, например, что я начинаю вводить цикл for:
1. for (auto& foo : bar) {
2.
После того, как я нажму «Ввод», Vim любезно вставит табуляцию в начале строки 2 именно так, как я этого хочу. Но если понять, что мне нужно перейти куда-то еще в файле, чтобы что-то изменить, а затем вернуться к строке 2, вкладки больше нет. Нажимать табуляцию пару раз время от времени не имеет большого значения, поскольку, когда я пишу сложный алгоритм с большим количеством отступов, необходимость несколько раз нажимать клавишу табуляции может раздражать.
Что было бы лучшим решением, чтобы заставить Vim фактически записывать вкладку в текущий буфер при выполнении автоматического отступа, вместо того, чтобы давать мне возможность вставить вкладку только при нажатии возврата из предыдущей строки?
Спасибо за вашу помощь!
cc
илиS
в пустой строке, в которой исчезает отступ, по-прежнему помещает меня в самое начало строки. - person void-pointer   schedule 02.04.2012filetype indent on
, а неsmartindent
.cc
иS
должны работать в этом случае. Из справочного канала #vim на freenode: Вы имеете в виду тупой индент? Если серьезно, то «smartindent» — это устаревший вариант C-подобного синтаксиса. Он был заменен на «cindent», и установка «cindent» также имеет приоритет над «smartindent». Vim имеет встроенную поддержку отступов для многих языков, и настройка «smartindent» (или «cindent», если на то пошло) в вашем .vimrc может помешать этому. Используйте «отступ плагина типа файла» и будьте счастливы. - person Randy Morris   schedule 02.04.2012