LINUX.ORG.RU

Как сделать что бы отступ всегда был как на прежней строке, независимо от формата файла?

 


1

2

Как сделать, что бы отступы после энтера всегда был как на прежней строке, не зависимо от формата файла?

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

:filetype indent off
ничего не отключает.

Если сделать файл
/usr/share/vim/vim81/indent.vim
пустым, то это вообще отключает любые отступы.

А нужно, что бы он был ровно таким, как на предыдущей строке.

В файле indent/cpp.vim присутствует надпись:
C++ indenting is built-in

====================
UPD:

Как подсказали ниже, решение состоит из вписывания в .vimrc следующих строк:

let g:did_indent_on = 1
set autoindent



Последнее исправление: victor79 (всего исправлений: 2)

Возможно:

" save indentation when going to next line
set autoindent

И подкорректировать значение 'cinoptions'.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

set autoindent

Получилось. Нужно сначала очистить /usr/share/vim/vim81/indent.vim, что убирает всякие инденты, в том числе умные, а после уже выполнить set autoindent.

И тогда будет только индент как на прежней строке независимо от формата файла.

А можно ли как запретить использовать настройку indent.vim не очищая этот файл, а просто командой или перенастройкой .vimrc?

victor79
() автор топика
Ответ на: комментарий от victor79

А можно ли как запретить использовать настройку indent.vim не очищая этот файл, а просто командой или перенастройкой .vimrc?

Можно попробовать удалить все эти авто-команды в vimrc:

augroup filetypeindent
    autocmd!
augroup END
xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Нет, не удалило. После вписывания такого принцип отступов изменился, но они остались, и часть из них умные.

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

Но при впечатывании } следущая строка делается с отступом меньшим.

В то время, как предыдущий рецепт был строго как по предыдущей строке.

В общем, что-то там внутри перемудрили с умностью.

victor79
() автор топика
Ответ на: комментарий от victor79

Есть ещё 'smartindent', 'cindent'. Может они включаются плагинами для файлов, тогда можно выключить:

autocmd FileType * setlocal nosmartindent nocindent
xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Добавление этой строчки к прежним строчкам ничего не изменило. Т.е. совсем умные отступы убраны, но остаются на фигурные скобки.

victor79
() автор топика
Ответ на: комментарий от iliyap

:set ai ci

Что меня удивляет в программистах, так это то, что они очень хотят выглядеть умными, но при этом не тратить на это время и усилий...

victor79
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.