vim – 如何在另一个应用程序更改文件时收到通知?

前端之家收集整理的这篇文章主要介绍了vim – 如何在另一个应用程序更改文件时收到通知?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我听说 vim之前,我曾经使用过gedit.我仍然试图使vim的行为与gedit相同,这是因为我在StackOverflow上询问了许多与vim相关的问题.

我缺少的一个功能是当我在另一个应用程序上处理gedit上的任何文件修改了任何文件,弹出用来表示文件< file_location>在磁盘上更改.要重新加载文件吗?并且分别有两个名为Reload和Cancel的按钮.

我想要的是:

(请注意我使用的是vim,而不是gvim)我想在vim中使用类似的功能.我想要在磁盘上更改任何文件,状态栏会显示一条警告消息:

File changed,press F9 to reload.

我将把我的F9映射到:e.

如果设置了autoread,vim将检查文件是否在每个shell命令(:!)之后,在写入文件时以及何时发出:checktime时被修改.当你将窗口焦点切换到应用程序时,gvim还会检查.

您可以在http://vim.wikia.com/wiki/Timer_to_execute_commands_periodically使用配方定期执行:checktime:

autocmd CursorHold * call Timer()
function! Timer()
    call Feedkeys("f\e")
    checktime
endfunction
set updatetime=5000  " milliseconds

要打印警告,请设置autocmd FileChangedShell(Detect file change,offer to reload file):

autocmd FileChangedShell * echo "File changed,press F9 to reload."

对于插入模式,使用CursorHoldI(不确定此Feedkeys序列,但它似乎工作):

autocmd CursorHoldI * call TimerI()
function! TimerI()
    call Feedkeys("\<C-R>\e")
    checktime
endfunction

您可能必须将FileChangedShell autocmd从echo更改为echoe,因为我认为echo不会在Insert模式下打印.

猜你在找的Bash相关文章