Ik heb een bestand testfile.xml dat ik met Vim wil openen en verwijderen in commandomodus

Reacties

Antwoord

Er zijn veel manieren:

  1. De intercative shell in vim gebruiken

    Wanneer in de editor –

    :sh rm textfile.xml 
  2. Bang (!) gebruiken

    Zoals DopeGhoti suggereerde –

    :!rm textfile.xml 
  3. Van deze link .

    Voeg dit toe aan uw ~/.vimrc

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

    Dan, in vim,

    :Remove testfile.xml 
  4. Opnieuw vanaf dezelfde link in # 3

    Gebruik deze opdracht:

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

Answer

Een andere manier om interactief bestanden te verwijderen is door

:E 

of

:Ex 

om bijvoorbeeld de bestandsmap te verkennen. Daar heb je een interactief venster dat je zal begeleiden. Zodra u het item heeft geselecteerd dat u wilt verwijderen, gebruikt u

Shift-D 

bevestig met

y return 

Zo ziet het er bovenaan in mijn venster in verkennermodus uit:

" ============================================================================ " 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 " ============================================================================ 

Reacties

  • :E resulteerde in E464: Ambiguous use of user-defined command, maar :Ex werkte prima.

Antwoord

Om het bestand tijdelijk te verwijderen

:!rm % 

% is het momenteel geopende bestand

Ctrl + Z , stopt het proces

controleer met ls, bestand staat niet meer op de schijf

fg brengt het bestand terug in vim

je kunt het opslaan met gewone vim-commandos

Answer

Zoals Yash zegt: er zijn er veel manieren. Maar de kortste,

:echo delete(@%)

verschijnt alleen verborgen, alleen aan het einde van de link van Yash:

Ik begrijp niet waarom je al die commandos en functies zou gebruiken.

Waarom niet :echo delete(filename) ? Of, als je het bestand en de wisbuffer wilt verwijderen, wat volgens mij zeer zelden gebeurt, kun je :echo delete(@%) schrijven, en als dit lukt – :bw!.

Met echo (in plaats van call ) zie je het resultaat direct, 0 of -1.


:!rm % door @Justin is waarschijnlijk hetzelfde, maar er is een schermschakelaar en de “niet langer beschikbaar” bericht – met delete() is het soepeler.

En ik begrijp niet wat rm is filtert hier …


Het hele idee is vooral logisch als je een aantal bestanden wilt sorteren:

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

Als je enkele van deze kleine bestanden wilt verwijderen / behouden, kun je :n[ext] door ze heen en ze direct verwijderen . De :echo delete(@%) mag misschien maar tijdelijk in kaart worden gebracht, omdat het gevaarlijk is. Ik ben een helpbestand kwijtgeraakt en heb de naam gewijzigd een ander, terwijl je experimenteert met “%”.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *