Jeg har en fil testfile.xml som jeg vil åpne med Vim og slette i kommandomodus
Kommentarer
Svar
Det er mange måter:
-
Bruke intercative shell in vim
When in the editor –
:sh rm textfile.xml
-
Bruke Bang (!)
Som DopeGhoti foreslo –
:!rm textfile.xml
-
Fra denne lenken .
Legg dette til din
~/.vimrc
command! -complete=file -nargs=1 Remove :echo "Remove: "."<f-args>"." ".(delete(<f-args>) == 0 ? "SUCCEEDED" : "FAILED")
Deretter, i vim,
:Remove testfile.xml
-
Igjen fra samme link i # 3
Bruk denne kommandoen:
:call delete(expand("%")) | bdelete!
Svar
En annen måte å interaktivt slette filer på er å bruke
:E
eller
:Ex
for eks (planlegging) av filkatalogen. Der har du et interaktivt vindu som vil veilede deg. Når du har valgt oppføringen du vil slette, bruker du
Shift-D
bekreft med
y return
Slik ser det ut øverst i vinduet mitt i utforskermodus:
" ============================================================================ " 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
resulterte iE464: Ambiguous use of user-defined command
, men:Ex
fungerte bra.
Svar
For å slette filen midlertidig
:!rm %
%
er den nåværende filen
Ctrl + Z , stopper prosessen
sjekk med ls
, filen er ikke lenger på disken
fg
bringer filen tilbake på vim
du kan lagre det ved hjelp av vanlige vim-kommandoer
Svar
Som Yash sier: det er mange måter. Men den korteste,
:echo delete(@%)
vises bare skjult, bare på slutten av Yashs lenke:
Jeg forstår ikke hvorfor du vil bruke alle disse kommandoene og funksjonene.
Hvorfor ikke
:echo delete(filename)
? Eller hvis du vil slette fil- og utslettingsbuffer, som jeg antar skjer veldig sjelden, kan du skrive:echo delete(@%)
, og hvis det lykkes –:bw!
.
Med echo
(i stedet for call
) ser du resultatet direkte, 0 eller -1.
:!rm %
av @Justin er sannsynligvis det samme, men det er en skjermbryter og «ikke lenger tilgjengelig» -melding – med delete()
er den jevnere.
Og jeg forstår ikke hva rm
er filtrering her …
Hele ideen gir mest mening hvis du vil sortere en haug med filer:
vim $(find -size -100c -type f)
Hvis du vil slette / beholde noen av disse små filene. Du kan :n[ext]
gjennom dem og slette dem direkte . :echo delete(@%)
bør kanskje bare kartlegges midlertidig, fordi det er farlig. Jeg mistet en hjelpefil og fikk nytt navn en annen mens du eksperimenterte med «%».
:!rm testfile.xml
?vi
er ikke et verktøy for å slette filen,rm
ogfind
er i tillegg til sikkerhetskopieringsverktøy.