Van egy testfile.xml fájlom, amelyet a Vim segítségével szeretnék megnyitni és parancs módban törölni

Megjegyzések

Válasz

Számos módszer létezik:

  1. Az interaktív shell használata a vimben

    Amikor a szerkesztőben van –

    :sh rm textfile.xml 
  2. A Bang (!) használata

    Ahogy DopeGhoti javasolta –

    :!rm textfile.xml 
  3. ezt a linket .

    Adja hozzá ehhez: a ~/.vimrc

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

    Ezután a VIM-ben

    :Remove testfile.xml 
  4. Ismét ugyanazon linkről a # 3-ban

    Használja ezt a parancsot:

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

Válasz

A fájlok interaktív törlésének másik módja a

:E 

vagy

:Ex 

a fájlkönyvtár ex (ploring) használatához. Itt van egy interaktív ablak, amely végigvezeti Önt. Miután kiválasztotta a törölni kívánt bejegyzést, használja a

Shift-D 

megerősítést a következővel:

y return 

Így néz ki az ablakom tetején, explorer módban:

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

Megjegyzések

  • :E a következőket eredményezte: E464: Ambiguous use of user-defined command, de a :Ex jól működött.

Válasz

A fájl ideiglenes törlése

:!rm % 

% az éppen megnyitott fájl

Ctrl + Z , leállítja a folyamatot

ellenőrizze a következővel: ls, a fájl már nincs a lemezen

fg visszahozza a fájlt a vim-re

elmentheti a szokásos vim parancsok használatával

Válasz

Ahogy Yash állítja: sokan vannak módokon. De a legrövidebb,

:echo delete(@%)

csak rejtve jelenik meg, csak a Yash linkjének végén:

Nem értem, miért használnád az összes parancsot és funkciót.

Miért ne :echo delete(filename) ? Vagy ha törölni akarja a fájlt és a törlési puffert, ami azt hiszem, nagyon ritkán fordul elő, akkor írjon :echo delete(@%), és ha sikeres – :bw!.

A következővel: echo (call helyett ) közvetlenül az eredményt látja, 0 vagy -1.


:!rm % a @Justin írta valószínűleg ugyanaz, de van egy képernyőkapcsoló és a “már nem elérhető” üzenet – delete() esetén simább.

És nem értem, mi rm itt szűrés van …


Az egész ötletnek többnyire van értelme, ha egy csomó fájlt szeretne rendezni:

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

Ha törölni szeretne / megtartana néhány ilyen kis fájlt. :n[ext] átfuttathatja rajtuk, és közvetlenül törölheti őket . A :echo delete(@%) -et talán csak ideiglenesen kell feltérképezni, mert veszélyes. Elvesztettem egy súgófájlt, és átneveztem egy másik, miközben kísérletezik a “%” -val.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük