wc输出在vim内部/外部不同

时间:2013-11-03 04:51:10

标签: bash vim

我正在处理一个文本文件,其中包含带有LaTeX样式注释的普通文本(以%开头的行)。要确定文件的非注释字数,我在Bash中运行此命令:

grep -v "^%" filename | wc -w

返回我期望的单词数。但是,如果从vim中运行此命令:

:r! grep -v "^%" filename | wc -w

它输出包含评论的单词计数,但我无法弄清楚原因。

例如,使用此文件:

%This is a comment.
This is not a comment.

从vim外部运行命令返回5,但是在vim中打开文件并运行类似命令会打印9。

我也遇到了让vim在命令的输出前加上“%”的问题,但如果输出错了,那么这个问题就变得无关紧要了。

1 个答案:

答案 0 :(得分:1)

%字符在vi中是特殊的。它将替换当前文件的文件名。

试试这个:

:r! grep -v "^\%" filename | wc -w

与之前相同但反斜杠 - 逃避%。在我刚才的测试中,您的示例:r!命令打印了9,就像它为您所做的那样,以及上面打印的5。