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

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

相关推荐

  1. emacs 重新磁盘文件

    2024-07-09 17:04:03       24 阅读
  2. 【spring】外部配置文件

    2024-07-09 17:04:03       24 阅读
  3. Spring Boot 配置文件优先级

    2024-07-09 17:04:03       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 17:04:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 17:04:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 17:04:03       58 阅读
  4. Python语言-面向对象

    2024-07-09 17:04:03       69 阅读

热门阅读

  1. Linux学习笔记(一)

    2024-07-09 17:04:03       28 阅读
  2. 用WPF实现的窗体是怎么运行的?

    2024-07-09 17:04:03       26 阅读
  3. Mac OS M3 安装 Docker 并解决芯片不支持问题

    2024-07-09 17:04:03       25 阅读
  4. Fedora 41 移除 Python 2支持

    2024-07-09 17:04:03       26 阅读
  5. 单例模式之懒汉式

    2024-07-09 17:04:03       30 阅读
  6. 代码技巧专题 -- 使用策略模式编写HandleService

    2024-07-09 17:04:03       29 阅读
  7. 汇编学习基础知识【记录】

    2024-07-09 17:04:03       26 阅读