Tenho um arquivo testfile.xml que desejo abrir com o Vim e excluir no modo de comando

Comentários

Resposta

Existem muitas maneiras:

  1. Usando a concha intercativa no vim

    Quando no editor –

    :sh rm textfile.xml 
  2. Usando Bang (!)

    Como DopeGhoti sugeriu –

    :!rm textfile.xml 
  3. 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 
  4. 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 em E464: 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 “%”.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *