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:
-
Utilizarea shell-ului intercativ în vim
Când se află în editor –
:sh rm textfile.xml
-
Utilizarea Bang (!)
După cum a sugerat DopeGhoti –
:!rm textfile.xml
-
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
-
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 înE464: 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 „%”.
:!rm testfile.xml
?vi
nu este un instrument pentru ștergerea fișierului,rm
șifind
sunt, precum și instrumente de copiere de rezervă.