Wie wähle / lösche ich bis zum Ende der Datei in vim / gvim?
41
Aus Versehen konnte ich einen Absatz millionenfach kopieren und einfügen. Wie wähle und lösche ich den Text von meiner aktuellen Position bis zum Ende der Datei?
In Windows wäre dies Strg-Umschalt-Ende, gefolgt von Löschen.
Ugh, ich werde mich nie an all diese vim Abkürzungen erinnern. Die Windows-Verknüpfungen sind viel intuitiver.
Ripper234
Persönlich finde ich vim intuitiver. V, gehen Sie in den visuellen Modus G, fast wie "go", bis zum Ende der Datei. Und x, entferne.
Mark Szymanski
10
@ ripper234: Versuche dich nicht an "Schnipsel" zu erinnern, um bestimmte Aufgaben zu erledigen. Konzentriere dich auf die Unterbefehle. Das ist ein Teil der Magie von vim: Verwenden Sie diese kleineren Befehle, um größere, komplexere Dinge aufzubauen. Es ist fast unendlich flexibel.
Reid
Und es hilft wirklich eine Menge , die Zeit zu nehmen und die damit verbundenen vim-Hilfe-Abschnitte mit durchlesen: h Kommando-you-need-Hilfe-für
Gjallar
1
Um dies hinzuzufügen: vimtutorrufe von der Kommandozeile aus auf, um dich mit ihnen vertraut zu machen @ ripper234
Bernhard
48
dwird gelöscht und Gan das Ende der Datei verschoben, dGwird also an das Ende der Datei gelöscht. Es enthält jedoch die gesamte aktuelle Zeile. Wenn Sie in der Mittellinie sind und alles vor der aktuellen Position beibehalten möchten, müssen Sie Marks Methode anwenden
nicht immer möglich, siehe "auswählen". Stellen Sie sich vor, Sie haben Code am Ende der Datei geschrieben (und möchten ihn an einer anderen Stelle haben). DG ermöglicht Ihnen das Einfügen mit p | P
relascope
2
vGx
Funktioniert gut für die Auswahl mehrerer Zeilen (in diesem Fall Absatz), aber wenn Sie innerhalb einer einzelnen Zeile auswählen möchten, wirkt dies auf mysteriöse Weise (Auswahl vom Cursor bis zum Zeilenanfang).
Bei Auswahl innerhalb einer Zeile müssen Sie Folgendes verwenden:
v$x
Dieser wechselt in den visuellen Modus ("v") und geht zum Zeilenende ("$") und löscht ("x") von der aktuellen Position bis zum Zeilenende.
u
.Antworten:
Wechseln Sie in den visuellen Modus, gehen Sie zu Dateiende, löschen Sie.
Alternativ können Sie Folgendes tun:
Zum Löschen von der aktuellen Position zum Dateianfang.
quelle
vimtutor
rufe von der Kommandozeile aus auf, um dich mit ihnen vertraut zu machen @ ripper234dwird gelöscht und Gan das Ende der Datei verschoben, dGwird also an das Ende der Datei gelöscht. Es enthält jedoch die gesamte aktuelle Zeile. Wenn Sie in der Mittellinie sind und alles vor der aktuellen Position beibehalten möchten, müssen Sie Marks Methode anwenden
quelle
D<enter>dG
:D
zu EOL, löschen<enter>
zur nächsten Zeile zu bewegen,dG
um EOF zu löschen.Noch eine andere Methode:
:.,$d
Das heißt, im Ex-Modus die aktuelle Zeile bis zum Ende ansprechen und löschen.
quelle
Sie können auch einfach eingeben u, um die Änderungen rückgängig zu machen, die zum fehlerhaften Kopieren und Einfügen geführt haben.
quelle
Funktioniert gut für die Auswahl mehrerer Zeilen (in diesem Fall Absatz), aber wenn Sie innerhalb einer einzelnen Zeile auswählen möchten, wirkt dies auf mysteriöse Weise (Auswahl vom Cursor bis zum Zeilenanfang).
Bei Auswahl innerhalb einer Zeile müssen Sie Folgendes verwenden:
Dieser wechselt in den visuellen Modus ("v") und geht zum Zeilenende ("$") und löscht ("x") von der aktuellen Position bis zum Zeilenende.
quelle
Vggx hat bei mir nicht funktioniert, vG $ d jedoch. vG $ wählt EOF (letztes Zeichen der letzten Zeile) und dann den Befehl, den Sie ausführen möchten.
= Dieser Ansatz (Befehl nach Auswahl) scheint besser zu funktionieren. Natürlich verwende ich Vim 8.1 unter Windows 10 und ein paar Jahre später.
quelle