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("fe") checktime endfunction set updatetime=5000 " milliseconds 要打印警告,请设置autocmd 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模式下打印. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |