在vim中编辑文件时如何计算文件中的单词数


21

我知道我可以在命令行中wc用来计算字符,单词和文件的行数

在vim中,有什么方法可以计数字数吗?

Answers:


22

您可以vi使用vi自己的计数器来计算内部的单词和行数:

g,然后按CTRL- g。然后底线看起来像这样:

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

或使用vi的方法来调用Shell命令:

:w !wc -w

首先调用save(:w)命令,然后wc -w显示输出。例:

:w !wc -w
344

Press ENTER or type command to continue

Enter返回到vi


这实际上是对:w !<cmd>构造的错误描述。它将当前缓冲区写入连接到命令的管道。不允许将当前缓冲区单独写入文件。不过,它确实要问什么问题。
mcepl

1

您也可以:!wc %在Vim中进行尝试,尽管它会计算磁盘上文件的大小,而不是Vim缓冲区中的大小。这可能不是您想要的。


它计算的是磁盘上的内容(如果有的话),而不是缓冲区中的内容,因此,如果您自上次保存以来更改了缓冲区的内容,或者根本没有保存,则会得到错误的计数(如果错误,则错误)您正在创建文件)。
Stephen Kitt

与Stephen相反,这 “如何在vim中编辑文件时如何计算文件中单词的数量”的正确解决方案,而严格说来的答案不是(尽管这是含糊不清的意思或意义) )。
Michael Homer

有趣的是,它类似于-wD_Bye(显然是自我删除的)从2014年起删除答案的相似之处(减去标志以仅将输出限制为仅单词)。
杰夫·谢勒

0

诸如vim-airline之类的插件可以在状态栏中提供文件(和选择)的字数统计。


这个答案并非仅链接。我没有提供任何特定插件的详细信息,因为(如您所说)特定插件可能已过时。
Patrick Sanan

我站得住了。但是我会说,将来您应该尝试包括相关步骤以实施您要介绍的解决方案。谢谢!
kemotep

0

对于那些想要计算给定文本(而不是整个文件)中的单词数的用户,请使用\S\+regexp。

  1. 选择感兴趣的文本(可视模式)
  2. :s/\S\+//gn

结果。Vim将显示以下内容:10 matches on 1 line

:在可视模式下单击时,vim会在命令前加上命令,'<,'>这意味着将命令应用于所选文本。

\S\+ 捕获单词,即由空格分隔的字符组。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.