最近在给 cider 贡献一个新 feature[1],但是由于之前只是东拼西凑配置,没怎么用 ELisp 认真写过一个完整功能,还是有些挫败感的。...挫败感的主要来源是对 ELisp 里相关概念的不熟悉,比如 xref 为了能打开 symbol 定义的文件,需要提供一个 xref-location 对象,默认提供了两种实现,xref-buffer-location...从这里例子看出,ELisp 的文档虽然做的很全,但是缺少很重要的一个环节,即 demo。...[3] 插件,可以在 helpful 页面中展示函数的用法: 最后,再推荐一个教程,供有其他 Lisp 经验的程序员快速使用 ELisp。.../elisp-demos
在window下的目录(我的): D:\Users\Frank\AppData\Roaming\.emacs.d D:\Users\Frank\.emacs.d emacs的配置语言elisp 配置emacs...Emacs的配置文档是用elisp语言写的。elisp是lisp的一种方言。至于lisp语言,有人说它是黑客的语言。...不过,可能想多了,现在才刚开始...刚开始) 延伸阅读 Emacs's Customization Tutorial elisp快速入门:Learn X in Y minutes The Emacs Initialization
Emacs 是由 Lisp 的一种方言编写而成,名为“Emacs Lisp”、也叫“Elisp”。因此,它的绝大多数代码库以及用户配置也是用 Elisp 写成。...Emacs 的核心就是读取和运行 Elisp 的能力,这被称为评估「evaluation」。在评估 Elisp 时,Emacs 环境可以轻松使用与之对应的返回值。...如果大家愿意稍微学学 Elisp,那 Emacs 可以说是蕴藏着无穷无尽的可能。...与此同时,Elisp 的统一特性降低了准入门槛,彻底消除了以往全方位知识库需要在缺少共通基础的前提下拼凑应用程序的困境。...在此期间,我逐渐掌握了 Elisp,并运用这些新知识得心应手地操作 Emacs。
为了简化数据类型在 C 与 ELisp 之间的转化,Emacs 提供了一系列函数,比如: Elisp–>C 更多类型转化可参考官方文档: •Conversion Between Lisp and Module...Values 这里着重介绍下如何将 C 里面的函数导出到 ELisp 中: emacs_value c_add(emacs_env *env, ptrdiff_t nargs, emacs_value...ret += env->extract_integer(env, args[i]); } return env->make_integer(env, ret); } void define_elisp_function...即可将 c-add 导出到 ELisp 中,使用示例: (c-add 1 2) ;; 3 (apply 'c-add (number-sequence 1 100)) ;; 5050 (c-add)..., name)) } 相比 C 代码,这里的代码简洁不少,通过 #[defun] 将 say_hello 函数导出到 ELisp 中,并且函数名自动加上了前缀 greeting ,并提供了相应 feature
由于其工作领域正好与编辑器相关,领蜂走上了一条专家型的 Emacs 学习路线,接触 Emacs 三天即开始上手 ELisp,他是怎么做的到?...开源社区内前辈们对嘉宾的影响 • 00:20:23 谈 UE/Vim/NeoVim • 00:30:05 浏览器内核发展之路与浏览器之战 • 00:38:30 在 Emacs 社区的活动 • 00:44:44 ELisp...解释器为什么选用动态作用域 • 00:52:28 学习 ELisp 的经历 • 01:00:12 Emacs 两种学习方式:专家模式与务实模式 • 01:08:57 极简风格的配置 • 01:16:36..._wv=1027&k=9tAXJ8gG [17] elisp-demos: https://emacstalk.github.io/post/002/ [18] 530146104: https://jq.qq.com
时间线 • 00:00:56 嘉宾自我介绍 • 00:02:20 Emacs 初相识 • 00:10:08 ELisp 学习经历 • 00:15:45 Emacs 的可发现性 Discoverability...最后有个句号,句号后两个空格 • 注释用的是 C 风格的 /* */ ,而不是 C++ 的 // • 函数名后面跟一个空格,再是括号 •读 Emacs 源码技巧 • lisp.h[12] 里面有 C 如何调用 ELisp...emacstalk.github.io/post/002/ [8] 34.3 Regular Expressions: https://www.gnu.org/software/emacs/manual/html_node/elisp
时间线 • 00:00:42 嘉宾自我介绍 • 00:04:18 为什么选择 Emacs • 00:11:11 ELisp 学习经历 • 00:21:34 Emacs 对嘉宾思维的影响 • 00:33:...56 使用 ELisp 开发微信小程序的经历 • 00:43:20 函数式编程的优势 • 00:58:06 推荐 Show Notes • 嘉宾介绍 • 姓名:张泽鹏 • 邮件:redraiment@gmail.com
== ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; 冒号在Lisp中表示注释 ;; 在Elisp...,调用函数的最简单的方式是 ;; (function arg1 arg2) ;; 这相当于通常的function(arg1,arg2),下面的表达式,对两个数字进行加法运算 (+ 2 2) ;; Elisp...你已经在Emacs中安装了这个hello函数,这个函数就成为了Emacs的一部分,知道你退出Emacs或者改变hello的定义 ;; 从下面开始,我们将不再提醒读者使用C-x C-e来定义函数和执行ELisp...指令 ;; 在Elisp中直接输入函数的名称就是调用该函数。...)))) ;; 执行greeting函数,并提供"you"字符串作为参数 (greeting "you") ;; read-from-minibuffer函数提供和用户交互的功能,这个函数可以帮助Elisp
变量和函数 ==;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 冒号在Lisp中表示注释;; 在Elisp...中做运算,调用函数的最简单的方式是;; (function arg1 arg2) ;; 这相当于通常的function(arg1,arg2),下面的表达式,对两个数字进行加法运算(+ 2 2);; Elisp...命令,你已经在Emacs中安装了这个hello函数,这个函数就成为了Emacs的一部分,知道你退出Emacs或者改变hello的定义;; 从下面开始,我们将不再提醒读者使用C-x C-e来定义函数和执行ELisp...指令;; 在Elisp中直接输入函数的名称就是调用该函数。...局部变量))));; 执行greeting函数,并提供"you"字符串作为参数(greeting "you");; read-from-minibuffer函数提供和用户交互的功能,这个函数可以帮助Elisp
本期人物 • 主播:西瓜[2] • 嘉宾:stardiviner[3] 时间轴 • 00:02:09 嘉宾学习 Emacs 经历 • 00:10:35 org mode 介绍 • 00:15:15 Elisp...github.com/stardiviner/org-mode •入坑经历 • vim -> org mode • 喜欢复古风 •org mode • 零配置复现问题,再去社区求助 • 自己想要的功能没人乐意实现 •Elisp
它可以把解释执行的 elisp 代码通过 gccjit 技术直接编译成二进制代码。...比如 11:00pm • 新配置 browse-url-default-handlers 根据 url 来定制不同的打开方式 • mode-line 会展示 Elisp 作用域方式 mode-line...• hierarchy.el[11],用于操作具有层级关系数据结构的库 • shorthands.el[12] 一种 ELisp 命名空间的实现,社区内相关讨论[13] 平台相关变更 macOS • s...emacs-mirror/emacs/blob/emacs-28/lisp/emacs-lisp/shorthands.el [13] 相关讨论: https://emacs-china.org/t/elisp-shorthands-emacs28
:DogLooksGood[2] Show Notes •嘉宾介绍 •姓名:石天舒 •网络 ID: doglooksgood •B站: 无知的菜狗[3] •五年 Emacs 使用时长,一年后开始学习 ELisp...-1 [15] native compilation: https://www.masteringemacs.org/article/speed-up-emacs-libjansson-native-elisp-compilation
Emacs 最佳实践的 • 00:15:36 嘉宾列举的一些 Emacs 技巧 • 00:21:30 Emacs 的开放性,与其他编辑器的区别,“乱” VS “自由” • 00:26:31 嘉宾学习 ELisp...岁 • 吃了半年苦头后,无意间发现了 Steve Purcell[6] 的配置,才开始真正掌握其要领 •Emacs 技巧分享 • 在项目中查找文件 find-file-in-project[7] • ELisp...API 多,不同插件之间可以相互调用 •Elisp 学习经历 • 潜移默化,没有特意去学 •对待开源的态度 • 佛系,软件一开始往往都是不完美的,逐渐去完善就好 • 对新手学习 Emacs 的建议 •
替换的内容以 \, 开始表示这是一个 ELisp 表达式,其中 \# 表示当前替换的个数,默认从 0 开始,所以这里用了 1+ 改变下需求,如果不是数字序号,而是字母表序号,可以怎么做? a.
时间线 • 00:00:39 嘉宾自我介绍 • 00:01:12 Emacs 初印象 • 00:06:32 Emacs 为什么能吸取各行各业的人进来 • 00:12:04 ELisp 学习经历 • 00...www.emacswiki.org/emacs/XftGnuEmacs [7] Child Frames: https://www.gnu.org/software/emacs/manual/html_node/elisp
完成这个教程,大体不会对elisp犯怵了。接下来,只需要使用c-h v和c-h f查看elisp中定义的变量函数就能很快上手自行配置。...emacs对elisp文档的支持非常全面,只需将鼠标移到package-enable-at-startup变量上,按下c-h v (control + h, v) 组合键,就能在其它窗口(window)...这种时候,我们就要求助于elisp的文档了。在emacs中按下c-h i获取主话题(topic)的菜单,然后点击Elisp进入它的操作指南。
此外在编辑 elisp 配置时,有时候需要打开一个变量所代表的文件,我之前一直采用在 minibuffer 中执行命令的方式来打开,比如: (find-file custom-file) 有些低效,能不能把
for Strings (GNU Emacs Lisp Reference Manual): https://www.gnu.org/software/emacs/manual/html_node/elisp
violentmonkey.github.io/api/metadata-block/ [2] Regexp-Backslash: https://www.gnu.org/software/emacs/manual/html_node/elisp
领取专属 10元无门槛券
手把手带您无忧上云