Como posso contar o número de palavras em um arquivo enquanto edito o arquivo no vim

21

Eu sei que posso usar wcpara contar caracteres, palavras e linhas de arquivos na linha de comando .

Existe alguma maneira de contar o número de palavras no vim ?

Michael Durrant
fonte

Respostas:

22

Você pode contar palavras e linhas dentro viusando vi's próprio contador:

Pressione ge depois CTRL- g. Em seguida, a linha de fundo é parecida com o seguinte:

Col 1 of 11; Line 1 of 106; Word 1 of 344; Byte 1 of 2644

Ou use vio método de chamar comandos de shell:

:w !wc -w

Isso chama o :wcomando save ( ) primeiro e depois wc -wmostra a saída. Exemplo:

:w !wc -w
344

Press ENTER or type command to continue

Pressione Enterpara voltar para vi.

caos
fonte
Na verdade, é uma descrição incorreta da :w !<cmd>construção. Ele grava o buffer atual em um canal conectado ao comando. Não é prometida nenhuma gravação separada do buffer atual em um arquivo. No entanto, ele faz o que pergunta.
mcepl
1

Você também pode tentar :!wc %no Vim, apesar de contar o tamanho do arquivo em disco, não o que está no buffer do Vim. Isso pode ou não ser o que você queria.

Pranav Suri
fonte
Isso conta o que está no disco (se houver), não o que está no buffer - portanto, se você alterou o conteúdo do buffer desde a última gravação, ou não foi salvo, você receberá a contagem errada (ou até mesmo um erro se você está criando um arquivo).
Stephen Kitt
Contra Stephen, esta é uma solução correta para "Como posso contar o número de palavras em um arquivo enquanto edita o arquivo no vim", enquanto a resposta aceita estritamente não é (embora seja ambíguo o que se quis dizer ou se importa )
Michael Homer
Engraçado que seja semelhante (menos o -wsinalizador para restringir a saída apenas a palavras) a uma resposta de exclusão de 2014 por D_Bye (que aparentemente a excluiu automaticamente).
Jeff Schaller
0

Plugins como vim-airlines podem fornecer contagens de palavras para um arquivo (e seleções) como parte de uma barra de status.

Patrick Sanan
fonte
Esta resposta não é apenas um link. Não incluí as especificidades de nenhum plug-in específico, porque (como você diz) plug-ins específicos podem ficar desatualizados.
Patrick Sanan
Eu estou corrigido. No entanto, eu diria que no futuro você deve tentar incluir etapas relevantes para implementar a solução que está apresentando. Obrigado!
kemotep 9/01
0

Para aqueles que desejam contar o número de palavras em um determinado pedaço de texto (não no arquivo inteiro), use \S\+regexp.

  1. Selecione o texto de interesse (modo visual)
  2. :s/\S\+//gn

Resultado. O Vim mostrará algo assim:10 matches on 1 line

Quando você pressiona :no modo visual, o vim precede seu comando com o '<,'>que significa aplicar o comando ao texto selecionado.

\S\+ captura palavras, ou seja, grupos de caracteres separados por espaços em branco.

Yuriy Pozniak
fonte