Am un fișier testfile.xml pe care vreau să îl deschid cu Vim și să îl șterg în modul de comandă

Comentarii

Răspuns

Există mai multe moduri:

  1. Utilizarea shell-ului intercativ în vim

    Când se află în editor –

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

    După cum a sugerat DopeGhoti –

    :!rm textfile.xml 
  3. De la acest link .

    Adăugați acest lucru la ~/.vimrc

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

    Apoi, în vim,

    :Remove testfile.xml 
  4. Din nou din același link din # 3

    Utilizați această comandă:

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

Răspuns

O altă modalitate de ștergere interactivă a fișierelor este utilizarea

:E 

sau

:Ex 

pentru ex (ploring) directorul de fișiere. Acolo aveți o fereastră interactivă care vă va ghida. După ce selectați intrarea pe care doriți să o ștergeți, utilizați

Shift-D 

confirmați cu

y return 

Așa arată în partea de sus a ferestrei mele în modul explorator:

" ============================================================================ " 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 " ============================================================================ 

Comentarii

  • :E a rezultat în E464: Ambiguous use of user-defined command, dar :Ex a funcționat bine.

Răspuns

Pentru a șterge temporar fișierul

:!rm % 

% este fișierul deschis în prezent

Ctrl + Z , oprește procesul

verificați cu ls, fișierul nu mai este pe disc

fg readuce fișierul pe vim

îl puteți salva, utilizând comenzi vim obișnuite

Răspuns

După cum afirmă Yash: există multe căi. Dar cel mai scurt,

:echo delete(@%)

apare doar ascuns, doar la sfârșitul link-ului lui Yash:

Nu înțeleg de ce ați folosi toate acele comenzi și funcții.

De ce nu :echo delete(filename) ? Sau, dacă doriți să ștergeți fișierul și tamponul de ștergere, ceea ce cred că se întâmplă foarte rar, puteți scrie :echo delete(@%) și dacă are succes – :bw!.

Cu echo (în loc de call ) vedeți rezultatul direct, 0 sau -1.


:!rm % de @Justin este probabil același, dar există un comutator de ecran și mesajul „nu mai este disponibil” – cu delete() este mai ușor.

Și nu înțeleg ce rm este filtrare aici …


Întreaga idee are cel mai mult sens dacă doriți să sortați o grămadă de fișiere:

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

Dacă doriți să ștergeți / păstrați unele dintre aceste fișiere mici. Puteți :n[ext] să le ștergeți direct . :echo delete(@%) ar putea fi cartografiat doar temporar, deoarece este periculos. Am pierdut un fișier de ajutor și l-am redenumit. alta, în timp ce experimenta cu „%”.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *