[生无可恋]怎么从零为新语言提供一个major mode

为啥不先弄个minor-mode修修补补,这上来就整大活儿啊 :+1:

李杀的教程里好像没有minor-mode
原来这是大活啊,我当时就斯巴达了

比着这个,很快就能写出一个来:

How to Make an Emacs Minor Mode

我个人的想法是,先比着大神的,从高仿开始慢慢来。做Major-mode,在我看来是挺高端的 :thinking:

5 个赞

我觉得作为 emacs 老手习惯没有高亮没有补全写代码更重要

我已经要快进到在计算器上用 teco 写代码了

那你也是闲的蛋疼
image

讲真,OCaml 处理文本也是这样的(

你可能觉得 buffer 是很重量的东西,但其实它就是 C 里面的 char * 多个几个 house keeping 用的指针而已。字符串常量拼接看起来是简单了,但会因多次拷贝损失性能惨重。

当然 Emacs lisp 因为性能限制没有很丰富的高质量的数据结构可以用倒是真的

1 个赞

倒不是性能或者 mutable 的问题, 我是觉得 buffer 这类 emacs 里面比较特殊的概念, 对初学编程者来说不特别友好.

如果先学 OCaml, 转到 Elisp 里面就比较容易明白这边的 buffer 基本也是个 mutable 的 string, 或者转到 Java 那边很快能知道类似的 StringBuilder 怎么用. 但是如果入门就从 Elisp 的话, 感觉这些概念不太容易迁移到其他地方.

2 个赞

这个其实就是计算机内部如何处理数据的知识,任何实用的高级编程语言学到最后都绕不开的一个坎。晚接触还是早接触这种好,对于不同人差别还是比较大的。

看完这个帖子,我悟了。准备放弃MATLAB的major mode的编写了。

现在emacs有的MATLAB-mode并不好用,不太符合我的使用习惯。

但是看起来major mode的编写不是我一个初学者能搞定的。还是修修补补,凑活用吧