Git 从vim中的磁盘刷新缓冲区中的所有文件
从磁盘上的版本刷新文件的命令是Git 从vim中的磁盘刷新缓冲区中的所有文件,git,vim,buffer,Git,Vim,Buffer,从磁盘上的版本刷新文件的命令是:e 如何对缓冲区中的所有文件执行相同的操作 背景:我需要它,因为我使用的git具有多个分支,其中一个vim打开,其中包含一个缓冲区。当我签出分支时,我希望vim刷新。阅读bufdo的文档,它应该可以做您想要的事情。以下是我最后在我的.vimrc中放入的内容: fun! PullAndRefresh() set noconfirm !git pull bufdo e! set confirm endfun nmap <leader>gr
:e代码>
如何对缓冲区中的所有文件执行相同的操作
背景:我需要它,因为我使用的git具有多个分支,其中一个vim打开,其中包含一个缓冲区。当我签出分支时,我希望vim刷新。阅读bufdo
的文档,它应该可以做您想要的事情。以下是我最后在我的.vimrc中放入的内容:
fun! PullAndRefresh()
set noconfirm
!git pull
bufdo e!
set confirm
endfun
nmap <leader>gr call PullAndRefresh()
有趣!普拉德雷弗斯()
不确认
!吉特拉力
好极了!
设定确认
结束
nmap gr调用PullAndRefresh()
这个:check t[ime]
命令就是为了这个目的而设计的
它将提示您重新加载任何已更改的缓冲区;如果您希望跳过提示,您可以事先执行:设置自动读取
(您仍然会收到关于本地未保存更改的缓冲区的提示)
它还避免了Steven Lu在公认答案中提到的语法突出显示问题
通过以下途径找到:来自:帮助自动读取:
当检测到文件已在Vim外部更改,但在Vim内部未更改时,自动再次读取该文件。当文件已被删除时,不会执行此操作
如果像我一样,您只想总是被动地重新加载过时但未修改的缓冲区,那么这似乎应该完成这项工作
然而,最后一个细节是vim何时注意到陈旧的缓冲区。可通过检查时间
强制执行。如果您有,那么我们可以在获得焦点时运行checktime
,如下所示:
set autoread
autocmd FocusGained * checktime
还有一些有趣的细节。正如@Matthew S在这里提到的,
您可以使用:
:set noconfirm
:bufdo !e
:set confirm
好的,太好了,所以,:bufdo e!我会的。但每次都有一个提示加载(Y/N)。如何摆脱它?在使用bufdo
命令之前使用set noconfirm
(set confirm
之后重新启动)。bufdo e
奇怪地将所有缓冲区都保留为非语法-highlighted@StevenLu检查保芬尼下面的答案。为什么人们投票支持这个?这不仅不是一个答案,而且它引导您的方向意味着您的语法高亮显示在重新加载后被禁用。