Как узнать, какие события будут срабатывать при выполнении определенной операции в VIM? - PullRequest
0 голосов
/ 29 мая 2019

Я изучаю события VIM, но обнаружил, что некоторые события могут работать не так хорошо, как ##TabLeave не будет срабатывать при использовании gt/gT для переключения между вкладками.Что я могу сделать, чтобы узнать, какое событие было вызвано VIM, когда я выполняю определенную операцию, например, набираю команду tabmove для ее выполнения?Я пишу плагин, чтобы моя вкладка VIM могла возвращаться на ранее посещенную вкладку, но проблема в том, что tabmove команда ничего не вызывает, кто-нибудь может мне помочь в этом?

function! catchSomeEventTriggerByTabmCmd()
let histCmd = histget('cmd', -1)
if match(histCmd, '^tabm') == 0
DoUpdateJumpQueue()
endif
endfunction

1 Ответ

1 голос
/ 29 мая 2019

... Я обнаружил, что некоторые события могут работать не так хорошо, как ## TabLeave не будет срабатывать при использовании gt / gT для переключения между вкладками.

gt/ gT вызывает TabLeave.пример:

:let g:foo = 1
:autocmd TabLeave * let g:foo = g:foo + 1 | echom "TabLeave Event " . g:foo
:tabnew

Теперь сделайте несколько gt / gT.Вы должны получить сообщения

Что я могу сделать, чтобы узнать, какое событие было вызвано VIM, когда я выполняю определенную операцию, например, набираю команду tabmove для ее выполнения?Я пишу плагин, чтобы моя вкладка VIM могла возвращаться на ранее посещенную вкладку, но проблема в том, что команда tabmove ничего не вызывает, кто-нибудь может мне помочь в этом?

Яне уверен, что вы можете использовать событие / autocmd, например TabLeave, чтобы захватить что-либо из :tabmove.Вероятно, будет также сложно использовать номера страниц вкладок, так как :tabmove изменяет их.

К счастью, Vim всегда должен фокусировать окно, поэтому вместо попытки создания истории страниц вкладок, может быть, у истории есть окна с идентификаторами.Возможно, вы сможете использовать win_getid() и win_gotoid() для выполнения своего поведения в истории.

Для получения дополнительной помощи см .:

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