从磁盘上的版本刷新文件的命令是:e!
如何对缓冲区中的所有文件执行相同操作?
背景:我需要它,因为我正在使用带有多个分支的 git,其中一个打开的 vim 包含一个缓冲区。当我结帐一个分支时,我想刷新 vim。
该:checkt[ime]
命令就是为此目的而设计的。
它将提示您重新加载任何已更改的缓冲区;如果您想跳过提示,您可以:set autoread
提前做(您仍然会在带有本地未保存更改的缓冲区上收到提示)。
它还避免了 Steven Lu 在接受的答案中提到的语法突出显示问题;:bufdo
通过设计关闭语法突出显示。
通过以下方式找到:http: //vim.1045645.n5.nabble.com/Bug-report-bufdo-e-break-syntax-highlighting-on-displayed-buffers-tp1209995p1209998.html
阅读文档bufdo
,它应该做你想做的事。
这是我最终放入 .vimrc 的内容:
fun! PullAndRefresh()
set noconfirm
!git pull
bufdo e!
set confirm
endfun
nmap <leader>gr call PullAndRefresh()
正如@Matthew S 在此处提到的https://vi.stackexchange.com/a/462,您可以使用:
:set noconfirm
:bufdo !e
:set confirm