在vim中不延迟地使用autocmd的checktime

在vim中不延迟地使用autocmd的checktime,vim,Vim,来自vimdoc: 如何在autocmd上毫不延迟地使用它 编辑 我有时使用vim和IDE编辑同一个文件,我希望其中一个文件中的更改自动加载到另一个文件中 以下是一个可能的解决方案: autocmd CursorHold * checktime function! Timer() call feedkeys("f\e") " K_IGNORE keycode does not work after version 7.2.025) " ther

来自vimdoc:

如何在autocmd上毫不延迟地使用它

编辑 我有时使用vim和IDE编辑同一个文件,我希望其中一个文件中的更改自动加载到另一个文件中

以下是一个可能的解决方案:

autocmd CursorHold * checktime
function! Timer()
  call feedkeys("f\e")
  " K_IGNORE keycode does not work after version 7.2.025)
  " there are numerous other keysequences that you can use
endfunction

但是由于checktime将延迟,因此效果可能不令人满意。

正如引用的文档所解释的,您不能这样做,并且有充分的理由(重新加载可能会触发其他AutoCMD,更改可能会混淆以下命令)

要解决此问题,必须保留当前的
:autocmd
,并以某种方式重新触发代码。一个想法是一个
:autocmd BufRead
,如果缓冲区实际重新加载,它将触发。如果您需要始终重新触发,则可以使用
:autocmd CursorHold
(可能暂时减少
“更新时间”
),或者
调用feedkeys(“:call Stage2()\”)
可能值得一试。

我最后这样做:

autocmd CursorHold * call Timer()
function! Timer()
  checktime
  call feedkeys("f\e")
endfunction

它运行得很好。

请提供更多背景信息;你的最终目标是什么?当一个问题只涉及一个小的技术步骤时,很难给出一个好的答案。如果你不告诉我们你为什么想要这个,很容易屈服于“效果可能不令人满意”;你遇到的实际问题是什么?!我也在并行使用GVIM和IDE,它只是工作,没有任何明确的
:checktime
。那么
设置自动读取如何?@IngoKarkat我没有时间真正尝试它。但现在证明它工作得很好。我把它贴出来作为答复。我不使用gvim,有一个额外的窗口会使我的屏幕更加混乱。
autocmd CursorHold * call Timer()
function! Timer()
  checktime
  call feedkeys("f\e")
endfunction