Emacs 的文件与缓冲区

打算用 emacs Lisp 语言来作一些文本处理方面的应用,遇到了一个问题:编程

读一个文件到一个字符串中。数据结构

没有这样的函数,只能这么作:

读一个文件到一个缓冲区(buffer),而后切换到这个缓冲区,调用缓冲区函数 (buffer-string) , 将缓冲区的全部内容读入一个字符串。编程语言

这大大出乎个人预料,也有违编程语言的原则,但后来发现,其实,这个缓冲区在别的语言中也是存在的。只不过编辑器把它显明出来,成为看得见的东西。编辑器

我又发现传统调试语言的一个弊病,就是运行一个程序,须要调用第三方程序加载它,而后查看输出结果,输出结果,一般是一个不可编辑的只读区域。或者重定向到别的文件。emacs 编程让这个过程更加简化,绑定一个键运行后,结果出现一个可编辑的缓冲区,输出结果能够语法高亮。函数

在编辑器模式中,一个文本处理函数,能够不使用循环的样式,直接在 interactive 模式下,进行调试。调试

还有许多的数据结构是为了文本处理而创立,字符表 (char-table) 语法表 (syntax-table), 字符属性(text properties).code

因为 emacs 的绝大多数代码是用本身的扩展语言 emacs lisp 实现的, 那么扩展 emacs 就能够调用更多基础功能的函数,甚至改变基础的行为,使之成为可扩展性的典范。字符串

一门语言的核心是用多少比例的本身的语言进行扩展的,就从侧面说明这门语言的生命力有多少。string

相关文章
相关标签/搜索