Jag har en fil testfile.xml som jag vill öppna med Vim och ta bort i kommandoläge

Kommentarer

Svar

Det finns många sätt:

  1. Använda intercative shell i vim

    When in the editor –

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

    Som DopeGhoti föreslog –

    :!rm textfile.xml 
  3. Från den här länken .

    Lägg till detta i din ~/.vimrc

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

    Sedan, i vim,

    :Remove testfile.xml 
  4. Återigen från samma länk i # 3

    Använd det här kommandot:

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

Svar

Ett annat sätt att interaktivt radera filer är att använda

:E 

eller

:Ex 

för ex (ploring) filkatalogen. Där har du ett interaktivt fönster som hjälper dig. När du väl har valt den post du vill ta bort använder du

Shift-D 

bekräfta med

y return 

Så här ser det ut högst upp i mitt fönster i utforskarläge:

" ============================================================================ " 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 resulterade i E464: Ambiguous use of user-defined command, men :Ex fungerade bra.

Svar

För att ta bort filen tillfälligt

:!rm % 

% är den för närvarande öppnade filen

Ctrl + Z , stoppar processen

kolla med ls, filen finns inte längre på disken

fg tar tillbaka filen på vim

du kan spara den med vanliga vim-kommandon

Svar

Som Yash säger: det finns många sätt. Men den kortaste,

:echo delete(@%)

visas bara dold, bara i slutet av Yashs länk:

Jag förstår inte varför du skulle använda alla dessa kommandon och funktioner.

Varför inte :echo delete(filename) ? Eller om du vill ta bort fil och utplånningsbuffert, vilket jag antar händer mycket sällan, kan du skriva :echo delete(@%), och om det lyckas – :bw!.

Med echo (istället för call ) ser du resultatet direkt, 0 eller -1.


:!rm % av @Justin är förmodligen detsamma, men det finns en skärmbrytare och Meddelandet ”inte längre tillgängligt” – med delete() är det smidigare.

Och jag förstår inte vad rm är filtrering här …


Hela idén är mest meningsfull om du vill sortera en massa filer:

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

Om du vill radera / behålla några av dessa små filer. Du kan :n[ext] genom dem och ta bort dem direkt . :echo delete(@%) kanske bara ska kartläggas tillfälligt, eftersom det är farligt. Jag tappade en hjälpfil och döptes om en annan medan du experimenterade med ”%”.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *