在我听说vim之前,我曾经使用过gedit.我仍然试图使vim的行为与gedit相同,这是因为我在StackOverflow上询问了许多与vim相关的问题.
而我正在上的gedit任何文件被其他应用程序,弹出使用来它说的一个特点,我缺少的是当任何文件被修改The file <file_location> changed on disk. Do you want to reload the file?
并有两个名为按钮Reload和Cancel分别.
(请注意我使用的是vim,而不是gvim)我想在vim中使用类似的功能.我想要在磁盘上更改任何文件,状态栏会显示一条警告消息:
File changed, press F9 to reload.
Run Code Online (Sandbox Code Playgroud)
我会把我的地图映射F9到:e
.
如果autoread
已设置,vim将检查文件是否在每个shell命令(:!
)之后,写入文件以及何时发出时都已修改:checktime
.当你将窗口焦点切换到应用程序时,gvim还会检查.
您可以:checktime
使用http://vim.wikia.com/wiki/Timer_to_execute_commands_periodically上的配方定期执行:
autocmd CursorHold * call Timer()
function! Timer()
call feedkeys("f\e")
checktime
endfunction
set updatetime=5000 " milliseconds
Run Code Online (Sandbox Code Playgroud)
只是打印警告,设置自动命令FileChangedShell
(检测文件的变化,提供了重新加载文件):
autocmd FileChangedShell * echo "File changed, press F9 to reload."
Run Code Online (Sandbox Code Playgroud)
对于插入模式,使用CursorHoldI
(不确定此feedkeys序列,但它似乎工作):
autocmd CursorHoldI * call TimerI()
function! TimerI()
call feedkeys("\<C-R>\e")
checktime
endfunction
Run Code Online (Sandbox Code Playgroud)
您可能必须将FileChangedShell
autocmd 更改echo
为echoe
,因为我不认为echo
在插入模式下打印.
归档时间: |
|
查看次数: |
1566 次 |
最近记录: |