Mam plik testfile.xml, który chcę otworzyć za pomocą Vima i usunąć w trybie poleceń

Komentarze

Odpowiedź

Sposobów jest wiele:

  1. Używanie powłoki interkatywnej w vimie

    W edytorze –

    :sh rm textfile.xml 
  2. Używanie Bang (!)

    Zgodnie z sugestią DopeGhoti –

    :!rm textfile.xml 
  3. 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 
  4. 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ło E464: 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 „%”.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *