vim 如何刷新或重载reload 已打开的文件? 收藏 评论

Just use


to reload the file.  I believe, if you've made changes to the
file, it requires you to do


to force-discard your local changes and reload from the disk.

If I'm not sure, I'll often yank my current copy into a scratch
buffer/window, force-reload the file from disk, and then use


on each of the two buffers/windows to verify that there are no

You may also be interested in the 'autoread' setting.

More information at

   :help FileChangedShell
   :help 'autoread'
   :help :e
   :help :diffthis


I have found, that the most comfortable way to do this is
DiffOrig command, described in the VIM help (you should define it
self though). One this command does the something very similar to
all those copy/paste/force reload/diffthis stuff.

:help DiffOrig

To reload unconditionally, from wherever it is, the file you're
curretly editing:
        :e    " read-write if the file has read-write permissions
        :view    " always readonly

- To check whether any of the file(s) you're currently editing has been
changed by someone else:

If a file or its datestamp have changed, then if 'autoread' is set and
the file is not 'modified' in your instance of Vim, Vim will reload it
without prompting. Otherwise, Vim will ask you what you want to do about
the change.

        :help :edit
        :help :checktime
        :help 'autoread'

Random; but I liked this command; so wrote a little wrapper to toggle it... (broken if you change buffers I know, but my scripting is horrible at best for vim)

function! DiffOrig()
    if &diff
        wincmd p | bdel | diffoff
        vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
map <leader>do :call DiffOrig()<cr>


发表于 @ 2012年03月01日 | 浏览22384次| 编辑 |评论(loading... ) | 分享到:QQ空间新浪微博腾讯微博微信