Jeg har en fil testfile.xml, som jeg vil åbne med Vim og slette i kommandotilstand
Kommentarer
Svar
Der er mange måder:
-
Brug af intercative shell i vim
Når du er i editoren –
:sh rm textfile.xml
-
Brug af Bang (!)
Som DopeGhoti foreslog –
:!rm textfile.xml
-
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
-
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 iE464: 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 “%”.
:!rm testfile.xml
?vi
er ikke et værktøj til at slette filen,rm
ogfind
er såvel som backupværktøjer.