当前位置:  开发笔记 > 前端 > 正文

在vim中从磁盘刷新缓冲区中的所有文件

如何解决《在vim中从磁盘刷新缓冲区中的所有文件》经验,为你挑选了4个好方法。

从磁盘上的版本刷新文件的命令是 :e!

如何对缓冲区中的所有文件执行相同操作?

背景:我需要这个,因为我使用带有多个分支的git,其中一个vim open包含一个缓冲区.当我结帐分支时,我想要vim刷新.



1> Paul Fenney..:

:checkt[ime]命令是为此目的而设计的.

它会提示您重新加载任何已更改的缓冲区; 如果你想跳过提示,你可以:set autoread事先做(你仍然会得到一个有本地未保存更改的缓冲区的提示).

它还避免了Steven Lu在接受的答案中提到的语法突出问题; :bufdo通过设计关闭语法高亮.

发现来自:http://vim.1045645.n5.nabble.com/Bug-report-bufdo-e-breaking-syntax-highlighting-on-displayed-buffers-tp1209995p1209998.html



2> pmf..:

阅读文档bufdo,它应该做你想要的.


好的,所以,:bufdo e!会这样做的.但每次都有一个提示加载(Y/N).我怎么能摆脱它?
`bufdo e`奇怪地让所有缓冲区都没有语法突出显示
在使用`bufdo`命令之前使用`set noconfirm`(之后`set confirm`可以恢复).
为什么人们投票呢?它不仅不是答案,而且它引导您的方向意味着重新加载后语法突出显示被禁用.
@StevenLu检查PaulFenney的答案如下.
运行`:syntax on`重新启用语法高亮

3> Ivan..:

这是我最终放入.vimrc的内容:

fun! PullAndRefresh()
  set noconfirm
  !git pull
  bufdo e!
  set confirm
endfun

nmap gr call PullAndRefresh()



4> phs..:

来自:help autoread:

如果检测到文件已在Vim外部更改且Vim内部未更改,则会再次自动读取.文件被删除后,这没有完成.

如果像我一样,你只想被动地重新加载陈旧但未修改的缓冲区,那么这似乎应该完成工作.

然而,最后的细节是 vim注意到陈旧的缓冲区时.这可以强迫checktime.如果您设置了焦点事件,那么checktime只要我们获得焦点就可以运行:

set autoread
autocmd FocusGained * checktime

这个答案也有一些有趣的细节.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有