emacs - 有这么多括号,你如何有效地输入 lisp?

标签 emacs lisp scheme touch-typing

<分区>

我尽量将手指放在主行。

输入所有括号让我远离那里。

我使用 Emacs;括号本身没有问题,我对它们很满意。而且我不喜欢自动为我键入它们的模式。

我考虑过将方括号重新映射到圆括号,反之亦然。这是一个好主意吗?其他人做什么?

最佳答案

我个人会推荐 Emacs 的致命组合, SLIME & paredit.el Paredit 允许您在 sexp 级别伪语义编辑 LISP 代码,这使得括号几乎完全消失。您可以将 sexp 当作简单的单词来移动,甚至只需敲击几下键盘就可以改变它们。还有一个次要模式叫做 Redshank它与 Paredit 结合使用,提供更多功能。

考虑简单的这些例子(|是光标的位置):

(foo bar (baz| quux) zot) + C-( => (foo (bar baz| quux) zot)
(foo (bar |baz) quux zot) + C-) => (foo (bar |baz quux) zot)

(foo (bar baz |quux) zot) + C-{ => (foo bar (baz |quux) zot)
(foo (bar |baz quux) zot) + C-} => (foo (bar |baz) quux zot)

我曾经做过一些严肃的 Common Lisp 编程,事实证明 paredit 对我来说是无价的。如果没有我的工具箱,我什至无法想到编写重要的 LISP 代码。毕竟这是应该的方式;您永远不必计算或匹配您的括号...一旦您掌握了 Paredit,括号就会从您眼前消失。

将 [] 重新映射到 () 会有所帮助,但在您开始使用 Paredit 后您将不再关心太多。

请随意使用 LISP specific portions from my dot-emacs .

关于emacs - 有这么多括号,你如何有效地输入 lisp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/386854/

相关文章:

emacs - 组织模式任务依赖性不起作用

仿函数位置的 Lisp 非法参数

c# - 任何序列计算所需的最小序列集 "primitives"是多少?

regex - elisp regexp 在字符串中搜索,而不是在缓冲区中

emacs - 如何使用 kill-ring 的内容作为通用参数的前缀参数?

parsing - Prolog 中的 DCG — 字符串

javascript - 什么是构建面向 Web 和本地语言的游戏框架的好平台?

scheme - 在 Scheme 中使用 let

lisp - 在 scheme 中实现 has-list

linux - emacs 窗口一侧奇怪的垂直线,同时最大化