Answers:
除非我缺少任何东西,否则Vim已经做到了。如果我使用鼠标或通过键入v
并移动光标来突出显示某些文本,则会在屏幕底部看到
-视觉-12
其中右边的数字是突出显示的字符数。仅当选择位于单行上时,此方法才有效,否则将显示行数。
您还可以直观地选择一些文本区域和类型g Ctrl-G,以显示所选的行数,单词数和字节数。
set showcmd
到您vimrc
的启用它。
Vim根据显示的内容和方式在显示的字符数和行数之间切换,具体取决于可视化内容和方式(Vim 7.4已于2015年9月发布)
V will display line count
v$ will display character count
如果可视化多行,则仅显示行数
g-CTRL-G displays 'byte count' which seems to be 'char count' +1 per line
v
如果选择跨越多行,那么即使是普通的也从字符计数转换为行计数。但是g CTRL-G
做得很好。
我从屏幕截图中看到您正在Windows中运行,因此此答案可能对您没有太大帮助。但是对于其他人...
Vim的未充分利用(IMO)功能是让外部命令来执行繁重的工作。
对于这种情况,如果您使用的是类似UNIX的系统,则可以使用该wc
命令执行此操作。
最简单的方法是通过键入(带有选定的文本),用命令的输出替换选定的文本:
:!wc
(然后按Enter)。
这将在您的命令行中显示为:
'<,'>!wc
阅读完相关信息后,您可以撤消u
以返回到开始的位置。
注意:此处理仅在整行上完成。如果您想要分行,我认为@ garyjohn's g_CTRL-G
是最好的选择。
您可以通过运行以下命令来避免撤消操作:
:w !wc
这会将选定的行“写入”到命令的标准输入中,命令的输出将显示在新的临时缓冲区中,而原始缓冲区保持不变。请参阅:help :write_c
以获取更多信息。
注意:我:write_c
从以下地方获得了信息:https : //stackoverflow.com/questions/1237780/vim-execute-shell-command-without-filtering
现在,更一般地:
这个示例wc
非常简单,但是您可以想象这是一个强大的方法。UNIX已经有许多可用的文本处理命令,您可以很容易地在Vim中使用它们,而无需触摸Vimscript(yech)。
此外,您编写的任何处理stdin / stdout的命令行程序现在都不仅可以使您的终端受益,而且可以使Vim内部受益。
例如,我发现自己正在运行,tidy
并且json-format
从vim内部运行,使我正在查看的文件更具可读性。
您可以在Windows上执行相同的操作,但是Windows没有内置的如此丰富的命令集。不过,您始终可以安装GNUWin32或类似版本以获得这些好处。
对于vimscript中的一种编程方式,当选择限于一行内时,这对我有用:
let amount = virtcol("'>") - virtcol("'<")
(使用virtcol(..)
代替col(..)
,以使其在:set ve=all
活动时按预期方式工作。)