:h autoread
说:
如果检测到文件已在Vim外部更改且Vim内部未更改,则会再次自动读取.
放入set autoread
我之后vimrc
,我用Vim打开一个文件,切换到另一个编辑器,更改文件,然后等待查看Vim中的更改.什么都没发生.我必须使用:e
新内容重新加载文件.
我错过了什么? 我在Mac 10.5.8上使用Vim 7.2
fph*_*ipe 30
我使用以下代码片段,每当我切换缓冲区或再次聚焦vim时触发autoread:
au FocusGained,BufEnter * :silent! !
Run Code Online (Sandbox Code Playgroud)
此外,将它与下面的代码段结合使用是有意义的,这样在离开缓冲区或vim时总是保存文件,避免冲突情况:
au FocusLost,WinLeave * :silent! w
Run Code Online (Sandbox Code Playgroud)
编辑:如果你想通过禁用在save上运行的任何钩子来加速写入(例如linters),你可以在w
命令前加上noautocmd
:
au FocusLost,WinLeave * :silent! noautocmd w
Run Code Online (Sandbox Code Playgroud)
iri*_*ava 17
Autoread只是不起作用.使用以下内容.
http://vim.wikia.com/wiki/Have_Vim_check_automatically_if_the_file_has_changed_externally
我通过直接调用setup函数得到了最好的结果,就像这样.
let autoreadargs={'autoread':1}
execute WatchForChanges("*",autoreadargs)
Run Code Online (Sandbox Code Playgroud)
原因是我想运行ipython/screen/vim设置.
Ban*_*ach 13
聚会有点晚了,但现在 vim 有计时器,你可以这样做:
if ! exists("g:CheckUpdateStarted")
let g:CheckUpdateStarted=1
call timer_start(1,'CheckUpdate')
endif
function! CheckUpdate(timer)
silent! checktime
call timer_start(1000,'CheckUpdate')
endfunction
Run Code Online (Sandbox Code Playgroud)
Gre*_*ton 10
在gvim之外,autoread对我不起作用.
为了解决这个问题,我使用了这个相当丑陋的黑客.
set autoread
augroup checktime
au!
if !has("gui_running")
"silent! necessary otherwise throws errors when using command
"line window.
autocmd BufEnter * silent! checktime
autocmd CursorHold * silent! checktime
autocmd CursorHoldI * silent! checktime
"these two _may_ slow things down. Remove if they do.
autocmd CursorMoved * silent! checktime
autocmd CursorMovedI * silent! checktime
endif
augroup END
Run Code Online (Sandbox Code Playgroud)
这似乎是脚本irishjava链接到的,但是这可以让你为缓冲区切换它.我只是想让它适用于一切.
添加到您的vimrc
:
au CursorHold,CursorHoldI * checktime
Run Code Online (Sandbox Code Playgroud)
默认情况下,CursorHold在光标保持静止4秒钟后触发,并且可以通过updatetime进行配置。
要autoread
在更改缓冲区时触发,请添加到您的vimrc
:
au FocusGained,BufEnter * checktime
Run Code Online (Sandbox Code Playgroud)
要FocusGained
在普通vim中工作(请参见上文),请在终端仿真器(Xterm,tmux等)中安装插件:
vim-tmux-focus-events
在tmux版本> 1.9上,您需要添加.tmux.conf
:
set -g focus-events on
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24863 次 |
最近记录: |