Im Allgemeinen wird d <motion> nach <motion> von der aktuellen Position zur Endposition gelöscht. Dies bedeutet, dass:
- d <Linkspfeil> löscht das aktuelle und das linke Zeichen
- d $ wird von der aktuellen Position bis zum Zeilenende gelöscht
- d ^ löscht vom aktuellen Rückwärts zum ersten Nicht-Leerzeichen
- d0 wird vom aktuellen Rückwärts bis zum Zeilenanfang gelöscht
- dw löscht den Strom bis zum Ende des aktuellen Wortes (einschließlich des nachgestellten Leerzeichens).
- db löscht den aktuellen bis zum Anfang des aktuellen Wortes
Lesen Sie dies , um alle Dinge zu lernen, die Sie mit dem Befehl 'd' kombinieren können.
db
schwer erinnern können:5. dw or d<ctrl+rightarrow>
und6. db or d<ctrl+leftarrow>
d<leftArrow>
tundh
statt, dah
für Bewegung ist der Schlüssel linksIch war schon oft in diesem Szenario. Ich möchte alle Leerzeichen in Zeile 10 entfernen, damit sie nach dem Komma mit Zeile 9 verbunden werden.
Dies ist im Grunde eine einfache Zeilenverbindung in VIM.
kJ
macht den Trick (siehe unten)quelle
k
= Nach oben,J
= Zeile unten mit der aktuellen Zeile mit einem Leerzeichen dazwischen verbinden. Sie können auchkgJ
ohne Leerzeichen beitreten.gJ
= Linie unten ohne Leerzeichen dazwischen verbinden. Über Cheatsheet: vim.rtorr.comUm Punkt 3 zu beantworten,
diw
unddaw
sind ausgezeichnet.quelle
db
die Buchstaben vor dem letzten Buchstaben gelöscht, der letzte Buchstabe bleibt jedoch erhalten.i
unda
in der Mitte dieser Befehle tun? Ich weiß, dass der führended
"Löschen" ist, und ich nehme an, dass der nachfolgendew
"Wort" ist.:help text-objects
. Der erste Absatz ist sehr kurz und ich denke, er beschreibt ihn sehr gut.Im Einfügemodus:
Andernfalls:
quelle
Im Befehlsmodus:
bdw
, zurück Wort löschen.d^
(zum ersten nicht leeren),d0
(zum ersten Zeichen)BdW
(gehe zum ersten Leerzeichen, lösche zum nächsten Leerzeichen)(Community-Wiki, zögern Sie nicht zu hacken.)
quelle
db
(wenn der Cursor hinter dem Wort steht) oderbdw
d0
(oderd^
wenn Sie zum ersten nicht leeren Zeichen löschen möchten)dE
oder dtSpacezum Löschen in das erste Leerzeichen oder d/\sEnterzum Löschen in das nächste Leerzeichen.Bearbeiten
Da die Frage so geändert wurde, dass 3 auf das erste Leerzeichen links gelöscht wird, sollte sich meine Antwort ändern in:
dB
oder dShiftTSpaceum zum ersten Leerzeichen zurückzukehren oder d?\sEnterum zum vorherigen Leerzeichen zu löschen.Sehen:
quelle
bdw
. Das verbleibende Zeichen (das ursprünglich unter dem Cursor) vondb
nervte mich immer wieder.Ich bin der Meinung, dass keine der Antworten vollständig ist:
Im Allgemeinen starten Sie einen Löschvorgang normalerweise mit
d<motion>
und selten mitx
.Diskrete Zeichen:
<N>x
- Löschen Sie N Zeichen rechtsd<N><left-arrow>
- Löschen Sie N Zeichen linksd<N><right-arrow>
- Löschen Sie N Zeichen rechtsWortgrenzen:
d<N>b
- Löschen Sie vom Anfang des vorhergehenden N-ten Wortes bis zur aktuellen Positiond<N>e
- Von der aktuellen Position bis zum Ende des nachfolgenden N-ten Wortes löschend<N>w
- Wied<N>e
abereinschließlich nachfolgendem Leerzeichendiw
- Löschen Sie das gesamte Wort unter dem Cursordaw
- Wie,diw
jedoch einschließlich nachfolgendem LeerzeichenLiniengrenzen:
d0
- Löschen Sie vom Zeilenanfang bis zur aktuellen Positiond^
- Löschen Sie vom ersten Nicht-Leerzeichen an die aktuelle Positiond$
- Von der aktuellen Position bis zum Zeilenende löschenquelle
/ <CR>x
(Suche nach einem Leerzeichen vorwärts, drücke die Eingabetaste, um dorthin zu gelangen, x zum Löschen)
Es mag einen magischeren Weg geben, aber ich kenne keinen.
quelle