Die Rücktaste funktioniert in Vim / vi nicht

86

Ich habe gerade einige Änderungen an der .vimrcDatei und der .bash_aliasesDatei vorgenommen und kann seitdem keine Wörter mehr mit der Rücktaste löschen.

Meine .vimrcDatei hat:

set nocompatible

set number
set incsearch
set autoindent
set ruler
set autowrite
set smarttab
set linebreak
set spell
set et
set title

set mouse=v
set history=50
set tabstop=4
set matchtime=2
set matchpairs+=<:>

syntax enable
filetype plugin indent on
filetype indent on
set sw=4

map <f2> :w\|!python %

hi SpellBad ctermfg=000 guifg=#000

Und meine .bash_aliasesDatei hat zwei Zeilen für Vim:

alias vim="vim -c 'startinsert' -u ~/.vim/.vimrc"
alias vi="vi -c 'startinsert' -u ~/.vim/.vimrc"

Mein ~/.vimVerzeichnis hat kein einziges Plugin oder Skript, daher besteht keine Chance, dass das Plugin dies verursacht.

~/.vim/.vimrcist ein Symlink. Die eigentliche .vimrcDatei befindet sich in einem ~/vimrc/Verzeichnis, das ein Git-Repository ist.

Santosh Kumar
quelle
Dies löste mein Problem: askubuntu.com/a/899059/525661
Hem

Antworten:

159

Um im Einfügemodus einen Rückstand auf alles zuzulassen (einschließlich automatisch eingefügter Einrückungen, Zeilenumbrüche und Beginn des Einfügens), können Sie die folgende backspaceOption festlegen :

:set backspace=indent,eol,start

oder

:set backspace=2  "compatible with version 5.4 and earlier

Standardmäßig ist diese Option leer, sodass Sie nicht über die oben genannten Dinge zurücksetzen können. Dies ist das Standard-Vi-Verhalten.

Sie können diese Zeile in Ihre vimrcDatei einfügen, damit sie beim Start von Vim automatisch festgelegt wird:

set backspace=indent,eol,start  " more powerful backspacing

Ab Vim 8.0 wird Vim backspacedurch Laden des defaults.vimSkripts auf diesen Wert gesetzt , wenn keine Benutzer-vimrc-Datei gefunden wird .

Eugene Yarmash
quelle
es funktioniert immer noch nicht für mich = / ich habe set backspace=2 set backspace=indent,eol,start fixdel
holms
2
@holms versuchen es set backspace=2alleine
Hoang Huynh
Was ist der Grund für solche Standardeinstellungen, bei denen die Rücktaste das Caret nur nach links bewegt?
Vitaly Zdanevich
2
Wenn Sie oben vim80 verwenden, sehen Sie dies: stackoverflow.com/questions/52438373/…
Lewis Chan
8

Wie ein Linux-Neuling befand ich mich in einer neuen Ubuntu 18.04-Installation und mein Vim-Editor verhielt sich anders als auf den anderen Computern, die ich verwende (einschließlich des von Ihnen beschriebenen Backspace-Verhaltens). Ich wusste nicht, dass ich tatsächlich vi und nicht vim verwende (beide werden mit ausgeführt vi).

Das Installieren von vim und das anschließende Bearbeiten einer Datei brachten das gewohnte Verhalten zurück, einschließlich des erwarteten Rückraums.

sudo apt install vim
Matt Klein
quelle
4

Meine ~/.vimrcDatei hatte Inhalt set nocompatible. Der gleichen Datei wurde eine weitere Zeile hinzugefügt, damit die Rücktaste funktioniert.

set backspace=indent,eol,start

Und renn einfach

source ~/.vimrc

im selben Terminal, damit die Änderung in derselben Shell sofort wirksam wird. Sie müssen vi nicht öffnen und ausführen

:set backspace=indent,eol,start
Aniket Thakur
quelle
2

Für mich , Ich hatte die Einstellung unten, aber die Rücktaste funktioniert immer noch nicht.

set backspace=indent,eol,start

Schließlich fand ich folgende Zeile führte zu diesem Problem.

inoremap <expr><C-h> neocomplete#smart_close_popup()

Wenn diese Einstellung gelöscht wird, funktioniert die Rücktaste im Einfügemodus gut.

Reason: Das liegt daran, dass Vim STRG-H als Rücktaste sieht und diese Zeile im Einfügemodus neu zu neocomplete # smart_close_popup () zugeordnet wird.

Echo
quelle
1

Für mich (Debian-Server, verbunden mit "Konsole" von einem anderen Linux) wurden Probleme mit der Rücktaste und den Pfeiltasten nach der Deinstallation des vim-tiny-Pakets und der Installation des vim-Pakets behoben.

jm009
quelle
1
Möglicherweise installieren diese Pakete verschiedene vimrc-Dateien.
Eugene Yarmash
1

Ich hatte das gleiche Problem auf einem Debian 7.8 über SSH in urxvt + tmux. Ich hatte vim und vim-tiny installiert.

Das Entfernen von vim-tiny hat das Problem behoben.

Lilorox
quelle
1

Oft ist es auch eine Funktion des ausgewählten getty-Typs, wenn man einen SSH-Client wie Putty oder einen ähnlichen verwendet. Am besten wäre es, vt100 + zu verwenden, da dies die Standardemulation ist.

Ich hatte schon :fixdelwas nicht funktionierte. Ich musste es entfernen und durch den ersten Vorschlag ersetzen, damit es funktioniert

HighOnMeat
quelle