如何检查状态栏上的功能是否处于活动状态?

How to check if function is active on statusbar?

我在 _vimrc 中添加了这个函数以 在输入时计算字符

   function! Count2Cursor()
      let mycount2cursor = strlen(substitute(join(add(getline(1,line('.')-1),strpart(getline('.'),0,col('.')-1)),'.'),'.','.','g'))+1
      return mycount2cursor
    endfunction

这是在状态栏上激活它的代码:

:set statusline+=%1*\ Chars2Cursor:\%{Count2Cursor()}

这是在状态栏上禁用它的代码:

:set statusline-=%1*\ Chars2Cursor:\%{Count2Cursor()}

我想做的是将两行(activate/disable)合并为一行:Toggle Chars2Cursor.
如何检查状态栏上的代码是否为 activated/disabled?

您可以通过&statusline访问'statusline'选项的当前值。然后模式匹配会告诉你它是否已经包含你的函数。

:command! ToggleChars2Cursor
\   if &statusline =~# 'Chars2Cursor' |
\       set statusline-=%1*\ Chars2Cursor:\%{Count2Cursor()} |
\   else |
\       set statusline+=%1*\ Chars2Cursor:\%{Count2Cursor()} |
\   endif