Wie kann ich eine Zeile löschen, ohne sie in meinen Standardpuffer zu legen?
Beispiel:
line that will be copied.
line that I want to be substitued with the previous one.
Was ich versuche zu tun:
yy
dd
p
Vim ersetzt jedoch die zuletzt kopierte Zeichenfolge durch die gelöschte (ausgeschnittene). Ich weiß , dass ich Puffer verwenden können , wie, "1yy
, dd
dann "1p
, aber ich habe immer vergessen , die kopierte Zeichenfolge in einem Puffer zu setzen , dann muss ich zuerst meine Inhalte einfügen (Zeile , die kopiert werden) und dann löschen , was ich (Linie wollen , dass ich will durch die vorherige ersetzt werden.)
Wie kann ich einen Text in Vi (m) wirklich löschen, ohne ihn zu kopieren?
Eine andere verwandte Frage ist, wie ich ein Wort im Einfügemodus weiterleiten kann. Ich möchte etwas ähnliches wie Ctrl+ w.
vim
copy-paste
MaikoID
quelle
quelle
Antworten:
Verwenden Sie das "Schwarzlochregister",
"_
um wirklich etwas zu löschen :"_d
.Verwenden Sie
"_dP
diese Option, um etwas einzufügen und für das weitere Einfügen verfügbar zu halten.Für die zweite Frage könnten Sie verwenden
<C-o>dw
.<C-o>
wird verwendet, um einen normalen Befehl auszuführen, ohne den Einfügemodus zu verlassen .Sie können natürlich Ihre eigenen Zuordnungen einrichten, um die Eingabe zu speichern. Ich habe diese:
quelle
d
immer noch "schneidet" undp
immer noch "einfügt", während es<leader>d
für real löscht und<leader>p
den ausgewählten Text wegwirft und den Inhalt des Standardregisters einfügt.<leader>p
Ermöglicht es mir, denselben Text mehrmals einzufügen, ohne benannte Register verwenden zu müssen.Das Schwarze Loch Register
"_
, aber es gibt eine bessere Lösung:Wenn Sie die Zeile mit dem
p
Befehl zurück eingeben, fügen Sie den Inhalt des (flüchtigen) Standardregisters ein""
, das von überschrieben wurdedd
. Sie können jedoch weiterhin aus dem (nichtflüchtigen) Ruckregister einfügen"0
, das vom Löschbefehl nicht überschrieben wirddd
.Dies sind also die Befehle, die Sie gemäß Ihrem Beispiel verwenden möchten:
quelle
Das ist eines der Dinge, die ich an vim nicht mochte ... Am Ende habe ich mich
dd
dem Black Hole Register in meiner .vimrc zugeordnet und das Leben war seitdem gut:quelle
v/V
mitx
wird auch geschnitten. Und das Schneiden mitx
ist auchCtrl + x
in jedem Betriebssystem kohärent .Die folgenden Zuordnungen werden erstellt:
Es ist auch eine gute Übung, die "Leader" -Taste auf Komma zu setzen, z. B.:
Diese 2 Schnipsel machen ", d" zu Ihrem neuen Schnittbefehl.
Wenn Sie diese Zuordnungen zusammen mit einer Konfiguration der freigegebenen System-Zwischenablage verwenden möchten, finden Sie weitere Informationen unter https://github.com/pazams/d-is-for-delete
quelle
yydd
die für meine Finger etwas unhaltbar war;-)
.,dd
. Nach dem Hinzufügennnoremap <leader>dd ""dd
begann es zu funktionierenSie können verwenden
"_d
, um zu verhindern, dass Dinge Ihren gerissenen Text überschreiben. Sie können gezerrten oder gelöschten Text in einem beliebigen Register speichern, mit"
und_
ist das ‚schwarze Loch‘ registrieren, wo Sie Material senden , dass Sie sich nicht um kümmern.Für weitere Informationen können Sie
:help "_
oder eingeben:help deleting
quelle
Wenn Sie sich im visuellen Modus befinden,
x
wird die Auswahl gelöscht. Wenn Sie also eine ganze Zeile löschen möchten, drücken Sie zuerstV
, um die Zeile im visuellen Modus auszuwählen, und drücken Sie dannx
, um die Auswahl zu löschen.quelle