Mam plik testfile.xml, który chcę otworzyć za pomocą Vima i usunąć w trybie poleceń
Komentarze
Odpowiedź
Sposobów jest wiele:
-
Używanie powłoki interkatywnej w vimie
W edytorze –
:sh rm textfile.xml
-
Używanie Bang (!)
Zgodnie z sugestią DopeGhoti –
:!rm textfile.xml
-
Z tego linku .
Dodaj do twój
~/.vimrc
command! -complete=file -nargs=1 Remove :echo "Remove: "."<f-args>"." ".(delete(<f-args>) == 0 ? "SUCCEEDED" : "FAILED")
Następnie w vimie
:Remove testfile.xml
-
Ponownie z tego samego linku w # 3
Użyj tego polecenia:
:call delete(expand("%")) | bdelete!
Odpowiedź
Innym sposobem interaktywnego usuwania plików jest użycie
:E
lub
:Ex
np. (ploring) do katalogu plików. Tam masz interaktywne okno, które Cię poprowadzi. Po wybraniu wpisu, który chcesz usunąć, użyj
Shift-D
potwierdź za pomocą
y return
Tak to wygląda u góry w moim oknie w trybie eksploratora:
" ============================================================================ " 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 " ============================================================================
Komentarze
-
:E
dałoE464: Ambiguous use of user-defined command
, ale:Ex
działało dobrze.
Odpowiedź
Aby tymczasowo usunąć plik
:!rm %
%
to aktualnie otwarty plik
Ctrl + Z , zatrzymuje proces
sprawdź w ls
, pliku nie ma już na dysku
fg
przywraca plik na vim
możesz go zapisać, używając zwykłych poleceń vim
Odpowiedź
Jak stwierdza Yash: jest ich wiele sposoby. Ale najkrótszy,
:echo delete(@%)
pojawia się tylko jako ukryty, tylko na końcu linku Yasha:
Nie rozumiem, dlaczego miałbyś używać tych wszystkich poleceń i funkcji.
Dlaczego nie
:echo delete(filename)
? Lub, jeśli chcesz usunąć plik i wyczyścić bufor, co, jak sądzę, zdarza się bardzo rzadko, możesz napisać:echo delete(@%)
, a jeśli się powiedzie –:bw!
.
Z echo
(zamiast call
) zobaczysz wynik bezpośrednio, 0 lub -1.
:!rm %
autorstwa @Justin jest prawdopodobnie taki sam, ale jest przełącznik ekranu i Komunikat „już niedostępny” – z delete()
jest płynniejszy.
I nie rozumiem, co rm
jest filtruje tutaj …
Cały pomysł ma sens, jeśli chcesz uporządkować kilka plików:
vim $(find -size -100c -type f)
Jeśli chcesz usunąć / zachować niektóre z tych małych plików. Możesz :n[ext]
za ich pośrednictwem i usunąć je bezpośrednio . Element :echo delete(@%)
powinien być mapowany tylko tymczasowo, ponieważ jest niebezpieczny. Zgubiłem plik pomocy i zmieniłem nazwę inny, podczas eksperymentowania z „%”.
:!rm testfile.xml
?vi
nie jest narzędziem do usuwania plików,rm
ifind
są jednocześnie narzędziami do tworzenia kopii zapasowych.