如何快速开始使用和学习Emacs

使用Emacs有各种各样的优点,但对于那些熟悉Win32应用程序的人来说,它有一个类似于墙的学习曲线。 与大多数其他编辑器一起,可以开始使用它们,随后了解其他function和增强function。

如何才能继续使用Emacs,目的是达到这样的地步,您实际上更喜欢使用Emacs而不是其他编辑器或应用程序?

编辑 – 尝试和澄清问题:我已经完成了教程,阅读了一些文档等等,然后不久,当我想快速编辑一些文本时,使用另一个编辑器就更容易了,我已经知道了。 我需要做什么,不仅仅是为了更简单的编辑器,而是我更喜欢使用Emacs,以及如何尽快到达这里? 如果有Emacs的培训轮子呢?

学习如何使用Emacs最重要的是…(请滚动)学习如何使用Emacs。

好的,好的,好的。 这是一个愚蠢的回答,这是一个同义反复,但是这是真的。 如果你启动了Emacs,并且自己想“我怎么能在我的源代码树中find'foobar'这个单词的每个实例? 你可以做的最糟糕的事情就是点击Alt + Tab并访问Google。

认真。

学习帮助系统及其工作方式是您可以做的最好的事情。 只要碰到一个find的东西,真是太好了,突然就可以获得所有你需要的信息,就在你的指尖。

你可以做的下一个最好的事情是安装一个叫Icicles的精美小包,它有一些严重的常规完成function。 安装好之后,只要知道小缓冲器在什么时候要求某种input,现在就可以使用正则expression式。

这将如何适用于查找源代码树中的每个文件? 那么,你打Mx,然后键入“查找”。 之后,你可以打(例如) Shift + Tab和冰柱会踢,find每个命令前缀与“查找”。 或者,你可以做Mx。 找。 它会给你任何命令find它。

build立一个备忘单。 只要保存一个保存的缓冲区,其中包含您经常使用的所有键盘快捷键。 删除那些你知道的,然后拿起新的。 在大多数情况下,当您执行Mx命令时,消息缓冲区会告诉您该命令的键盘快捷方式(如果有的话)。

学习。 键盘。 macros。

学习。 Emacs的。 Lisp 。

史蒂文·胡维格(Steven Huwig)提出的使用杀手级应用程序的想法是个不错的select 当你想使用它时,Emacs更容易使用。 对我来说,这是计划模式。 (我刚刚转到组织模式 ,而且更好。)

我认为find一个“杀手级应用程序”或两个在Emacs中效果最好的应用程序是最容易的。 对我来说,这是Oracle的SQL编辑和交互模式。 一旦你已经使用Emacs这个杀手级应用程序,那么在Emacs中打开其他文档而不是另一个编辑器会更有吸引力。

潜在的杀手级应用程序:

  • SQL编辑和交互模式
  • nxml模式
  • AUCTeX
  • CPerl模式(最好的Perl模式)
  • PCL-CVS
  • 粘液
  • js2-mode (Javascript)
  • 花20分钟运行教程

    ctrl-h t

这将使你到达你可以提高生产力的程度(你会读到的“meta”key可能是Escape或者alt)。

学习有效地使用Emacs本质上是一个缓慢的过程,但它是值得的。

立即设置一个.emacs文件。 你会想要自定义它很多。 这听起来很愚蠢,但是对该文件进行某种源代码控制也会有所帮助。

为了更容易地了解Emacs的内部,添加到您的.emacs:

 (defalias'ap'apropos)

然后当你想看看是否有一个命令做“某事”,请键入“[Alt-x] ap [enter] something [enter]”。 Emacs有它自己的东西名称,所以有时候很难find东西(“猛拉”?认真吗?像其他人一样称之为“裁减”)。

“[Ctrl-h f]function名称[enter]”查找该function的帮助。

“[Ctrl-h m]”显示当前模式的详细信息,如特定于该模式的键绑定。

学习使用Ctrl-s和Ctrl-r进行增量search。 所有文本编辑器都需要使用此function。

将键盘绑定添加到您的.emacs中,如:

 (define-key global-map(kbd“Mz”)'redo)
 (define-key global-map(kbd“Cz”)'undo)

获取redo.el包,使Emacs的重做次数减less。

iswitchb模式是无价的。 它可以让你一次打开几十个缓冲区,并在它们之间切换。 设置iswitchb并添加到您的.emacs中:

 (iswitchb模式)
 (define-key global-map(kbd“M-RET”)'iswitchb-buffer)

要评估一个emacs-lispexpression式,在expression式中input一个缓冲区,把光标放在它后面,然后input“[Ctrl-x Ctrl-e]”。 这使您可以轻松地尝试不同的自定义设置。

请记住,在input这​​样的序列时,您不必松开Ctrl键。

使用“发生”函数查看string在缓冲区中的位置。 这里有一些方便的function和键盘绑定:


 (defun word-at-point()
   (点对点)字)
   )

 (defun word-at-point-or-selection()
   (如果标记活跃
     (regexp-quote(buffer-substring(mark)(point)))
     (concat“\\”)
     )
   )

 (defun find-word-at-point()
   (互动)
   (发生(单词或select))
   )

 (define-key global-map(kbd“Co”)'find-word-at-point)

 (define-key isearch-mode-map(kbd“Co”))
   (lambda()
     (互动)
     (让((case-fold-search isearch-case-fold-search))
       (发生(如果isearch-regexp isearch-string
                (regexp-quote isearch-string))))))

就像@Claudiu说的那样,就用它吧。 只是笨拙的,让你的需求驱动你的学习曲线。

最终,你会达到一个你“足够危险”的地步,而不是真正掌握环境。 没关系。 因为在这一点上,你可能会很有成效。 你将拥有基本的技能和工具。

最后,你会遇到你每天都在做的事情,你只是生病得足以尝试找出一个“更好的办法”。 通常情况下,你的基本技能已经足够了,足够的(可能不知道)投入到一些替代path的时间是不值得的,尤其是对于一些罕见的东西。

但是,你可能有空闲时间,或者这个任务可能足够大以certificate自己看起来更深。

在这些方面,你将成为比熟练工用户更多的Emacs专家。

虽然我个人不再使用Emacs(而是依赖于IDE),但我会说Emacs相当复杂,只需要知道一小部分就可以使其变得有用和有趣。 我也会说,我从来没有“Emacs尖叫”,而我一直在我的IDE尖叫。 是的,Emacs做的比我的IDE做的还要less,但是我正在认真地做到这一点,可能值得我花时间回去,停止尖叫。

我只是觉得,Emacs比我的IDE更“确定性”,它喜欢偶尔去拉拉地区,或者需要重新启动,或者其他任何东西。

我从来没有亲自坠毁Emacs(有人会说,我没有足够的努力使用它…)

我的想法如何加快速度:

  1. find另一个Emacs用户,每天看几分钟
  2. 让Emacs用户看你(并提供反馈)
  3. find更多的Emacs用户并重复步骤1和2
  4. 订阅行星emacsen饲料 ,看看还有哪些Emacs人正在学习
  5. 按照当天twitter的emacs提示
  6. 尝试回答人们在SO上的Emacs问题

我已经使用了15年以上的Emacs,并且每天都通过做上面的事情来学习新的东西。

我的build议是:

  • 学习基础知识(如何input,保存文档,打开语法突出显示,可能是复制和粘贴)。 你可以看看如何做这些在线(谷歌“emacs教程”也许)
  • 开始使用它。

每当你希望你知道如何做某事,然后看看如何做到这一点。 你可能必须在同样的事情上看3-4次,然后你才会知道。

继续这样做。 一开始会很烦人,但是你会习惯的,然后你甚至可能会喜欢使用它!

(免责声明:我个人只使用另一个编辑器)。

打开icomplete模式,你会经常看到function,看起来很有用的时候,

(icomplete-mode t) 

在你的.emacs文件中。

Ch f将让你查找一个函数的文档string,Ch v将会为variables做同样的事情。 随着icomplete,这是伟大的探索。

  1. 在学习关键命令等基础知识时,制作自己的备忘单。 当然,find并掠夺现有的备忘单,但一定要做出自己的和快捷方式/键绑定到您有意义的组。 这将帮助您了解基础知识并保留内存。

  2. 旨在将Emacs定制到您想要的编辑器中,这是使用Emacs的最大优势,它将帮助您了解所有function以及如何扩展。

  3. 很高兴,相对来说,学习Emacs要容易得多,因为这里的社区和EmacsWiki等其他地方。 🙂

  4. 从这一点开始工作… a)键绑定和自定义。 b)macros和macros编辑器。 c)Elisp和您自己的自定义库。

还有一点值得注意的是,设置Emacs像一个更现代的应用程序一样工作,可能会很痛苦,你需要做一些事情,比如运行emacs服务器,以及使用emacs客户端。

谢天谢地(re:3)在网上有很多的帮助,但是如果你直接访问一个经验丰富的Emacs用户,那么考虑一下自己是幸运的。

使用emacs进行基本的文本编辑并不比使用记事本更复杂。 只要使用它就像记事本,但是当你浏览菜单时,请注意键盘短路。 慢慢地,你会开始拿起东西。 当你想做点什么,但又不知道如何做时,就像其他编辑一样,可以从菜单中下拉菜单。

我猜想,我build议的唯一的“技巧”是,打开一个文件进行编辑后,请尝试按Ctrl-H m拉起在该缓冲区的模式下工作的键盘绑定列表。