Как настроить backspace, чтобы удалить 1 символ с ts,sw, sts & et, настроенными в vim

У меня в vimrc следующее:

set tabstop=8
set shiftwidth=4
set softtabstop=4
set expandtab

set backspace=indent,eol,start

set autoindent

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

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

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

20
задан Lewis
22.03.2023 12:29 Количество просмотров материала 2893
Распечатать страницу

3 ответа

Это, кажется, работает:

imap <BS> <Left><Del>

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

set whichwrap+=[
2
отвечен garyjohn 2023-03-23 20:17

удаление "set softtabstop=4" также даст вам поведение backspace, которое вы хотите, хотя это может нарушить другое поведение, к которому вы привыкли.

1
отвечен Josh Steadmon 2023-03-23 22:34

можно использовать

set tabstop=4 shiftwidth=4 expandtab

и удалить

set softtabstop=4

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

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

0
отвечен Josephine 2023-03-24 00:51

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх