Настройте параметры автоматического отступа в файле VIMRC

Я включил автоиндентирование в моем файле.vimrc, но столкнулся с досадной ошибкой / функцией. Например, когда я вкладываюсь в 3 раза и нажимаю клавишу возврата, новая строка также вкладывается в 3 раза. Затем, когда я нажимаю Enter, эта новая строка также отступает 3 раза, как и должно быть. Проблема возникает, когда я возвращаюсь к предыдущей строке (первой из 2 новых строк). VIM автоматически удаляет пробелы, потому что видит его как пустую строку.

Есть ли способ отключить это? Я хотел бы иметь возможность вернуться к кодированию, как это:

function test () { <return><return> } <up><right>

Спасибо!

2 ответа

Решение

Я не знаю ни одного параметра, который бы позволял Vim автоматически оставлять эти строки с начальным пробелом. Обычное решение состоит в том, чтобы изменить свой стиль редактирования, чтобы не терять этот пробел, или использовать команду в обычном режиме, такую ​​как o, O или же S чтобы начать новую строку так, чтобы отступ выполнялся автоматически, или принудительно сделайте отступ для текущей строки в режиме вставки с помощью Ctrl-T или же Ctrl-F,

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

:inoremap <Return> <Space><BS><Return>

Помещая пробел (или любой символ) в строку, а затем возвращая ее назад, вы сообщаете Vim, что это непустая строка, и она оставит только первые пробелы.

Переназначение или кажется отличным. У него есть недостаток: он затрудняет использование автозавершения Vim (). Он также конфликтует с плагинами, которые полагаются на поведение по умолчанию, например, supertab.

Эта страница: http://vim.wikia.com/wiki/Get_the_correct_indent_for_new_lines_despite_blank_lines предлагает альтернативное решение: добавление функции для получения правильного отступа, несмотря на предыдущие пустые строки.

Другие вопросы по тегам