8

我在开发中使用带有 TagList 的 Vim。TagList 看起来很不错,但其中一个问题是刷新需要很长时间,所以如果我的意思是从函数 A 到函数 B 在同一个文件中,TagList 大约需要 5 秒才能得到更新。有没有办法让这个间隔更短,比如半秒?

4

4 回答 4

3

我和你有同样的问题,并受到 ThePosey 回答的启发。

您可以在 taglist.vim 中的第 1678 行找到“autocmd”命令,它看起来

autocmd BufEnter * call s:Tlist_Refresh()

等待 BufEnter 事件刷新标签窗口。

我刚刚修改为

autocmd BufEnter,CursorMovedI * call s:Tlist_Refresh()

当您的光标在插入模式下移动时,它将切换 Tlist_Refresh。我删除了 CursorMoved 事件,因为它阻碍了太多其他命令。

我认为这应该满足大多数情况的要求。副作用是一些需要移动光标的命令变得无效。

编辑:

一种更简单的方法是将这一行放在 .vimrc 文件中:

autocmd CursorMovedI * silent! TlistHighlightTag

顺便说一句,没有命令 TlistRefresh,请改用 TlistHighlightTag。

于 2012-02-29T08:17:56.847 回答
3

您可以尝试将更新时间设置为 1000 毫秒。我用一个大文件做到了这一点,一切都运行良好,每秒刷新一次;

set ut=1000

看看有没有帮助

于 2015-08-18T17:31:10.013 回答
1

您可以将键绑定到函数:TlistRefresh

map <silent> <F1> :TlistRefresh<CR>
于 2011-03-17T13:24:01.700 回答
1

有点老问题,但对于 taglist 4.6(至少)更新周期由更新时间控制(autocmd CursorHold .. line 1735)

对于交互性,Tom Yu 的回答可能是最好的解决方案。

于 2013-12-04T10:53:56.523 回答