vimscript中可视块模式的返回值是什么?

var*_*b95 4 vim

我试图通过使用字典映射模式函数的返回值来在状态行上显示 vim 的当前模式:

let g:modeMap={
    \ 'n'      : 'Normal',
    \ 'i'      : 'Insert',
    \ 'R'      : 'Replace',
              ...
    \ 'v'      : 'Visual',
    \ 'V'      : 'Visual Line',
    \ '\<C-V>' : 'Visual Block'
    \}

set laststatus=2
set statusline=%{g:modeMap[mode()]}
Run Code Online (Sandbox Code Playgroud)

它几乎适用于所有模式,但在切换到可视块模式时会抛出以下错误消息:

E716: Key not present in Dictionary: ^V 
Run Code Online (Sandbox Code Playgroud)

我也试着字符串<\C-V>找到这里CTRL-V发现这里^V这是在错误信息写出来,但他们既不是正确的。

测试版本:

  • Vim 7.4,Ubuntu 16.04
  • Vim 8.1,Debian 9

Mat*_*att 7

'\<C-V>' -- 是 VimL 中的文字字符串。

您必须使用双引号使替换工作:"\<C-V>"