Questions tagged «revert-buffer»


5
恢复所有打开的缓冲区(并忽略错误)
当使用git进行版本控制下的项目时,我经常想在shell中做一些会影响许多打开文件的事情,然后还原我打开的每个缓冲区,以确保不会意外破坏新版本无论我打开什么。我知道magit在这里可能会有所帮助,但是我已经习惯了外壳中的工作流程,并且现在想保留它。因此,相反,我想还原所有打开的缓冲区,并可能关闭任何已停止存在的缓冲区(例如,由于git checkout分支的a不再具有该文件)。 我从Google搜索中抓取了以下elisp片段: (defun revert-all-buffers () "Refreshes all open buffers from their respective files" (interactive) (let* ((list (buffer-list)) (buffer (car list))) (while buffer (when (and (buffer-file-name buffer) (not (buffer-modified-p buffer))) (set-buffer buffer) (revert-buffer t t t)) (setq list (cdr list)) (setq buffer (car list)))) (message "Refreshed open files")) 但是,如果它击中这打破了我打开的文件之一,即复原的情况出现错误B1,B2,B3,...,Bn试图还原一个错误B2阻止B3- Bn被恢复。 …


1
在“真正编辑缓冲区”上,emacs是否自动运行ediff-current-file?
语境 当emacs检测到文件在编辑缓冲区之外被更改时。 观测到的 emacs将询问: 磁盘中的文件名已更改;真的编辑缓冲区吗?(y,n,r或Ch) (顺便说一句,有时即使没有实际更改,也会发生这种情况,例如时钟漂移的服务器上的远程文件,但是在所有情况下,这个问题都很有趣。) 希望 emacs会问: 磁盘中的文件名已更改;真的编辑缓冲区吗?(y,n,r,d或Ch) 按下d将显示版本之间的差异,例如ediff-current-file,允许以交互方式遍历差异。 附加信息 这与Debian软件包管理检测到本地定制的配置文件被其拥有的软件包的较新版本更新时的操作类似。有关示例,请参阅可用的新版本的配置文件/ etc / default / grub,但是当前安装的版本已在本地进行了修改-Unix&Linux Stack Exchange 询问前先搜寻 我通常会找到解决方案的方法(例如emacsclient-从外部脚本打开文件,然后运行一些简单的表达式(无论emacs是否已运行-Emacs Stack Exchange)),但是在搜索之后,我找不到任何现有的解决方案。 我会考虑自己进行调整,但对emacs-lisp和emacs内部构件还不够熟练。 解决方案草图 C-g然后按“ Mx ediff-current-file”即可完成该工作,但要花一些击键。 目标是ediff-current-file在上述提示下一次按一下键即可运行。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.