首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Emacs 折腾记

我工作倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,历数现代 Lisp 方言的先进性,再者我也一直有学习一门函数式编程语言的想法...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...本来什么也不用配置的情况下 M-x ielm 就能进入一个 Emacs Lisp 的 REPL,但是它与 Common Lisp 毕竟还是有区别,所以还是另配置一个。...在 ~/.emacs 文件里添加: 这样自动补全之类的就没有问题了。 然后在如何运行当前 py 文件这件事上遇到些问题。在 Vim 我一直是用 :!...python % 来运行的,但是在 Emacs 里,包括 Evil、eshell、shell 里,如果有等待用户输入的语句 input 或 raw_input 等,因为 Emacs 只重定向了输出,无法重定向输入

1.3K20

Emacs 折腾记

我工作倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,还有垠神也撰文《Lisp 已死,Lisp 万岁!...在搜索网友们对此的经验之谈的时候,自然而然地,目光逐渐聚集到 Emacs 这个使用 Emacs Lisp 作为扩展语言的神的编辑器上。...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...本来什么也不用配置的情况下 M-x ielm 就能进入一个 Emacs Lisp 的 REPL,但是它与 Common Lisp 毕竟还是有区别,所以还是另配置一个。...python % 来运行的,但是在 Emacs 里,包括 Evil、eshell、shell 里,如果有等待用户输入的语句 input 或 raw_input 等,因为 Emacs 只重定向了输出,无法重定向输入

1.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

Emacs 之光的成长历程

本期节目请来了一位特殊嘉宾–付禹安,社区内一般称他为『Emacs 之光』。之所以这么称呼,是因为今年才刚刚大学毕业的他,就已经给 Emacs 贡献了多次代码。...更令人好奇的是,嘉宾如何在短期内熟悉 Emacs 源码并为之贡献多个 patch,相信通过嘉宾的学习、贡献经历,可以给听众打开 Emacs 源码的神秘面纱,让更多用户参与到 Emacs 的贡献,一个多小时的分享...,句号后两个空格 • 注释用的是 C 风格的 /* */ ,而不是 C++ 的 // • 函数名后面跟一个空格,再是括号 •读 Emacs 源码技巧 • lisp.h[12] 里面有 C 如何调用 ELisp...buffer: https://github.com/emacs-mirror/emacs/commit/7c83e605ab84e8b62254c55f347abc8aa9c6057b [12] lisp.h...: https://github.com/emacs-mirror/emacs/blob/master/src/lisp.h [13] devel: https://lists.gnu.org/archive

37610

Emacs Lisp

LISP 编程语族已经演变出许多种方言,现代最著名的通用编程语种是 Common Lisp 和 Scheme , 以上解释来自 WIKI Emacs LispLisp 的一个分支 Emacs Lisp...; 第一步首先启动Emacs: (在windows可以双击emacs图标,在Linux可以输入% emacs & ), ;; 然后在键盘上键入q 跳过系统欢迎的信息, ;; 先观察在Emacs屏幕的底部...;; 缓冲区也叫做工作区,在Emacs打开一个文件,实际只是在Emacs构造该文件的一个副本,放到缓冲区, ;; 在Emacs对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区的内容在复制到原文件中去...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...hello local-name) (other-window 1)) ;; format函数可以用做格式化的输出 其中%s表示该s的地方将被之后提供的一个字符串,即visitor替换 ;; \n表示换行

2.3K40

Emacs Lisp2

Emacs: (在windows可以双击emacs图标,在Linux可以输入% emacs & ),;; 然后在键盘上键入q 跳过系统欢迎的信息,;; 先观察在Emacs屏幕的底部,会给出一堆关于当前的工作情况的信息...;; 缓冲区也叫做工作区,在Emacs打开一个文件,实际只是在Emacs构造该文件的一个副本,放到缓冲区,;; 在Emacs对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区的内容在复制到原文件中去...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下,;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...erase-buffer)(hello local-name)(other-window 1));; format函数可以用做格式化的输出 其中%s表示该s的地方将被之后提供的一个字符串,即visitor替换;; \n表示换行...RET;; C-h f a-function RET;;;; 下面的命令将打开整个Emacs Manual;;;; C-h i m elisp RET;;;; Emacs Lisp 教程;; https

96440

Emacs Lisp

LISP 编程语族已经演变出许多种方言,现代最著名的通用编程语种是 Common Lisp 和 Scheme , 以上解释来自 WIKI Emacs LispLisp 的一个分支 Emacs Lisp...; 第一步首先启动Emacs: (在windows可以双击emacs图标,在Linux可以输入% emacs & ), ;; 然后在键盘上键入q 跳过系统欢迎的信息, ;; 先观察在Emacs屏幕的底部...;; 缓冲区也叫做工作区,在Emacs打开一个文件,实际只是在Emacs构造该文件的一个副本,放到缓冲区, ;; 在Emacs对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区的内容在复制到原文件中去...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...hello local-name) (other-window 1)) ;; format函数可以用做格式化的输出 其中%s表示该s的地方将被之后提供的一个字符串,即visitor替换 ;; \n表示换行

2.2K30

Emacs Tree-sitter 初体验

现在较为流行的编辑器, neovim 都已支持 ts 作为解析库。...在 Emacs ,之前都是采用正则的方式去解析语言的语法结构,这种方式虽然大多数情况是没有问题的,但主要有以下几个问题: 正则比较消耗 CPU,导致对大文件进行高亮时容易导致 Emacs 卡主,参见:...Regexp Problems (GNU Emacs Lisp Reference Manual)[2] 对于有些语法结构,正则并不能很好的工作,参见:The true power of regular...对应的 mode 来使用,比如 c-mode 对应的 c-ts-mode ,Emacs 为不同的语言重新实现了一个以 ts-mode 结尾的新 mode,在 29 版本,主要有如下 12 个: 12...Lisp Reference Manual): https://www.gnu.org/software/emacs/manual/html_node/elisp/Regexp-Problems.html

1.1K10

操作系统Emacs是如何沦落为一代编辑器的?

开始之前,先让我们知道今天的Emacs是长怎样的? ? 不不,这是它的新Logo,我的意思是它的用途。 什么是Emacs? Emacs是一种功能超强的文本处理程序,或者文本编辑器。...基础部分是使用C语言编写的,其他部分是用Emacs Lisp编写的。深层次的话,C语言构成了emacs的底层,包括Emacs Lisp的解释器。...而Emacs Lisp则是负责了Emacs Lisp的建筑物上层,也就是包括我们平时用的扩展、界面等。...从架构上来说,它很不错——你可以在很多的架构书上看到相关的介绍,《代码之美》、《架构之美》等等。 ?...GNU编译器套装(GCC)、GNU的C库(glibc)、以及GNU核心工具组(coreutils),另外也是GNU除错器(GDB)、GNU二进制实用程序(binutils)的GNU Bash shell

2K80

一名Clojurian的Emacs配置

这就不得不提起Clojure这门lisp方言,出于对lisp和函数式编程的痴迷,我选择了基于JVM的Clojure作为自己的偏好语言,而emacs天生为lisp而生。...所以胸臆之中涌动一股浩然之气,决心学起emacs lisp,把emacs的配置从头来过。 从『头』开始 init.el文件位于~/.emacs.d目录之下,如果没有,自行创建一份即可。..."http://melpa.org/packages/")的点号(dot)表示法也比较奇怪,其实这是lisp的Dotted pair表示法,用法和普通的列表类似,但因为是pair的缘故,你可以使用(...按照惯例,我在~/.emacs.d目录下建立一个lisp目录用于存放所有自定义的模块文件,随后在init.el中加入下面这句代码,意在把lisp目录加到emacs的加载路径列表里。...(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory)) 看似,接下来就可以在每个独立的模块文件编写各种功能的配置

2.7K20

我的 IDE 太重了,所以迁到了 Emacs

你还需要对 Lisp 有一点了解(Emacs 是基于它自己的 Lisp 方言 elisp 构建的),但如果你是那种甚至考虑像 Emacs 这样的东西可以彻底破解的人,这实际上也是乐趣的一部分。...我注意到,有更多“开箱即用”的 Emacs 发行版, Spacemacs 和 Doom Emacs,对于那些想要一个现代编辑器而不必手动配置一切的人来说,会感觉更舒服。...不过,我的 Emacs 设置(请随意取用其中的一些片段),仍不太符合我在 IntelliJ 得到的开箱即用的效果。...当我试图改变代码格式,并被迫下载 Eclipse 来改变它的默认规则时,我才痛苦地意识到这一点(它会强制删除换行符,让行填满所配置的整个最大宽度,把代码弄得一团糟——我真想知道,谁他妈会认为这是一个好的默认做法...使用 Emacs 的情况,请注意,在一个美好的下午编码过程,电池曲线出现了平滑的向下倾斜。

1.1K10

【DB笔试面试511】如何在Oracle写操作系统文件,写日志?

题目部分 如何在Oracle写操作系统文件,写日志? 答案部分 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。...image.png 其它常见问题如下表所示: 问题 答案 Oracle哪个包可以获取环境变量的值? 可以通过DBMS_SYSTEM.GET_ENV来获取环境变量的当前生效值。...在CLIENT_INFO列存放程序的客户端信息;MODULE列存放主程序名,包的名称;ACTION列存放程序包的过程名。该包不仅提供了设置这些列值的过程,还提供了返回这些列值的过程。...如何在存储过程暂停指定时间? DBMS_LOCK包的SLEEP过程。例如:“DBMS_LOCK.SLEEP(5);”表示暂停5秒。 DBMS_OUTPUT提示缓冲区不够,怎么增加?...如何在Oracle写操作系统文件,写日志? 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。

28.7K30

Lisp语言简介_c++是什么语言

LISP有很多种方言,各个实现的语言不完全一样。1980年代Guy L. Steele编写了Common Lisp试图进行标准化,这个标准被大多数解释器和编译器所接受。...在Unix/Linux系统,还有一种和Emacs一起的Emacs Lisp(而Emacs正是用Lisp作为扩展语言进行功能扩展的)非常流行,并建立了自己的标准。...Lisp的表达式是一个原子(atom)或表(list),原子(atom)又包含符號(symbol)與數值(number);表是由零个或多个表达式组成的序列,表达式之间用空格分隔开,放入一对括号:...正如算数表达式 1+1 有值 2 一样,Lisp 的表达式也有值,如果表达式 e 得出值 v,我们说 e 返回 v。...在 Lisp 我们习惯用原子 t 表示真,而用空表 () 表示假。

2.3K20

史上最轻量的 IDE……

你还需要对 Lisp 有一点了解(Emacs 是基于它自己的 Lisp 方言 elisp 构建的),但如果你是那种甚至考虑像 Emacs 这样的东西可以彻底破解的人,这实际上也是乐趣的一部分。...我注意到,有更多“开箱即用”的 Emacs 发行版, Spacemacs 和 Doom Emacs,对于那些想要一个现代编辑器而不必手动配置一切的人来说,会感觉更舒服。...不过,我的 Emacs 设置(请随意取用其中的一些片段),仍不太符合我在 IntelliJ 得到的开箱即用的效果。...当我试图改变代码格式,并被迫下载 Eclipse 来改变它的默认规则时,我才痛苦地意识到这一点(它会强制删除换行符,让行填满所配置的整个最大宽度,把代码弄得一团糟——我真想知道,谁他妈会认为这是一个好的默认做法...使用 Emacs 的情况,请注意,在一个美好的下午编码过程,电池曲线出现了平滑的向下倾斜。

21310

史上最轻量的 IDE……

你还需要对 Lisp 有一点了解(Emacs 是基于它自己的 Lisp 方言 elisp 构建的),但如果你是那种甚至考虑像 Emacs 这样的东西可以彻底破解的人,这实际上也是乐趣的一部分。...我注意到,有更多“开箱即用”的 Emacs 发行版, Spacemacs 和 Doom Emacs,对于那些想要一个现代编辑器而不必手动配置一切的人来说,会感觉更舒服。...不过,我的 Emacs 设置(请随意取用其中的一些片段),仍不太符合我在 IntelliJ 得到的开箱即用的效果。...当我试图改变代码格式,并被迫下载 Eclipse 来改变它的默认规则时,我才痛苦地意识到这一点(它会强制删除换行符,让行填满所配置的整个最大宽度,把代码弄得一团糟——我真想知道,谁他妈会认为这是一个好的默认做法...使用 Emacs 的情况,请注意,在一个美好的下午编码过程,电池曲线出现了平滑的向下倾斜。

25310
领券