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

时间:2008-11-06 18:42:24

标签: emacs

使用Emacs有各种各样的优点,但对于那些对通常的Win32应用程序感到满意的人来说,它带有类似墙的学习曲线。对于大多数其他编辑器,可以开始使用它们,然后随时了解其他功能和增强功能。

如何立即继续使用Emacs,目的是达到您真正喜欢使用Emacs而非其他编辑器或应用程序的那一点?

编辑 - 尝试澄清问题:我已经完成了教程,阅读了一些文档等等,然后很快我想快速编辑一些文本就更容易使用另一个编辑器,我已经知道。我需要做什么,这样我不仅可以选择其他更简单的编辑器,而且我实际上更喜欢使用Emacs,以及如何尽快到达这里?如果是Emacs的训练轮怎么办?

10 个答案:

答案 0 :(得分:42)

学习如何使用Emacs的最重要的事情是...(鼓励请)学习如何使用Emacs。

好的,好的,好的。这是一个愚蠢的答案,这是一个重言式,但这是真的。如果你启动Emacs,并想一想自己“我怎样才能在源代码树中找到'foobar'这个词的每个实例?”您可以做的最糟糕的事情是点击 Alt + Tab 并访问Google。

严重。

学习帮助系统及其工作原理是您可以做的最好的事情。只需点击C-h一个发现就可以了,突然得到你需要的所有信息,就在你的指尖。

你可以做的下一个最好的事情是安装一个名为Icicles的精美小包,它具有一些非常常规的完成功能。安装完成后,只要知道迷你缓冲器要求某种输入,你现在可以使用正则表达式。

这如何适用于查找源树中的每个文件?好吧,你打了M-x,然后输入“find”。之后,您可以点击(例如) Shift + Tab 并且Icicles将启动,找到每个带有“find”前缀的命令。或者,你可以做M-x。 find。,它会给你任何带有find的命令。

制作备忘单。只需保存一个保存的缓冲区,其中包含您经常使用的所有键盘快捷键。彻底删除你知道的那些,并拿起新的。在大多数情况下,当您执行M-x命令时,消息缓冲区将告诉您该命令的键盘快捷键是什么(如果有的话)。

了解。键盘。宏。

了解。 Emacs的。 Lisp

Steven Huwig关于使用一些杀手级应用程序的想法非常好。当您想要使用它时,Emacs更易于使用。对我来说,这是Planner Mode。 (我刚搬到Org-mode,它甚至更好。)

答案 1 :(得分:15)

  • 花20分钟运行教程

    ctrl-h t

这将使您达到可以提高效率的程度(您将阅读的“元”键可能是Escape或alt)。

答案 2 :(得分:14)

我认为最简单的方法是找到一个在“Emacs”中效果最好的“杀手级应用”。对我来说,这是Oracle的SQL编辑和交互模式。一旦你已经将Emacs用于这个杀手级应用程序,那么在Emacs而不是其他编辑器中打开其他文档会更具吸引力。

潜在的杀手级应用:

答案 3 :(得分:9)

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

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

为了更容易了解Emacs的内脏,请添加到.emacs:

(defalias 'ap 'apropos)

然后,当你想看看是否有命令做“某事”时,输入“[Alt-x] ap [输入]某事[输入]”。 Emacs有自己的名字,所以有时很难找到东西(“猛拉”?说真的吗?像其他人一样把它称为“切”!)

“[Ctrl-h f] function-name [enter]”查找该功能的帮助。

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

学习使用Ctrl-s和Ctrl-r进行增量搜索。 所有文字编辑器都需要附带此功能。

将键绑定添加到.emacs中,例如:

(define-key global-map (kbd "M-z") 'redo)
(define-key global-map (kbd "C-z") 'undo)

获取redo.el包以使Emacs的重做更少。

iswitchb-mode非常宝贵。它允许您同时打开几十个缓冲区,并在眨眼间切换它们。设置iswitchb并添加到.emacs:

(iswitchb-mode)
(define-key global-map (kbd "M-RET") 'iswitchb-buffer)

要评估emacs-lisp表达式,请将表达式键入缓冲区,将光标放在其后面,然后键入“[Ctrl-x Ctrl-e]”。这使您可以轻松地尝试不同的自定义。

请记住,在键入类似的序列时,您不必放弃ctrl。

使用“occurrence”函数查看字符串在缓冲区中的位置。以下是一些方便的功能和键绑定:


(defun word-at-point ()
  (thing-at-point 'word)
  )

(defun word-at-point-or-selection ()
  (if mark-active
    (regexp-quote (buffer-substring (mark) (point)))
    (concat "\\")
    )
  )

(defun find-word-at-point ()
  (interactive)
  (occur (word-at-point-or-selection))
  )

(define-key global-map (kbd "C-o") 'find-word-at-point)

(define-key isearch-mode-map (kbd "C-o")
  (lambda ()
    (interactive)
    (let ((case-fold-search isearch-case-fold-search))
      (occur (if isearch-regexp isearch-string
               (regexp-quote isearch-string))))))

答案 4 :(得分:5)

我对如何加快速度的想法:

  1. 找到另一位Emacs用户并每天观看几分钟
  2. 让Emacs用户观看您(并提供反馈)
  3. 查找更多Emacs用户并重复步骤1& 2
  4. 订阅planet emacsen feed以查看其他Emacs人员正在学习的内容
  5. 关注emacs tip of the day twitter
  6. 尝试回答SO {/ li>上的人Emacs questions

    我已经使用Emacs超过15年了,我每天通过做上述事情来学习新东西。

答案 5 :(得分:4)

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

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

随着时间的推移,你会遇到你每天都做的事情,你只是在努力尝试花时间寻找“更好的方法”。通常情况下,你的基本技能组合足以让你投入到某个替代路径中的(可能未知的)时间不值得花费,特别是对于罕见的事情。

但是,你可能有空闲时间,或者任务可能足以证明更深层次的合理性。

在这些方面,你将成为一名专家Emacs人而不是熟练工用户。

虽然我个人不再使用Emacs(而是依赖于IDE),但我会说虽然Emacs非常复杂,但您只需知道一小部分就可以使它变得有用和有趣。我还会说我从来没有“在Emacs上尖叫过”,而我一直在我的IDE上尖叫。是的,Emacs的表现要比我的IDE做得少,但我认真地说,我可能值得花时间回到它,并停止尖叫。

我只是觉得Emacs比我的IDE更“确定性”,它喜欢偶尔进入lala land,或者需要重启,或者其他什么。

我从来没有亲自撞毁过Emacs(有些人会说这意味着我没有用得太辛苦了......)

答案 6 :(得分:2)

使用emacs进行基本文本编辑并不比使用记事本执行相同操作复杂。只需使用它就像记事本一样,但在浏览菜单时,请注意键盘的缩写。慢慢地你会开始接收东西。如果您想要做某些事情并且不知道如何做,那么可以从菜单中下载帮助,就像其他编辑一样。

我想我建议的唯一“技巧”是在打开文件进行编辑后,尝试使用ctrl-h m来提取在该缓冲区模式下工作的键盘绑定列表。

答案 7 :(得分:1)

我的建议是:

  • 了解基础知识(如何输入,保存文档,打开语法高亮,可能复制和粘贴)。您可以在线查看如何进行这些操作(可能是谷歌“emacs教程”)
  • 开始使用它。

每当您希望自己知道如何做某事时,请查看如何做。在获得之前,您可能需要先查看相同的内容3-4次,但之后您将学到它。

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

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

答案 8 :(得分:1)

启用icomplete-mode,你会经常看到在探视时看起来很有用的功能。

(icomplete-mode t)

在您的.emacs文件中。

C-h f将让你查找函数的docstring,C-h v将对变量执行相同的操作。使用icomplete,这非常适合探索。

答案 9 :(得分:1)

  1. 当您学习关键命令等基础知识时,请制作自己的备忘单。当然,找到并掠夺现有的备忘单,但一定要自己制作并将快捷键/键绑定分类到对你有意义的组。这将帮助您学习基础知识并保留记忆。

  2. 旨在将Emacs自定义到您想要的编辑器中,这是使用Emacs的最大优势,它将帮助您了解其所有功能及其扩展方式。

  3. 很高兴,相对而言,由于SO和其他地方如EmacsWiki的社区,学习Emacs要容易得多。 :)

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

  5. 值得注意的是,将Emacs设置为更现代的应用程序可能很痛苦,您需要执行诸如运行emacs服务器之类的操作,并使用emacs客户端。

    谢天谢地(re:3)网上提供了很多帮助,但如果您可以直接访问经验丰富的Emacs用户,请认为自己很幸运。