emacs 重新加载磁盘上的文件


author: hjjdebug

date: 2024年 07月 04日 星期四 14:05:25 CST

descriptor: emacs 重新加载磁盘上的文件


当我们修改了磁盘上文件,我们会存盘.

但有时候屏幕上显示的文件内容不符合我们的要求了, 例如mess up,

或者不能显示到指定的行,就需要重新从磁盘加载文件了.

从磁盘重新加载文件,emacs 给出的是 revert-buffer 命令.

但这个命令有时候也不能把屏幕拯救回来.

例如: 由于需要某种需要,我们对屏幕进行了窄化, narrow to region, narrow to function等

等到做完一些编辑后,我再把屏幕进行宽化, widen

发现区域的顶部不能恢复到第1行了.

此时 rever-buffer 命令也不行.

想恢复到第一行只能先 kill-buffer, 再C-x C-f 打开文件, 再找到你关注的位置.

想解决这个问题.

一种方法是找到widen 命令后为什么不能恢复视图, 这肯定跟你narrow 后的某些操作有关系.

因为如果narrow 后不进行任何编辑操作再widen 视图是没有问题的.这种解决方法估计难度会比较大.

另一种解决方法就是把你恢复视图的这些命令写成一个脚本,

这样你只要执行一下这个命令就恢复了视图,相当于一个扩展的revert-buffer 命令.

这个难度不大, 我写了如下函数

;; 定义重新加载文件函数

(defun my-revert-buffer ()

(interactive) ;; 交互命令必需有这条指令

(setq file-name (buffer-file-name)) ;; 记录你原来打开的缓冲对应的文件名

(setq pos (point)) ;;保留文件位置

(kill-buffer) ;; 删除原缓冲, 因为它的视图有毛病了

(find-file file-name ) ;; 重新打开文件, 不用你再找文件名了

(goto-char pos) ;; 跳转到你关注的位置, 省却你记忆的烦恼.

)

小函数,大用途,每条指令都这么经典不可或却!

相关推荐
小小打工人22210 天前
敏捷开发实践指南:从理论到落地的全面解析
人工智能·信息可视化·emacs
aluluka12 天前
Emacs折腾日记(十四)——buffer操作
编辑器·excel·emacs
一张假钞13 天前
MacOS安装Emacs
编辑器·emacs
星糖曙光19 天前
开发一个音响控制板程序,需要从硬件架构设计、通信协议选择、核心功能实现三个层面进行系统化开发。以下是基于工业级开发流程的实施方案
stm32·课程设计·emacs·ai编程·设计规范
一张假钞1 个月前
spacemacs gnuplot
linux·emacs
一张假钞1 个月前
Ubuntu 18.04安装Emacs 26.2问题解决
编辑器·emacs
十子木2 个月前
Emacs 中的缓冲区(Buffer)介绍
服务器·网络·emacs
键盘上的疯兔3 个月前
做异端中的异端 -- Emacs裸奔之路5: 条件反射式移动
编辑器·emacs·二分法定位
键盘上的疯兔3 个月前
做异端中的异端 -- Emacs裸奔之路4: 你不需要IDE
编辑器·emacs
键盘上的疯兔3 个月前
做异端中的异端 -- Emacs裸奔之路3: 上古神键Hyper
编辑器·emacs·qmk