我即将学习 Emacs,已经通过教程并借用了 O'Reilly 关于 Emacs 的书。但问题仍然是——如何学习好的 Emacs工作流程?我想,你不会像你使用的那样使用 Emacs,例如Vim。
这个问题对我来说似乎很重要: -我在哪里可以找到使用 Emacs 的专业人士的视频?
我即将学习 Emacs,已经通过教程并借用了 O'Reilly 关于 Emacs 的书。但问题仍然是——如何学习好的 Emacs工作流程?我想,你不会像你使用的那样使用 Emacs,例如Vim。
这个问题对我来说似乎很重要: -我在哪里可以找到使用 Emacs 的专业人士的视频?
我不敢相信没有人提到这一点,但是阅读与 Emacs 捆绑的信息页面是了解晦涩功能的好方法。每当您需要中断编码时,请点击M-x info
并选择一个随机页面进行阅读。你的 emacs 能力会以惊人的速度提高。
了解 emacs 的自我文档化如何帮助您工作也很重要。比如说,你想知道如何缩放字体大小。你可以问 emacs,而不是打断你的流程并在这里、或在 IRC 或 Google 上提问!在我们的例子中,只需点击C-h a
( M-x command-apropos
) 并输入搜索词scale
。如果有匹配的函数,它们的名称、键绑定和文档将出现。有,现在你刚刚发现text-scale-increase
和text-scale-decrease
。
还有其他值得学习的自我文档功能C-h m
将告诉您当前主要和次要模式中可用的键绑定和命令。这是发现您不知道的功能的好方法。
“通过渗透学习”的另一种方法是M-x customize-group
针对您经常使用的模式。(customize
是几乎所有模式都支持的交互式配置编辑器。)
最后要做的是学习 Emacs Lisp。使用现有工具很好,但有时您需要自己的工具。如果你试图避免学习 Lisp,你将总是被一些不太正常的东西所困扰,这是一种耻辱。
Emacs 是一个很好的自定义环境。Emacs 包括两个 Lisp 手册,可以通过M-x info
. 它是自记录的,因此您可以说C-h f
或M-x describe-function
获取任何功能的文档。您甚至可以按TAB ENT
跳转到该函数的源代码,看看它是如何实现的。当您认为“我希望我有类似的东西foo
,但只是略有不同”时,这很棒。您可以阅读如何foo
实现,在缓冲区中进行更改*scratch*
,然后查看您是否喜欢更改。没有编辑/编译/测试周期。您按下一个键,您的 emacs 会话立即具有您刚刚编写的功能。
你在学习 emacs 上付出的努力越多,emacs 就越能让你的工作更轻松。
一旦掌握了基础知识(打开/关闭文件、导航、基本编辑),就可以使用它。与许多其他工具一样,熟能生巧...
但是,我会留出一些时间来改进您当前使用编辑器的方式,但作为您正常工作流程的一部分,而不是仅仅为了它而去切线并学习东西。
我发现一些有用的资源是EmacsWiki和Planet Emacsen 博客。我同时使用这两种方法,主要是使用 Planet Emacsen 来获得“灵感”,然后浏览 EmacsWiki 并在那里搜索特定主题。我发现,除非你至少对你要找的东西有一个模糊的概念,否则可用的信息只会让你不知所措,而不是真正有用。
更不用说 StackOverflow 上有一些非常有用的资源,例如这里的问题。Emacs 是一个非常强大的工具,它往往能够做的比一个人需要的要多得多,但最终它允许你准确地挑选你需要的那些部分。
我的建议是停止使用除 Emacs 之外的任何东西,当你遇到问题时,看看你是否可以在 Emacs 中解决它,然后再退回去(如果你没有时间或者它不起作用)。至于工作流程,它与您通常的工作几乎相同。即对于正常的 ide 会话,您可以正常打开/编辑文件,然后正常提交(在 Cx vv 中)。
我同意这里的其他海报,你只需要使用它!我是这样做的:
一旦我掌握了非常基础的知识(可以在缓冲区之间切换、打开/保存文件等),我就打印了一张参考卡并放在手边。这是一个很好的。回顾一下,这样你就知道上面有什么,然后每当你发现自己重复做卡片上的事情时,开始使用快捷方式!在不知不觉中,您将记住相当多的命令。但是请记住,可能没有人使用 emacs 可以做的所有事情。
当你最终发现自己重复做一些没有快捷方式的事情时,这是学习键盘宏的好时机。一旦你得到它们,你会发现它们无处不在!从那里开始编写 elisp (如果您是程序员)是一个短暂的跳跃。
emacs 的伟大之处在于您不需要“emacs 工作流程”,emacs 围绕您的工作流程工作!
您无需学习 emacs 工作流程。完成本教程并掌握基本知识后,您将不得不采用某种程度的一夫一妻制,并且只使用 Emacs。最终你会想到你真正希望存在的功能;大多数时候其他人也会有,解决方案只是一次搜索!随着时间的推移,你会情不自禁地学习,最终你会学到足够的东西来开发自己的个人工作流程。
如果您希望加快这个过程,Emacs wiki 提供了各种技巧,但实际上最好的方法就是使用 Emacs 做事。
你可以看看 Bram Molenaar 关于高效文本编辑的演讲,http://video.google.com/videoplay?docid=2538831956647446078&ei=EqiGSau8KZ-QiQLi-Nn8Cg&q=bram+molenaar+editing
尽管他是一个 vim 人(他写的),但您可能会了解如何最好地使用适用于 emacs 的文本编辑器变得更加熟练。
老实说,我所做的只是学习我需要的键绑定。我没有充分发挥 emacs 的潜力,因为我不需要它的全部潜力。我的建议是只学习你需要的东西,不要担心你不需要的东西。每天学习一个新的键绑定,大约 300 年后你会全部了解它们;)
As previously stated, the best advice is to use nothing but Emacs for the next year. Once you develop your finger memory, things get to be much easier.
您如何为任何事情学习“良好的工作流程”?通过使用它,了解它,让它成为你的。没有“正确”使用 Emacs。
至于了解它:询问 Emacs——使用它的帮助系统。这也有帮助:http ://www.emacswiki.org/emacs/EmacsNewbieWithIcicles
从以前的 Amiga 时代开始,我就在我目前正在使用的所有平台上使用 emacs。
使用 emacs 的最佳方式是好奇心。我仍然经常使用 apropos (Ch a) 和 Mx(用于长函数名而不是键绑定)来查找功能。
“正确使用” Emacs 的一个关键概念是,学习非常简单的 elisp(lisp 的简单派生)并编写自己的小帮手(自己的注释样式、下划线、模板)并知道在哪里更改值(制表符大小、编译器、电子邮件)
第三件事:一切都在 emacs 中:我使用 dired(目录编辑器)来浏览文件。我为所有文本文件使用了很多缓冲区(每种类型的文件(c、ruby、list、sql、latex、...)都有适当的模式),这些文件在退出 emacs 时存储并在调用时恢复。我从 emacs 启动编译器并使用跳转到错误功能。
宏是日常生活(浏览代码并在途中更改)。
我喜欢图片模式,它允许通过替换向下键入,这使得重新编号常量块变得容易(好老的 c #defines))
有一座高山要爬,但如果你登顶了,你可以从脚下看到整个世界,再也不想错过这种体验。我知道,周围有很多优秀的编辑器(我自己通过 Eclipse 工作)
这就是 Emacs 的强大之处,您可以随心所欲地使用它。您只需根据自己的喜好进行配置。