【问题标题】:How to get character count using vi or vim如何使用 vi 或 vim 获取字符数
【发布时间】:2018-11-24 12:26:02
【问题描述】:

如何使用 vi 从文本文件中获取字符位置计数?

我尝试了“:goto number”,但它在 Linux 中不起作用。

为了澄清我的问题,如果我有一个包含 3 行的文件:

I am going for a walk 
because today is a 
beautiful day.

我想说在第 30 位找到一个字母,它会跳到第 2 行突出显示单词“today”中的字母“t”。这类似于 macos vi 中 :goto 30 的概念,但适用于 Linux

【问题讨论】:

  • :%s/.//gn<cr> 是一种方式。
  • :h wordcount()
  • 我更新了我的问题以澄清我的意思。这个问题与 phd 所引用的内容不重复。谢谢!
  • 更新了我的答案

标签: vim count character vi


【解决方案1】:

使用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 是指您在 on(字节 1)与 total 字节或文件中的“字符”(571)

更新

根据您的扩​​展解释,这应该是您所需要的:

:go30

另外,我希望您考虑“字符”并使用术语“字节”——这将使您将来在 Google 上搜索有关 vim 的结果更加丰富。

这是它在命令行上的样子:

【讨论】:

  • 您的回答很有趣,但并不平静我正在寻找的东西。我更新了我的问题以进一步澄清。谢谢!
  • :go30怎么样
  • 执行sudo apt-get install vim 以获取包含所有可用命令的最新vim
  • 我正在使用 Ubuntu 16.04 和 vim 版本 7.4.1689 -- 执行 vi -v 以查看您的 vim 版本。
  • 由于字符和字节不是一回事:例如,如果有 unicode 多字节字符,最好知道如何处理实际字符。
【解决方案2】:

只计算文件的一部分(或所有文件,如果需要)中的字符 首先可视化您要计算的区域。

  1. 使用 v} 可视化段落
  2. 使用 ggVG 可视化整个文件

然后输入

:%s/\%V./&/g

我需要这个来统计我的推特帖子(280 个字符限制)

【讨论】:

  • 你建议的命令的解释是什么?
  • \%V 表示可视化文本,然后替换每个字符 '.'与自身 '&' 。这使文本完全一样,但计算“替换”了多少个字符
【解决方案3】:

我找到了解决问题的方法。看起来我的系统上安装了“vi”和“vim”。默认情况下,我使用“vi”来编辑文件,:goto 30 不起作用。经过一番挖掘,我发现“vi”是vim-minimal 包的一部分。 'vim' 是 vim-enhanced 包的一部分。当我尝试使用“vim”而不是“vi”时,:goto 30 起作用了!所以看起来它肯定与包有关。感谢 Zak,指明了正确的方向并感谢所有人的帮助。

【讨论】:

  • 从技术上讲,我的答案有效,--包括我要求您检查您的VIM 版本。如果需要,请安装更新的软件包--任何阅读我的答案的人都会到达 1 ) :goto 30 有效.. 2) 如果没有,请检查您的 vim 版本。没有必要回答你自己的问题。
猜你喜欢
  • 2017-02-01
  • 2012-04-11
  • 2013-02-06
  • 2019-10-23
  • 2010-12-31
  • 2012-02-20
  • 2014-06-19
  • 2021-03-21
  • 2011-07-05
相关资源
最近更新 更多