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?
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
.
vim
version 7.4.1042Depuis vim
version 7.4.1042, on peut simplement modifier le statusline
comme suit:
set statusline+=%{wordcount().words}\ words
set laststatus=2 " enables the statusline.
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:
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.
Pour ceux qui veulent compter le nombre de mots dans une pièce donnée (pas de fichier entier), utilisez \S\+
regexp.
: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.
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.