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:
-
Använda intercative shell i vim
When in the editor –
:sh rm textfile.xml
-
Med Bang (!)
Som DopeGhoti föreslog –
:!rm textfile.xml
-
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
-
Å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 iE464: 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 ”%”.
:!rm testfile.xml
?vi
är inte ett verktyg för att radera fil,rm
ochfind
är liksom reservverktyg.