Jeg har en fil testfile.xml som jeg vil åpne med Vim og slette i kommandomodus

Kommentarer

Svar

Det er mange måter:

  1. Bruke intercative shell in vim

    When in the editor –

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

    Som DopeGhoti foreslo –

    :!rm textfile.xml 
  3. 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 
  4. 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 i E464: 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 «%».

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *