你如何学习合适的Emacs?

时间:2009-02-02 06:57:48

标签: emacs editor workflow

我即将学习Emacs,已经完成了教程并借用了有关Emacs的O'Reilly书籍。但问题仍然是 - 你如何学习良好的Emacs 工作流程?我猜你没有像你使用的那样使用Emacs,例如,Vim

这个问题似乎对我来说很有意思:   - Where can I find a video of a professional using Emacs?

11 个答案:

答案 0 :(得分:37)

我无法相信没有人提到这一点,但阅读与Emacs捆绑在一起的信息页面是了解隐藏功能的好方法。无论何时需要中断编码,请点击M-x info并选择随机页面进行阅读。您的emacs能力将极快地提高。

了解emacs的自我记录如何帮助您工作也很重要。比如说,您想知道如何缩放字体大小。您可以询问emacs,而不是打断您的流量并在此处,或在IRC或Google上询问!只需点击C-h aM-x command-apropos)并输入搜索字词,在我们的案例scale中。如果存在匹配的功能,则会显示其名称,键绑定和文档。有,现在您刚刚发现了text-scale-increasetext-scale-decrease

还有其他易于学习的自我文档功能C-h m将告诉您当前主要和次要模式中可用的键绑定和命令。这是发现您不知道的功能的好方法。

“通过渗透学习”的另一种方法是M-x customize-group用于定期使用的模式。 (customize是几乎所有模式都支持的交互式配置编辑器。)

最后要做的是学习Emacs Lisp。使用现有工具很好,但有时您需要自己的工具。如果你试图避免学习Lisp,那么你将永远陷入不太正常的事情,这是一种耻辱。

Emacs是一个很好的自定义环境。 Emacs包含两个可通过M-x info查看的Lisp手册。它是自我记录的,因此您可以说C-h fM-x describe-function来获取任何功能的文档。您甚至可以按TAB ENT跳转到该功能的源代码,看看它是如何实现的。当你想到“我希望我有一些像foo那样的东西,但只是略有不同时,这是很棒的。”您可以阅读foo的实现方式,在*scratch*缓冲区中进行更改,然后查看您是否喜欢此更改。没有编辑/编译/测试周期。您按一个键,您的emacs会话立即具有您刚写的功能。

您学习emacs的工作量越多,emacs就越容易使您的工作变得轻松。

答案 1 :(得分:27)

掌握基础知识(打开/关闭文件,导航,基本编辑)后,只需使用它即可。与许多其他工具一样,练习也很完美......

然而,我会花一些时间来改进你目前使用编辑器的方法,但是作为正常工作流程的一部分,而不是仅仅考虑切线和学习东西。

我发现一些有用的资源是EmacsWikiPlanet Emacsen blog。我使用两者,主要是通过使用Planet Emacsen获取“灵感”,然后徘徊到EmacsWiki并在那里进行特定主题的拖网。我发现,除非你至少有一个模糊的想法,你所寻找的东西,可用的信息只会淹没你,而不是实际上有用。

更不用说StackOverflow上有一些非常有用的资源,例如this question here。 Emacs是一个非常强大的工具,它往往能够比单个人需要做更多的工作,但最终可以让你精确挑选那些所需的部分。

答案 2 :(得分:9)

我的建议就是停止使用除Emacs以外的任何东西,当遇到问题时,看看你是否可以在Emacs中解决它,然后退回(如果你没有时间或者它将无法工作)。至于工作流程,它与你通常工作的几乎相同。即对于正常的ide会话,您将正常打开/编辑文件,然后正常提交(在C-x v v中)。

答案 3 :(得分:7)

我同意这里的其他海报,你只需要使用它!我是这样做的:

一旦我掌握了基础知识(可以在缓冲区,打开/保存文件等之间),我打印出一张参考卡并保持方便。 This is a good one。查看它只是为了让你知道它上面有什么,然后每当你发现自己在卡片上反复做某事时,就开始使用快捷方式!在你知道它之前,你会记住相当多的命令。但请记住,可能没有人使用emacs可以做的所有事情。

当你最终发现自己做了一些没有捷径的事情时,那是学习键盘宏的好时机。一旦你得到它们,你会发现它们随处可见!从那里开始编写elisp(如果你是程序员)是一个短暂的跳跃。

emacs的优点在于您不需要“emacs工作流程”,emacs适用于您的工作流程!

答案 4 :(得分:5)

您无需学习emacs工作流程。一旦你完成了教程并掌握了必需品,你将不得不采用某种程度的一夫一妻制,除了Emacs之外别无他法。最终你会想到你真正希望存在的功能;大部分时间其他人都会拥有,而解决方案只需一次搜索!随着时间的推移,你会忍不住学习,最终你会发现你将开发自己的个人工作流程。

如果你想加快这个过程,Emacs wiki有各种各样的技巧,但最好的办法就是用Emacs来做。

答案 5 :(得分:3)

你可以看一下Bram Molenaar关于高效短信的讨论, http://video.google.com/videoplay?docid=2538831956647446078&ei=EqiGSau8KZ-QiQLi-Nn8Cg&q=bram+molenaar+editing

虽然他是一个vim家伙(他写的),但你可能会对如何最好地使用适用于emacs的文本编辑器有所了解。

答案 6 :(得分:2)

说实话,我所做的只是学习我需要的键绑定。我没有充分利用emacs,因为我不需要它的全部潜力。我的建议是只学习你需要的东西,不要担心你不需要的东西。每天学习一个新的键绑定,在大约300年内你会全部了解它们;)

答案 7 :(得分:1)

我现在正在使用所有平台上的Amiga日期以来使用emacs。

使用emacs的最佳方式是好奇心。我仍然经常使用apropos(C-h a)和M-x(用于长函数名而不是键绑定)来查找功能。

“正确使用”的关键概念Emacs是,学习非常简单的elisp(一个简单的lisp派生词)并编写自己的小助手(自己的评论风格,下划线,模板),并知道在哪里寻找更改值(标签大小,编译器,电子邮件)

第三件事:一切都在emacs中:我使用dired(目录编辑器)来浏览文件。我为所有文本文件使用了大量缓冲区(对于每种类型的文件(c,ruby,list,sql,latex,...)都有适当的模式),这些模式在退出emacs时存储并在调用时恢复。我从emacs启动编译器并使用跳转到错误功能。

宏是日常工作(通过代码进行扫描并在途中进行更改)。

我喜欢图片模式,它允许向下键入替换,这样可以轻松重新编号常量块(旧的c #defines))

要爬一座休山,但如果你到达山顶,你可以看到整个世界都在你的脚下,再也不想错过这种体验。我知道,有许多优秀的编辑(我通过Eclipse工作)

答案 8 :(得分:1)

如前所述,最好的建议是在明年只使用Emacs。一旦你开发了手指记忆,事情就变得容易了。

答案 9 :(得分:1)

你如何学习任何“良好的工作流程”?通过使用它,了解它,使它成为你的。没有“正确”使用Emacs。

至于了解它:询问Emacs - 使用其帮助系统。这也有帮助:http://www.emacswiki.org/emacs/EmacsNewbieWithIcicles

答案 10 :(得分:0)

这就是Emacs的力量,你可以按自己喜欢的方式使用它。你只需要根据自己的喜好进行配置。