Как динамически изменить заголовок меню на панели инструментов VIM? - PullRequest
0 голосов
/ 31 августа 2011

enter image description here Я делаю плагин vim для личного использования, и он запускается с панели инструментов. когда я нажимаю «Плагин» на панели инструментов GVIM, он создает подменю под названием «общие». Когда я нажимаю «Общие», он начинает проверять мои настройки 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

--------------------- Решено -----------------------
Код выше не может быть использован. Это выполнено неправильно.
Пожалуйста, обратитесь к ответу Люка Эрмита.

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Вам нужно :unmenu старую запись, чтобы удалить ее.

Кстати, у меня уже есть полнофункциональный механизм переключения / циклического изменения значений, который также обновляет меню.Это сделано с помощью функции lh-vim-lib , см. тестовый файл , где приведены примеры использования, и документацию для дополнительных пояснений.

1 голос
/ 31 августа 2011

:amenu работает как map команды: в конце необходимо указать <CR>.

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

Кроме того, <SID> и s: не совпадают.

Вы также, вероятно, должны включить в свой скрипт isNum с помощью s:

Дополнительное замечание: почему у вас нет единой записи меню, предлагающей переключать нумерацию строк и вызывать :set nu!?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...