3

我正在处理一个文本文件,其中包含带有 LaTeX 样式注释的普通文本(以 a 开头的行%)。为了确定文件的非注释字数,我在 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 在命令输出前加上“%”的问题,但如果输出无论如何都是错误的,那么这个问题就变得无关紧要了。

4

1 回答 1

2

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

尝试这个:

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

与以前相同,但反斜杠转义%. 在我刚才的测试中,你的示例:r!命令打印了 9,就像它为你做的一样,上面打印了 5。

于 2013-11-03T04:56:27.127 回答