如何动态更改VIM工具栏中的菜单标题?

时间:2011-08-31 06:54:12

标签: vim menu

enter image description here我正在做个人使用的vim插件,它从工具栏触发。 当我在GVIM工具栏中单击插件时,它会创建一个名为“common”的子菜单。 当我点击common时,它会开始检查我的vim设置并创建子菜单,例如显示/隐藏行号。但是下面的代码有一些问题,并且无法正常工作。它出什么问题了?

amenu &Plugin.&Common :call <SID>createSubMenu()<CR>
fun! s:createSubMenu()    
  let isNum = &number
  if isNum == '1'     
    amenu &Plugin.&Common.Hide\ Line\ &Number  :set nonu  
  else     
    amenu &Plugin.&Common.Show\ Line\ &Number  :set nu  
  endif    
endfunction

---------------------已解决-----------------------
上面的代码无法使用。它完成错了。
请参考Luc Hermitte的回答。

2 个答案:

答案 0 :(得分:1)

:amenumap命令类似:您必须在最后添加<CR>

:amenu &Plugin.&Common.Hide\ Line\ &Number :set nonu<CR>

此外,<SID>s:不一样。

您还应该使用isNum

s:范围限定在您的脚本中

另外一条评论:为什么没有一个菜单条目建议切换行号并拨打:set nu!

答案 1 :(得分:1)

您需要:unmenu旧条目将其删除。

顺便说一句,我已经拥有一个功能齐全的切换/循环引擎来获取值,而不是更新菜单。这是使用lh-vim-lib中的函数完成的,请参阅test file以获取使用示例,并documentation获取更多解释。