https://manateelazycat.github.io/2022/11/18/write-emacs-plugin
今天给公司内部同事讲Emacs插件开发课, 第一课, 先从基础入门开始讲吧。
教材都写了, 就顺便在论坛上发给大家看吧, 其实Elisp编程比Python都简单, 关键是入门的那几个关键步骤容易卡住。
https://manateelazycat.github.io/2022/11/18/write-emacs-plugin
今天给公司内部同事讲Emacs插件开发课, 第一课, 先从基础入门开始讲吧。
教材都写了, 就顺便在论坛上发给大家看吧, 其实Elisp编程比Python都简单, 关键是入门的那几个关键步骤容易卡住。
用久了doom emacs, 还没写过插件,最近真好想学下emacs 插件开发
好,支持,emacs 用了也很久了,但只是用别人写的各种插件,自己把他们糊在 init.el 中,对 elisp 基本处于零基础状态
如果条件是一个类型的, 用
pcase
会简洁一点:
确实有这个作用。但更重要的应该是 pcase 的解构能力吧?
此教材只讲怎么用和感官认识,不深入细讲,一是不好理解,二是细节太多,学习者不得全貌。
有没有方法高效的寻找一个“方法”或者“变量”?
当我需要完成某一个功能时,我通常会 google 查询“emacs lisp how to …”, 一般会在 stackoverflow 找到建议,某个变量、方法可能符合我的需求。
然后我会通过 describe-function 查看“方法”详情。
但这个流程依赖网络,并需要在 chrome 和 emacs 之间切换。
或者猜测可能的函数、变量名,通过 describe-function + orderless 搜索可能的结果。
话说,有没有可能通过 rg 类的模糊搜索工具,搜索方法、变量的 doc 中的内容, 反向查找到可能有用的方法,或变量?
正则查找请用 apropos-variable 和 apropos-function, 这是 apropos 这个库牛逼的地方。
试了一下,确实很好用。
看来还是要多提问,总会有意外的惊喜。
今天就遇到一个插件问题:
自己设置的全局快捷键被一个主动安装的插件的依赖插件占用,虽然还没学怎么设置局部快捷键,怎么写插件,怎么避免冲突,已经先学会删除插件了
除了单纯地describe function外,直接找一个用到了相似功能的函数M-.看它的源码往往会有惊喜呢
强烈推荐helpful这个插件,再挂上emacs C源码,掌握emacs就会变得飞快w
好问题,把我隐约想问的说得很清楚
helpful 看起来不错,用起来。大佬都直接看 emacs C 源码了呀。膜拜。
好公司!紫薯布丁
感觉漏了介绍 lexical-binding
,虽然高版本 Emacs 的很多交互使用的场合(如 ielm, scratch buffer)默认启用了,但是文件加载 elisp 文件好像默认还是 dynamic binding
那个以后讲,第一课讲这个吸收不了
猫哥,你们公司内部全 emacs 的吗
提纲挈领,非常好 ,里面提到的问题开发插件基本上都会遇到。