美文网首页Emacs
Emacs Paredit插件

Emacs Paredit插件

作者: Hanze2111 | 来源:发表于2015-02-24 12:38 被阅读2297次

没有Paredit插件,在Emacs上写lisp代码会痛苦无比。最开始是在王垠的博客上看到了这个插件,当时只是为了配置一个较为舒适的Scheme编程环境。当时王垠大大只教了两个功能,不过仅仅这两个功能就使得我写Scheme代码变得很舒服。而后又在Youtube上看到一个关于Paredit的视频,然后决定深入了解下这个插件,于是便有了这篇文章。其实不是因为视频中展示的功能很炫,而是因为里面有一句特装逼的话。

"If you think paredit is not for you then you need to become the kind of person that paredit is for."

顺便Emacs是邪教啊,入教了就出不来了。

好了不废话了,进入正题。首先在Paredit模式下,你打出的括号引号什么的都是成对出现的,这个是最基本的了。然后比如你打算打一个字符串,那么应该是"a-string"这样的吧。这个没什么问题,但是手滑了忘记了双引号了,哦凑a-string。怎么办,在开头结尾加双引号吧。每次做这个工作我都觉得心好累,感受到了来自全世界的恶意。但Paredit表示这并不是问题,把光标停留在字符串第一个字符前,按下M-",好了这个世界安静了。a-string自动变成了"a-string"。不仅仅只有双引号的,还有lisp中最常见的括号,在一个S表达式开头按下M-(会将这个S表达式放到括号中变成了表。

分割和连接(split & join)

一个表分为两个表,一个字符串分割为两个字符串。这些在Paredit中是十分简单的。只需要在要分割的地方按下M-S

;;; 例子,将光标放在world前,按下M-S
(hello world)
(hello) (world)
;;; 字符串的
"Hello,world"
"Hello," "world"

连接的我就不写了,快捷键是M-J。还有看到上面代码的注释了吧,我要写注释的时候就按M-;然后注释符自动就打出来了,Paredit就是这么酷。

吞吐S表达式(Barfage & Slurpage)

我觉得这简直就是Paredit的精髓,简直太好用了。吞掉右边的S表达式,C-),吐出来C-}。对应的,吞掉左边的S表达式,C-(,吐出来C-{

(foo bar (baz) quux zot)
;;; 把光标放到(baz)里面,先吞右边(C-))后吞左边(C-()
(foo bar (baz quux) zot)
(foo (bar baz quux) zot)
;;; 吐:把光标放在(bar baz quux)中,先吐左边(C-{)后吐右边(C-})
(foo bar (baz quux) zot)
(foo bar (baz) quux zot)

跳出外围块

这个不太好表达,就写个例子吧。就是下面这个样子的。

(foo (let ((x 5))
       (sqrt n)) bar)
;;; 光标停留在(sqrt n)前面,按下M-r
(foo (sqrt n) bar)

;;; 再来一个
(if (pre)
    (then)
    (otherwise))
;;; 在(then)前面按M-r
(then)

这些我觉得是最常用的,还有很多就不写了,留个官方的手册Paredit Referennce Card。总之Paredit写lisp真的太好用。

打算长期在简书上写博客了,欢迎关注。Markdown还是挺好用的,虽然照Emacs的org-mode差好多。

相关文章

  • Emacs Paredit插件

    没有Paredit插件,在Emacs上写lisp代码会痛苦无比。最开始是在王垠的博客上看到了这个插件,当时只是为了...

  • Emacs: awesome-pair.el 更加智能的括号自动

    括号补全利器 paredit.el 第一次用 paredit.el 进行自动括号补全的时候, 当时真的震惊一个插件...

  • atom emacs 快捷键

    atom atomic-emacs 插件的 emacs 快捷键收集 atom emacs keybinding:

  • 我为什么不想把自己的Emacs插件放到MELPA上?

    玩了Emacs十几年, 写了很多 Emacs插件 , 有很多人都建议把我的Emacs插件放到 MELPA 上. 我...

  • 关于扩展Emacs插件能力的思考

    平时使用过很多Emacs插件,看过很多插件的源码,也自己写过一些小函数和插件,来提高自己日常使用Emacs的效率。...

  • Learn Emacs In Day 8

    Learn Emacs In Day 8 大纲 Outline Evil插件 把Emacs变成Vim Evil(I...

  • 开发自己的emacs插件

    emacs个人需求 本地记录的笔记文章,想在emacs快速通过文件名打开 通过第三方插件 通过插件counsel-...

  • emacs上使用px转换vw插件

    因为emacs缺少一个插件已经影响了前端同学对emacs的兴趣了,这有点尴尬,其实emacs很强大的。vs cod...

  • Emacs 学习第4天

    这篇文章主要内容是给 Emacs 添加一个插件管理器,并添加一些基础的插件,使 Emacs 变得更加好用。 第一步...

  • Emacs环境变量

    Emacs有一套自身的环境变量,可以通过getenv获取。很多插件会访问Emacs的环境变量,然后进行后续操作。 ...

网友评论

本文标题:Emacs Paredit插件

本文链接:https://www.haomeiwen.com/subject/iciuxttx.html