Jeg har en fil testfile.xml, som jeg vil åbne med Vim og slette i kommandotilstand

Kommentarer

Svar

Der er mange måder:

  1. Brug af intercative shell i vim

    Når du er i editoren –

    :sh rm textfile.xml 
  2. Brug af Bang (!)

    Som DopeGhoti foreslog –

    :!rm textfile.xml 
  3. Fra dette link .

    Føj dette til din ~/.vimrc

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

    Derefter, i vim,

    :Remove testfile.xml 
  4. Igen fra det samme link i # 3

    Brug denne kommando:

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

Svar

En anden måde at interaktivt slette filer på er at bruge

:E 

eller

:Ex 

til ex (ploring) filmappen. Der har du et interaktivt vindue, der vil guide dig. Når du har valgt den post, du vil slette, skal du bruge

Shift-D 

bekræfte med

y return 

Sådan ser det ud øverst i mit vindue i explorer-tilstand:

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

Kommentarer

  • :E resulterede i E464: Ambiguous use of user-defined command, men :Ex fungerede fint.

Svar

For at slette filen midlertidigt

:!rm % 

% er den aktuelt åbnede fil

Ctrl + Z , stopper processen

tjek med ls, filen ikke længere på disken

fg bringer filen tilbage på vim

du kan gemme det ved hjælp af regelmæssige vim-kommandoer

Svar

Som Yash siger: der er mange måder. Men den korteste,

:echo delete(@%)

vises kun skjult, kun i slutningen af Yashs link:

Jeg forstår ikke, hvorfor du vil bruge alle disse kommandoer og funktioner.

Hvorfor ikke :echo delete(filename) ? Eller hvis du vil slette filen og udslette bufferen, hvilket jeg gætter meget sjældent, kan du skrive :echo delete(@%), og hvis det lykkes – :bw!.

Med echo (i stedet for call ) ser du resultatet direkte, 0 eller -1.


:!rm % af @Justin er sandsynligvis den samme, men der er en skærmafbryder, og Meddelelsen “ikke længere tilgængelig” – med delete() er den glattere.

Og jeg forstår ikke, hvad rm er filtrering her …


Hele idéen giver mest mening, hvis du vil sortere en masse filer:

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

Hvis du vil slette / beholde nogle af disse små filer. Du kan :n[ext] gennem dem og slette dem direkte . :echo delete(@%) skal måske kun kortlægges midlertidigt, fordi det er farligt. Jeg mistede en hjælpefil og omdøbte en anden, mens du eksperimenterer med “%”.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *