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

4
我尝试通过使用字典来映射mode函数的返回值,将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()]}

几乎所有模式下都能正常运行,但在切换到可视化块模式时,会出现以下错误消息:
E716: Key not present in Dictionary: ^V 

我也尝试了从这里找到的字符串<\C-V>、从这里找到的CTRL-V和在错误消息中写出的^V,但它们都不正确。

测试版本:

  • Vim 7.4,Ubuntu 16.04
  • Vim 8.1,Debian 9
1个回答

7

'\<C-V>' -- 是VimL中的一个字面字符串。

你必须使用双引号才能使替换工作生效:"\<C-V>"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接