web-dev-qa-db-fra.com

Comment puis-je compter le nombre de mots dans un fichier tout en édition du fichier dans Vim

Je sais que je peux utiliser wc pour compter des caractères, des mots et des lignes de fichiers à la ligne de commande.

Est-ce que je peux compter le nombre de mots tandis que dans Vim?

22
Michael Durrant

Vous pouvez compter des mots et des lignes à l'intérieur vi à l'aide de vi 's propre compteur:

Presse g puis CTRL-g. Ensuite, la ligne de fin de la ligne recherche par exemple comme ceci:

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

Ou utilisez vi 's méthode pour appeler des commandes shell:

:w !wc -w

Cela appelle la sauvegarde (:w) Commande d'abord, puis wc -w et montre la sortie. Exemple:

:w !wc -w
344

Press ENTER or type command to continue

Presse Enter retourner à vi.

23
chaos

Depuis vim version 7.4.1042

Depuis vim version 7.4.1042, on peut simplement modifier le statusline comme suit:

set statusline+=%{wordcount().words}\ words
set laststatus=2    " enables the statusline.

Nombre de mots dans vim-airline

Le nombre de mots est fourni standard par vim-airline Pour un certain nombre de types de fichiers, étant au moment de la rédaction: asciidoc, help, mail, markdown, org, rst, tex ,text

Si le nombre de mots n'est pas montré dans le vim-airline, plus souvent, cela est dû à un type de fichier non reconnu. Par exemple, au moins pour l'instant , le type de fichier composé markdown.pandoc n'est pas reconnu par vim-airline pour le nombre de mots. Cela peut facilement être corrigé en modifiant le .vimrc comme suit:

let g:airline#extensions#wordcount#filetypes = '\vasciidoc|help|mail|markdown|markdown.pandoc|org|rst|tex|text'
set laststatus=2    " enables vim-airline.

Les \v L'instruction remplace la valeur par défaut g:airline#extensions#wordcount#filetypes variable. La dernière ligne assure vim-airline est autorisé.

En cas de doute, le &filetype d'un fichier ouvert est renvoyé lors de la publication de la commande suivante:

:echo &filetype

Voici un méta-exemple:

vim-airline Word count

1
Serge Stroobandt

Vous pouvez aussi essayer de :!wc % Dans Vim, bien que cela compte la taille du fichier sur disque, pas ce qui est dans le tampon de Vim. Cela peut être ou peut ne pas être ce que vous vouliez.

1
Pranav Suri

Pour ceux qui veulent compter le nombre de mots dans une pièce donnée (pas de fichier entier), utilisez \S\+ regexp.

  1. Sélectionnez le texte d'intérêt (mode visuel)
  2. :s/\S\+//gn

Résultat. Vim vous montrera quelque chose comme ceci: 10 matches on 1 line

Quand vous frappez : En mode Visual, Vim recense votre commande avec '<,'> qui signifie appliquer la commande contre le texte sélectionné.

\S\+ Capture des mots, c'est des groupes de caractères séparés par des espaces.

0
Yuriy Pozniak

Les plugins tels que Vim-Airline peuvent fournir des nombres de mots pour un fichier (et des sélections) dans le cadre d'une barre d'état.

0
Patrick Sanan