So konfigurieren Sie den Backspace zum Löschen von 1 Zeichen mit in vim konfigurierten TS, SW, STS und ET

1371
Lewis

Ich habe folgendes in meiner Vimrc:

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

Das macht, was ich will: Nur Leerzeichen einfügen, niemals Tabulatorzeichen; Durch Drücken der Lasche werden 4 Felder eingefügt. Automatische Einrückungen sind 4 Punkte.

Wenn ich n Ebenen eingerückt bin und im Einfügemodus die Rücktaste drücke, gehe ich um 1 Einzugsebene (1 M) auf Stufe n-1 zurück.

Wie kann ich die Rücktaste so konfigurieren, dass ich stattdessen ein einzelnes Leerzeichen zurücknehme?

3

3 Antworten auf die Frage

2
garyjohn

Das scheint zu funktionieren:

imap <BS> <Left><Del> 

Update: Das bewirkt, dass sich die Rücktaste am linken Rand merkwürdig verhält. Dies behebt das Problem:

set whichwrap+=[ 
1
Josh Steadmon

Wenn Sie "set softtabstop = 4" entfernen, erhalten Sie auch das gewünschte Verhalten für die Rücktaste, obwohl dies andere Verhaltensweisen beeinträchtigen kann.

0
Josephine

Du könntest benutzen

set tabstop=4 shiftwidth=4 expandtab 

und löschen

set softtabstop=4 

und vergessen Sie Tabs.

Meiner Erfahrung nach werden Tabs früher oder später zum Strukturieren von Text zum Ärgernis.