Vim: Leere Zeile über der aktuellen Zeile einfügen (nicht offen, dh ohne in den Einfügemodus zu wechseln)


21

Gibt es eine Möglichkeit, eine neue Zeile über der aktuellen einzufügen, ohne die Zeile zu öffnen (also ohne in den Einfügemodus zu wechseln)? Das heißt, wie "O", aber ohne zu öffnen.


2
Was bedeutet "eine Linie eröffnen"?
Matteo Riva

"Öffnen einer Zeile" bedeutet, vom normalen Modus in den Einfügemodus zu wechseln. Dies geschieht, wenn Sie "O" (oh) drücken.
Tmadsen

Antworten:


8

Ich benutze Tim Pope Plugin unimpared , die einen Befehl speziell für diesen Zweck hat:

[<space>

Und wenn Sie nach der Zeile, in der Sie sich befinden, ein Leerzeichen einfügen möchten:

]<space>


28

Die Definition Ihrer Anfrage lautet O.

Logischerweise wäre beim Einfügen eine neue Zeile oben O.

So fügen Sie vor dem Curser: i
Nachher: a
Vor der Linie (home): I
Fügen Sie am Ende der Zeile:A

Ich denke, Sie kommen am nächsten, wenn Sie Iden Cursor an den Anfang der Zeile setzen.


Vielleicht war ich nicht klar. Das Szenario sieht folgendermaßen aus: Ich bin im normalen Modus und möchte eine leere Zeile über der Zeile einfügen, in der ich mich gerade befinde, während ich im normalen Modus bleibe. Durch Drücken von "O" wechsle ich in den Einfügemodus. Vielleicht gibt es keine Möglichkeit und das ist in Ordnung, dachte nur, ich würde fragen :)
tmadsen

3
Karte es einfach,m`O+Esc`
Josh K

1
Gute Idee, hatte das nicht bedacht. Hat ein: noremap <Führer> O O <ESC>
tmadsen

2tmadsen: Sie können dies <yourkey> O <ESC>
nXqd

9
:h append()

Der Cursor wird nicht bewegt, Sie können beliebig viele Zeilen (leer oder nicht) einfügen und die vorherige Positionsmarke wird nicht geändert.

call append(line('.')-1, '')

yah, das ist +1 ordentlich! / ich ändere sein vimrc
akira

Nun, es hat ein paar Vorteile, wenn es um Skripte geht. Es ist etwas übertrieben, etwas anderes zu tippen.
Luc Hermitte

+1 für eine Lösung, die funktioniert, unabhängig davon, wie man eingestellt hatformatoptions
Micah Smith

5

Sie können jede beliebige Taste oder Tastenfolge zuordnen

m`O<ESC>``

Dadurch wird eine leere Zeile über der aktuellen eingefügt, sodass Sie sich im normalen Modus befinden und die Cursorposition nicht verändert wird.


Der Befehl, dies Alt-O zuzuordnen, lautet also: map <Mo> m`O <ESC> ``
K Robinson

Das ist richtig.
Matteo Riva

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.