Ich versuche, normale Moduszuordnungen einzurichten, um das Hinzufügen von Leerzeichen um den Cursor zu vereinfachen:
<C-h>
fügt rechts vom Cursor ein Leerzeichen hinzu;
<C-j>
fügt unten eine neue Zeile hinzu;
<C-k>
fügt oben eine neue Zeile hinzu;
<C-l>
fügt rechts vom Cursor ein Leerzeichen hinzu; und
<C-Enter>
fügt an der aktuellen Cursorposition eine neue Zeile hinzu.
Ich möchte auch, dass sich die Cursorposition während des Befehls nicht bewegt. Für links, rechts und Zeilenumbruch ist dies einfach:
nnoremap <C-h> i <Esc>l
nnoremap <C-l> a <Esc>h
nnoremap <C-^M> i<CR><Esc><Backspace>
aber für oben und unten die entsprechenden Befehle
nnoremap <C-j> o <Esc>k
nnoremap <C-k> O <Esc>j
bringt mich wieder in die richtige Zeile, aber nicht zurück zu derselben Spalte, in der ich vorher war.
Gibt es eine Möglichkeit, zu der Cursorposition zurückzukehren, an der ich mich kurz vor dem Aufrufen des Einfügemodus befand? Mein bestes Google-Fu hat nur Verweise auf ''
& double-backtick (kann nicht herausfinden, wie der Markdown dort formatiert werden soll) und :jumps
/ <C-O>
& erwähnt <C-I>
, von denen keines so zu funktionieren scheint, wie ich es gerne hätte.
Kann dies ohne Vimscript gelöst werden? Kann es überhaupt mit Vimscript gelöst werden ?
m'
und''
anstelle vonm`
und``