emacs 渐进学习记录, 阅读陈斌配置文件 init-essential.el

本文介绍了Emacs的多个功能。如my-multi-purpose-grep可减少快捷键记忆压力和键盘输入;narrow-to-region-indirect-buffer-maybe涉及Indirect Buffers概念;my-narrow-or-widen-dwim能智能narrow或widen;my-save-current-buffer可持久化临时buffer内容,还提及了cliphist、shellcop等其他功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 my-multi-purpose-grep 

使用 prefix 来控制同一个函数展现不同的行为,可以减少快捷键的分配和记忆压力

(or (thing-at-point 'symbol) (read-string "Component attribute name?"))

如果光标下有 symbol 则使用该 symbol, 否则就要求输入, 可以减少键盘输入

使用了 counsel 提供的函数ounsel-etags-grep, 这个函数是对 ripgrep 和 grep 的调用的封装

(counsel-etags-grep &optional DEFAULT-KEYWORD HINT ROOT SHOW-KEYWORD-P)

default keyword 对应 grep keyword

root 对应需要搜索的目录

my-multi-purpose-grep 的多个分支中都是在 根目录下进行搜索,耗时比较长

narrow-to-region-indirect-buffer-maybe

涉及新概念Indirect Buffers

简单来说 Indirect Buffer 显示的是别的 buffer(可能是多个 buffer) 的部分或全部内容;对 Indirect Buffer 的修改保存会在对应的Buffer生效; 删除 Indirect Buffer 不会对其它buffer产生影响

这个函数在接下来的 my-narrow-or-widen-dwim 进了了调用

my-narrow-or-widen-dwim

这个命令提供了自动根据多种情况进行智能 narrow 或 widen 的功能,很强大,并且 narrow 是编程和日常的常用命令,价值很高

对应 org-mode 的实现也比较有趣, 利用 cond 的条件判断和 Ignore-errors 简洁地实现了成功则停止,失败继续的机制

(cond
     ((ignore-errors (org-edit-src-code)) t)
     ((ignore-errors (org-narrow-to-block) t))
     ((ignore-errors (org-narrow-to-element) t))
     (t (org-narrow-to-subtree)))

my-save-current-buffer

将一些暂时性的 buffer 内容做持久化, 比如 dired , grep   ; 可以保存 buffer 内容多次加载使用

适用于那些需要很长时间进行生成, 并且要在长时间内多次使用的 buffer

Misc

cliphist 系统级的剪切板管理支持

shellcop 为 emacs 中的shell 提供了一些加强,比如 reset 或 erase 整个 buffer, 搜索, 文件路径跳转

tramp 提供远程编程功能, 个人感觉不如 ssh 连上再运行 emacs
uniquify 为特殊的 buffer 提供特别的名字

hippie 提供补全, 不清楚和 company 的区别和优劣

eacl 行和多行补全,用得上的时候还是很快的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值