emacs中使用elisp在代码块两端插入指定信息
Grey
全部学习汇总: https://github.com/GreyZhang/editors_skills
emacs中使用elisp在代码块两端插入指定信息
前面用过的插入只是处理当前光标所在位置,这一次看得这个插入可以实现对一个区块两端 做信息的插入。可以用来插入诸如括号、python注释等信息。
先看一下李杀的示范代码:
(defun wrap-markup-region ()
"Insert a markup <b></b> around a region."
(interactive)
(let ((p1 (region-beginning))
(p2 (region-end)))
(goto-char p2)
(insert "</b>")
(goto-char p1)
(insert "<b>")))
- 这段代码的功能是在一个区块两端插入一对网页标识符,后面插入</b>,前面插入<b>。
- 函数无传入参数、是一个交互式命令,使用了之前熟悉的insert,引入了3个新函数。
- region-beginning的功能:
- region-end的功能:
- goto-char的功能:
- 内容解读:
首先判断标记的文本区块的开始点,标记为p1,判断区块的结束点标记为p2。然后跳转 到结束点,插入</b>,跳转到开始点,插入<b>。
- 需要注意的一个点:这个如果要生效,首先得选中一个区块。
- 针对我自己的应用,我觉得比较有尝试价值的地方是给一个新创建的头文件增加一个
include-sandwitch的保护是很方便的。但是现在的尝试可能得临时搁浅,暂时还不清楚 如何去识别文件名称,获取当前buffer对应的文件名。如果这部分搞定,再加一个字符串 的简单处理应该很容易实现这样的功能。
这的确也是一个很有用的功能,处理的内容很多是接近常用的脚本的。但是,我觉得处理 的思路比直接用脚本处理文本或者字符串好一些。在emacs lisp当中,这种处理很多是类 似现实操作思考的描述,更加符合我们的思考。如果熟悉了,想来做一些文本类的功能处 理是十分方便的。