当前位置:  开发笔记 > 编程语言 > 正文

Emacs Lisp功能指南?

如何解决《EmacsLisp功能指南?》经验,为你挑选了5个好方法。

我已经使用Emacs超过三年了,但是在Lisp中编写甚至小函数还需要几天的时间.我查看了GNU Emacs Lisp参考手册,但它的庞大和结构与JavaDoc完全相反,不是从功能到描述,反之亦然.

什么让我的生活更轻松的是某种类似JavaDoc的小文档,其中包含最常用的Emacs内部函数以及它们的快速描述.

    (point) - returns current position in buffer
    (save-excursion (p)) - saves current position in buffer before 
                           executing (p) and restores it afterward.

有谁知道我在哪里可以找到类似的东西?



1> polyglot..:

你有没有尝试过emacs中的内置手册?打开任何lisp缓冲区(或lisp模式下的任何缓冲区),将您的点移动到任何函数或变量,然后点击Ch f(用于函数)或Ch v(用于变量).Emacs将为您提供功能/变量的相当简洁的描述.

例如,(save-excursion)的手动内容是

save-excursion is a special form in `C source code'.
(save-excursion &rest BODY)

Save point, mark, and current buffer; execute BODY; restore those things.
Executes BODY just like `progn'.
The values of point, mark and the current buffer are restored
even in case of abnormal exit (throw or error).
The state of activation of the mark is also restored.

This construct does not save `deactivate-mark', and therefore
functions that change the buffer will still cause deactivation
of the mark at the end of the command.  To prevent that, bind
`deactivate-mark' with `let'.

好处还在于内置手册可以让您"链接"到函数的源代码和其他可能相关的函数,这样可以很方便地浏览.

当然你不能用这种方式学习lisp,但是为了查找函数文档,这是一个很好的入门者.如果您发现内置手册不可理解(有时确实会发生),那么您可以将该功能谷歌;)



2> luapyad..:

该站点包含一些可能有用的emacs lisp摘要信息:http://xahlee.org/emacs/elisp.html.

特别是,请查看该页面上的这些链接:基本文本编辑功能,Emacs Lisp Idioms和批处理文本处理


Xah Lee是一位才华横溢的程序员,但他确实有一些关于什么是"适当"的非常奇怪的想法.只是一点警告......
是的,我不会采取他认真对待的任何事情.不过,他关于他睡过的妓女的文章非常好.
这是我在这里看到的最有用的链接.虽然那些页面上的背景只是在扼杀我.
我发现Xah的页面对我的前6个月的elisp编程有用,然后我意识到他的疯狂压倒了起始信息.在新闻组中,他经常骂人们为他更新维基,重写Emacs,改变术语以适应他自己的"深入"研究等.

3> Greg Ball..:

对于emacs lisp,GNU 简介肯定比参考手册更容易接近.


根本没有回答这个问题 - 为什么没有类似指数的手册,而不是纯粹的热门话题?

4> Joe Casadont..:

我想补充几件事:

M-x apropos - 搜索函数和变量以查找您指定的任何字符串(例如目录).请注意,这C-h a与仅发现交互功能略有不同

找到一段类似的代码并复制它 - 你可以通过查看已经完成的工作来学习很多关于如何做事的知识.如果你想看一个特定的函数,一个好的方法是访问dired中的主lisp源目录(例如d:/ product/emacs/lisp或/ usr/share/lib/emacs/lisp)并做% g这将查找所有文件,查找您键入的任何字符串.打开该文件,看看其他人用它做了什么.

C-h f并且C-h v- 正如其他人提到的那样,你可以打开源,定位函数或变量,然后获取文档.

查看Emacs wiki,它包含一些Emacs lisp模块,供您仔细阅读.



5> jrockway..:

我认为你采取了错误的做法.在学习编程语言和一组库(统称为"Emacs Lisp")时,您需要在微观和宏观尺度上进行处理.在开始编写软件之前,您需要知道可用的工具.这就是Emacs Lisp手册旨在教育你的内容.你真的需要坐下来阅读整个事情.这样你就知道了Emacs提供的功能.

完成后,您需要"微观级别"信息.有许多来源提供了这一点.如果你对你需要做什么("使用缓冲区")有一个大概的了解,那么Lisp参考是一个很好的地方,可以找出你需要知道的东西.如果您知道某个功能可以执行您想要的功能,但又不记得名称,那么M-x apropos(C-u C-h a)将帮助您搜索文档.如果你知道你想要使用什么功能,但是不记得它是如何工作的,那么M-x describe-function(C-h f)会为你排序.

所以无论如何,关键是学习Emacs Lisp,然后让Emacs帮助你了解细节.功能列表不会教你太多.

(哦,还有一两件事-你应该熟悉Common Lisp的大多数的Emacs库使用.cl,这是在的Emacs Lisp实现有用的CL功能. loop,destructuring-bind, defun*,等等都在那里,他们是非常有帮助的.)


虽然我同意这种方法,但我没有时间.我想要的是能够编写小函数来帮助我完成日常工作,而不是成为Common Lisp编程的专家.
推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有