如何使用 vi 从文本文件中获取字符位置计数?
我试过“:goto number”,但它在 Linux 中不起作用。
为了澄清我的问题,如果我有一个包含三行的文件:
I am going for a walk
because today is a
beautiful day.
我想,比如说,在位置 30 找到一个字母,它会跳到第 2 行,突出显示单词“today”中的字母“t”。这类似于 macOS vi 中的
:goto 30
概念,但适用于 Linux。
使用G, Ctrl + G
输出看起来像
Col 1 of 5; Line 1 of 31; Word 1 of 48; Byte 1 of 571
Col 1 of 5;
指的是光标在你所在的line
上的位置
Line 1 of 31;
指的是您当前光标所在的行
Byte 1 of 571
指的是你在上的字符(字节 1)与 total 字节,或文件中的“字符”(571)
这应该是你需要的:
:go30
此外,我希望您想到“字符”并使用术语“字节”。这将使您未来关于
vim
的谷歌搜索更有成果。
这是它在命令行中的样子:
在以后的版本中,这个命令返回:
Col 1 of 5; Line 1 of 31; Word 1 of 48; Char 1 of 570; Byte 1 of 571
只计算文件的一部分(如果需要,也可以计算整个文件)中的字符数。 首先可视化您要计数的区域。
然后输入
:%s/\%V./&/g
我需要这个来计算我的 Twitter 帖子(280 个字符限制)。
我找到了解决问题的方法。看起来我的系统上安装了“vi”和“vim”。默认情况下,我使用“vi”编辑文件,
:goto 30
不起作用。经过一番挖掘后,我发现'vi'是vim-minimal
包的一部分。而'vim'是vim-enhanced
包的一部分。当我尝试使用“vim”而不是“vi”时,:goto 30
成功了!所以看起来它肯定是包相关的。感谢 Zak,指出了正确的方向并感谢所有人的帮助。