45 Stimmen

Wie kann man verhindern, dass der Cursor beim Verlassen des Einfügemodus in Vim ein Zeichen zurückgeht?

Ist es möglich, dieses Verhalten rückgängig zu machen?

Eine Aufgabe für zusätzliche Punkte: Finden Sie einen Weg, Vim zu zwingen, die Cursorposition sofort nach dem Verlassen des Einfügemodus zu aktualisieren.

9 Stimmen

Interessante Frage. Ich frage mich, was der Grund für dieses Verhalten ist. Ich habe es einfach akzeptiert.

5 Stimmen

Ich habe es versucht. Es ist ein bisschen unbequem. Wenn ich den Cursor bewege, könnte ich siehe wenn ich den Bearbeitungsmodus verlasse.

1 Stimmen

@StefanoBorini Es gibt einen Teil der Erklärung in diese Frage hier auf SO. So wie ich es verstehe: Wenn Sie den Einfügemodus verlassen, weiß vi nicht, ob Sie den Modus mit a o i und nimmt daher an a . Und wirklich: Der Cursor "rutscht" nicht weg, wenn Sie a und Esc wiederholt.

2voto

Kyle Strand Punkte 15027

Es gibt einen Ansatz aus dem Vim-Tipps-Wiki Ich weiß nicht, wie viele Jahre lang das für mich gut funktioniert hat:

" Leave insert mode to the *right* of the final location of the insertion
" pointer
" From http://vim.wikia.com/wiki/Prevent_escape_from_moving_the_cursor_one_character_to_the_left
let CursorColumnI = 0 "the cursor column position in INSERT
autocmd InsertEnter * let CursorColumnI = col('.')
autocmd CursorMovedI * let CursorColumnI = col('.')
autocmd InsertLeave * if col('.') != CursorColumnI | call cursor(0, col('.')+1) | endif

0voto

Paolo Tedesco Punkte 52228

Worüber?

:imap <Esc> <Esc><Right>

1 Stimmen

Bei bestimmten Einstellungen wird der Cursor in die nächste Zeile bewegt, wenn die Bearbeitung am Ende der aktuellen Zeile erfolgt.

2 Stimmen

Selbst wenn man die Sache mit dem Zeilenende außer Acht lässt, wird es logisch, wenn man den Einfügemodus mit i aber unlogisch, wenn Sie den Einfügemodus mit a .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X