Tenho um arquivo testfile.xml que desejo abrir com o Vim e excluir no modo de comando
Comentários
Resposta
Existem muitas maneiras:
-
Usando a concha intercativa no vim
Quando no editor –
:sh rm textfile.xml
-
Usando Bang (!)
Como DopeGhoti sugeriu –
:!rm textfile.xml
-
A partir deste link .
Adicionar a seu
~/.vimrc
command! -complete=file -nargs=1 Remove :echo "Remove: "."<f-args>"." ".(delete(<f-args>) == 0 ? "SUCCEEDED" : "FAILED")
Então, no vim,
:Remove testfile.xml
-
Novamente a partir do mesmo link em # 3
Use este comando:
:call delete(expand("%")) | bdelete!
Resposta
Outra maneira de excluir arquivos interativamente é usar
:E
ou
:Ex
para ex (plotar) o diretório do arquivo. Lá você tem uma janela interativa que irá guiá-lo. Depois de selecionar a entrada que deseja excluir, use
Shift-D
confirme com
y return
Esta é a aparência na parte superior da minha janela no modo explorador:
" ============================================================================ " 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 " ============================================================================
Comentários
-
:E
resultou emE464: Ambiguous use of user-defined command
, mas:Ex
funcionou bem.
Resposta
Para excluir o arquivo temporariamente
:!rm %
%
é o arquivo atualmente aberto
Ctrl + Z , interrompe o processo
verifique com ls
, o arquivo não está mais no disco
fg
traz de volta o arquivo no vim
você pode salvá-lo, usando comandos regulares do vim
Resposta
Conforme Yash afirma: há muitos maneiras. Mas o mais curto,
:echo delete(@%)
só aparece oculto, apenas no final do link de Yash:
Não entendo por que você usaria todos esses comandos e funções.
Por que não
:echo delete(filename)
? Ou, se quiser excluir o arquivo e limpar o buffer, o que acho que acontece muito raramente, você pode escrever:echo delete(@%)
e, se for bem-sucedido –:bw!
.
Com echo
(em vez de call
) você vê o resultado diretamente, 0 ou -1.
:!rm %
por @Justin é provavelmente o mesmo, mas há uma troca de tela e o mensagem “não mais disponível” – com delete()
é mais suave.
E eu não entendo o que rm
está filtrando aqui …
A ideia toda faz mais sentido se você quiser separar um monte de arquivos:
vim $(find -size -100c -type f)
Se quiser excluir / manter alguns desses arquivos pequenos, você pode :n[ext]
através deles e excluí-los diretamente . O :echo delete(@%)
talvez só deva ser mapeado temporariamente, porque é perigoso. Perdi um arquivo de ajuda e renomeei outro, enquanto experimenta com “%”.
:!rm testfile.xml
?vi
não é uma ferramenta para excluir arquivos,rm
efind
são também ferramentas de backup.