【问题标题】:How to quickly get started at using and learning Emacs [closed]如何快速开始使用和学习 Emacs [关闭]
【发布时间】:2010-09-21 03:40:49
【问题描述】:

使用 Emacs 有很多优点,但对于熟悉常用 Win32 应用程序的人来说,它具有类似墙壁的学习曲线。对于大多数其他编辑器,您可以开始使用它们,然后随着您的使用了解它们的其他功能和增强功能。

如何立即开始使用 Emacs,以达到您实际上更喜欢使用 Emacs 而不是其他编辑器或应用程序的目的?

编辑 - 尝试澄清问题:我已经完成了教程,阅读了一些文档等。不久之后,当我想快速编辑一些文本时,使用另一个编辑器会更容易,我已经知道。我需要做什么才能不只是选择另一个更简单的编辑器,而且我实际上更喜欢使用 Emacs,以及如何尽快到达这里?如果有 Emacs 的辅助轮怎么办?

【问题讨论】:

  • 作为后续,我发布了一个示例,说明何时我发现使用另一个我已经知道的编辑器更容易stackoverflow.com/questions/270930/…
  • 就我个人而言,我说“无论如何我都会用这个一周。”我花了几个小时完成本教程以掌握基本的编辑命令,然后让自己使用了一周,寻找在需要时如何做某事。作为我的主要编辑器,我已经使用它大约 2 年了,每天在我的工作中以及在家里。奖励是当我意识到我也可以在 bash 中使用 emacs 命令时!

标签: emacs


【解决方案1】:

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

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

说真的。

了解帮助系统及其工作原理是您能做的最好的事情。只需按 C-h 查找,然后突然获得所需的所有信息,触手可及,真是太好了。

您可以做的下一个最好的事情是安装一个名为Icicles 的奇妙小包,它具有一些非常时髦的完成功能。安装后,只要知道 minibuffer 要求某种输入,您现在就可以使用正则表达式了。

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

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

学习。键盘。宏。

学习。 Emacs。 Lisp.

Steven Huwig 使用一些杀手级应用程序的想法是一个不错的想法。当您想使用 Emacs 时,它更易于使用。对我来说,这是计划者模式。 (我刚搬到Org-mode,而且更好。)

【讨论】:

  • 建议emacswiki.org/emacs/Icicles标记为正确答案
  • +1,但是 C-h c 映射到 describe-key,这不是你的意思,当你说“C-h c find”时我不这么认为。 “C-h a find”也许?
  • 好建议(学习帮助系统,创建备忘单 - 在 emacs 中!)+1。
  • 请参阅此页面,了解如何使用 Icicles 帮助您学习 Emacs:EmacsNewbieWithIcicles
  • 这个答案来自 2008 年。很好奇,人们还在使用 Icicles,还是现在认为 helm 更好?
【解决方案2】:
  • 花 20 分钟运行教程

    ctrl-h t

这将使您达到高效的地步(您将阅读到的“元”键可能是 Escape 或 alt)。

【讨论】:

【解决方案3】:

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

潜在杀手级应用:

【讨论】:

  • 对我来说,它的外壳模式。这是因为在我的工作笔记本电脑 XP explorer.exe 上不断挂起,原因不明。有时它会使机器完全停止。 Emacs 没有。
【解决方案4】:

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

立即设置 .emacs 文件。您将需要对其进行相当多的自定义。这听起来很傻,但是对该文件进行某种源代码控制也会有所帮助。

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

(defalias 'ap 'apropos)

然后,当您想查看是否有执行“某事”的命令时,键入“[Alt-x] ap [enter] something [enter]”。 Emacs 有自己的东西名称,所以有时很难找到东西(“yank”?说真的?像其他人一样称之为“cut”!)

"[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 模式) (define-key global-map (kbd "M-RET") 'iswitchb-buffer)

要计算 emacs-lisp 表达式,请将表达式输入缓冲区,将光标放在它后面,然后输入“[Ctrl-x Ctrl-e]”。这让您可以轻松地尝试不同的自定义设置。

请记住,在键入这样的序列时,您不必松开 ctrl。

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

(defun word-at-point () (事物在点'字) ) (defun word-at-point-or-selection () (如果标记激活 (regexp-quote (buffer-substring (mark) (point))) (连接“\\”) ) ) (defun find-word-at-point () (交互的) (发生(word-at-point-or-selection)) ) (define-key global-map (kbd "C-o") 'find-word-at-point) (define-key isearch-mode-map (kbd "C-o") (拉姆达() (交互的) (让 ((case-fold-search isearch-case-fold-search)) (发生(如果 isearch-regexp isearch-string (regexp-quote isearch-string))))))

【讨论】:

  • "yank" 表示粘贴,而不是剪切。主要问题是 Emacs 太老了,以至于它早于许多用于描述 GUI 的术语。
  • 啊,对。看?我每天都在使用它,甚至不记得了,因为它……使……没有……意义:) 不过,杀戮戒指真的很方便。但又一次,杀死/猛拉与剪切/粘贴?有时,像这样的 Emacs 特定术语很难在帮助文件中找到您想要的内容。
  • word-at-point-or-selection 的定义有问题。
【解决方案5】:

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

  1. 找另一个 Emacs 用户,每天看几分钟
  2. 让 Emacs 用户监视您(并提供反馈)
  3. 查找更多 Emacs 用户并重复步骤 1&2
  4. 订阅planet emacsen feed 以了解其他 Emacs 人员正在学习什么
  5. 关注emacs tip of the day twitter
  6. 尝试在 SO 上回复人们 Emacs questions

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

【讨论】:

    【解决方案6】:

    就像@Claudiu 说的,就用它。只是勉强通过,让您的需求推动您的学习曲线。

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

    随着时间的推移,你会遇到你每天都在做的事情,而这些事情你已经厌倦了,需要花时间去寻找“更好的方法”。通常,您的基本技能足以应付,足以让(可能未知的)时间投入到一些替代路径上是不值得的,尤其是对于稀有的东西。

    但是,您可能有空闲时间,或者任务可能大到足以证明深入研究是合理的。

    此时,您将成为 Emacs 专家,而不是熟练用户。

    虽然我个人不再使用 Emacs(而是依赖 IDE),但我会说,虽然 Emacs 相当复杂,但您只需要了解一小部分即可使其变得有用和有趣。我还要说我从来没有“对 Emacs 大喊大叫”,而我一直对我的 IDE 大喊大叫。是的,Emacs 做的比我的 IDE 做的要少,但我认真地意识到,可能值得我花时间回到它,停止尖叫。

    我只是觉得 Emacs 比我的 IDE 更“确定性”,我的 IDE 喜欢时不时地进入 lala 的土地,或者需要重新启动,或者其他什么。

    我从来没有亲自崩溃过 Emacs(有人会说这意味着我使用它不够努力......)

    【讨论】:

      【解决方案7】:

      使用 emacs 进行基本文本编辑并不比使用记事本更复杂。只需像记事本一样使用它,但在浏览菜单时,请注意键盘快捷键。慢慢你就会开始收拾东西。当您想做某事但不知道如何操作时,可以从菜单下拉菜单中获得帮助,就像其他编辑器一样。

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

      【讨论】:

      • 对于我们这些不想通过约 45 分钟教程的人来说,这是最好的答案
      【解决方案8】:

      我的建议是:

      • 了解最基本的知识(如何键入、保存文档、打开语法突出显示,可能还包括复制和粘贴)。您可以在线查找如何执行这些操作(谷歌“emacs 教程”可能)
      • 开始使用吧。

      当您希望自己知道如何做某事时,请查看如何做。你可能需要把同样的东西看 3-4 次才能得到它,但是你会学会它。

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

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

      【讨论】:

      • 只是使用另一个编辑器是我试图避免的。这是我以前每次尝试学习 Emacs 时所做的,这也是我这次再次所做的。回到我习惯的编辑器太容易了,它几乎轻松完成我需要的一切。
      【解决方案9】:

      打开 icomplete-mode,你会经常看到一些看起来很有用的函数。

      (icomplete-mode t)
      

      在您的 .emacs 文件中。

      C-h f 将让您查找函数的文档字符串,而 C-h v 将为变量执行相同的操作。使用 icomplete,这非常适合探索。

      【讨论】:

        【解决方案10】:
        1. 在学习键盘命令等基础知识时,请制作自己的备忘单。当然找到并掠夺现有的备忘单,但一定要自己制作并将快捷键/键绑定分类到对您有意义的组。这将帮助您学习基础知识并保持记忆。

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

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

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

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

        谢天谢地(re: 3)网上有很多帮助,但是如果您可以直接接触到经验丰富的 Emacs 用户,那么您就很幸运了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-19
          • 1970-01-01
          • 1970-01-01
          • 2010-09-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多