vim - Vim 中的快速字数统计功能

标签 vim

我正在尝试在 vim 状态行中显示实时字数。我通过在我的 .vimrc 中设置我的状态行并在其中插入一个函数来做到这一点。这个函数的思想是返回当前缓冲区中的字数。这个数字然后显示在状态行上。这应该可以很好地工作,因为状态行几乎在每个可能的机会都会更新,因此计数将始终保持“实时”状态。

问题是我当前定义的函数很慢,所以当 vim 用于除最小文件之外的所有文件时,它显然很慢;由于这个函数被执行得如此频繁。

总而言之,有没有人有一个聪明的技巧来生成一个在计算当前缓冲区中的单词数并返回结果时非常快的函数?

最佳答案

这是 Rodrigo Queiro 想法的可用版本。它不会更改状态栏,并且会恢复 statusmsg 变量。

function WordCount()
  let s:old_status = v:statusmsg
  exe "silent normal g\<c-g>"
  let s:word_count = str2nr(split(v:statusmsg)[11])
  let v:statusmsg = s:old_status
  return s:word_count
endfunction

这似乎足够快,可以直接包含在状态行中,例如:
:set statusline=wc:%{WordCount()}

关于vim - Vim 中的快速字数统计功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/114431/

相关文章:

vim - 如何在 Vim 中为不同语言设置不同的选项卡设置?

javascript - 在 VIM 中使用的 Javascript 手册页

python - 如何解决 vim 中的 python 代码浏览和代码完成问题?

ruby - vim 使用 AutoComplPop 插件崩溃

python - 有没有一种简单的方法可以在 vim 中反转 json 的 pretty-print ?

linux - 如何在我的 VIM 配置中进行此更改?

xml - 让 Vim 识别 XML

vim - 当焦点从窗口丢失时,如何在 Vim 7 中自动保存?

windows - 如何将外部实用程序的输出重定向到 Windows 上 gVim 的底部区域?

linux - cscope 无法使用 .vimrc 文件中的快捷方式