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) ;; 跳转到你关注的位置, 省却你记忆的烦恼.

)

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

相关推荐
智购科技自动售货机工厂11 天前
数字人民币硬钱包支付失败,排查发现是NFC读卡器功率不足~YH
python·面试·架构·eclipse·emacs
Masimaro12 天前
《elisp 每日一练》—— define-derived-mode 管理 syntax-table
emacs
Masimaro20 天前
《elisp 每日一练》—— Major Mode 管理 abbrev-table
emacs
AI情绪识别开源22 天前
检信AI学业生涯智选系统技术方案概述
emacs
Masimaro25 天前
《elisp 每日一练》—— Minor Mode 回顾与综合练习
emacs
aluluka1 个月前
《elisp 每日一练》——状态栏显示管理与modeline 动态更新
emacs·lisp·elisp
aluluka1 个月前
《elisp 每日一练》——minor mode 快捷键管理
emacs·lisp·elisp
Masimaro1 个月前
《elisp 每日一练》——状态栏显示管理与modeline 动态更新
emacs
Masimaro1 个月前
《elisp 每日一练》——minor mode 开关变量的管理
emacs
Masimaro1 个月前
《elisp 每日一练》—— Minor Mode 变量生成机制与状态控制
emacs