Ich habe eine Datei testfile.xml, die ich mit Vim öffnen und im Befehlsmodus löschen möchte

Kommentare

Antwort

Es gibt viele Möglichkeiten:

  1. Verwenden der Intercative-Shell in vim

    Im Editor –

    :sh rm textfile.xml 
  2. Verwenden von Bang (!)

    Wie von DopeGhoti vorgeschlagen –

    :!rm textfile.xml 
  3. Von diesem Link .

    Fügen Sie diesen hinzu Ihre ~/.vimrc

    command! -complete=file -nargs=1 Remove :echo "Remove: "."<f-args>"." ".(delete(<f-args>) == 0 ? "SUCCEEDED" : "FAILED") 

    Dann in vim

    :Remove testfile.xml 
  4. Wieder über denselben Link in # 3

    Verwenden Sie diesen Befehl:

    :call delete(expand("%")) | bdelete! 

Antwort

Eine andere Möglichkeit zum interaktiven Löschen von Dateien ist die Verwendung von

:E 

oder

:Ex 

zum Beispiel (Ploring) des Dateiverzeichnisses. Dort haben Sie ein interaktives Fenster, das Sie führt. Wenn Sie den Eintrag ausgewählt haben, den Sie löschen möchten, verwenden Sie

Shift-D 

und bestätigen Sie mit

y return 

So sieht es oben in meinem Fenster im Explorer-Modus aus:

" ============================================================================ " Netrw Directory Listing (netrw v140) " C:\Users\cbkrd\Desktop " Sorted by name " Sort sequence: [\/]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$ " Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:exec " ============================================================================ 

Kommentare

  • :E führte zu E464: Ambiguous use of user-defined command, aber :Ex funktionierte einwandfrei.

Antwort

So löschen Sie die Datei vorübergehend

:!rm % 

% ist die aktuell geöffnete Datei

Strg + Z , stoppt den Prozess

mit ls prüfen, Datei nicht mehr auf der Festplatte

fg bringt die Datei auf vim zurück

Sie können es mit regulären vim-Befehlen speichern.

Antwort

Wie Yash feststellt: Es gibt viele Wege. Aber die kürzeste,

:echo delete(@%)

, erscheint nur versteckt, nur am Ende von Yashs Link:

Ich verstehe nicht, warum Sie all diese Befehle und Funktionen verwenden würden.

Warum nicht :echo delete(filename) ? Wenn Sie den Datei- und Löschpuffer löschen möchten, was meiner Meinung nach sehr selten vorkommt, können Sie :echo delete(@%) schreiben, und wenn erfolgreich – :bw!.

Mit echo (anstelle von call ) Sie sehen das Ergebnis direkt, 0 oder -1.


:!rm % von @Justin ist wahrscheinlich dasselbe, aber es gibt einen Bildschirmschalter und den Nachricht „nicht mehr verfügbar“ – mit delete() ist es flüssiger.

Und ich verstehe nicht, was rm filtert hier


Die ganze Idee ist meistens sinnvoll, wenn Sie eine Reihe von Dateien sortieren möchten:

vim $(find -size -100c -type f)

Wenn Sie einige dieser kleinen Dateien löschen / behalten möchten, können Sie sie :n[ext] durchgehen und direkt löschen Die :echo delete(@%) sollte möglicherweise nur vorübergehend zugeordnet werden, da dies gefährlich ist. Ich habe eine Hilfedatei verloren und umbenannt ein anderer, während er mit „%“ experimentiert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.