Как настроить backspace для удаления 1 символа с помощью ts, sw, sts & et, настроенных в vim

1304
Lewis

У меня есть следующее в моем Vimrc:

set tabstop=8 set shiftwidth=4 set softtabstop=4 set expandtab  set backspace=indent,eol,start  set autoindent 

Это делает то, что я хочу: вставлять только пробелы, а не символы табуляции; нажатие на вкладку вставляет 4 пробела; автоматические отступы - 4 интервала.

Если я отступил на n уровней и нажал клавишу Backspace в режиме вставки, я возвращаюсь на 1 уровень отступа (1 sts) к уровню n-1.

Как я могу настроить клавишу Backspace, чтобы вместо этого вернуть мне один пробел?

3

3 ответа на вопрос

2
garyjohn

Это похоже на работу:

imap <BS> <Left><Del> 

Обновление: это заставляет backspace вести себя странно на левом поле. Это решает эту проблему:

set whichwrap+=[ 
1
Josh Steadmon

Удаление «set softtabstop = 4» также даст вам желаемое поведение возврата на задний план, хотя оно может нарушить другие привычки, к которым вы привыкли.

0
Josephine

Вы могли бы использовать

set tabstop=4 shiftwidth=4 expandtab 

и удалить

set softtabstop=4 

и забудьте о вкладках.

По моему опыту, вкладки, используемые для структурирования текста, рано или поздно становятся неприятностью.