如何教初学者使用Emacs?

26

如果你有10分钟的时间教别人如何使用Emacs,你会向他们展示什么?

启动Emacs: emacs
...
退出Emacs: C-x C-c

在你背后的这段时间里,除了启动和退出Emacs之外,你还会让他们做些什么呢?


手头的任务是什么?Emacs是完成这项工作的正确工具吗? - jfs
13个回答

55
如果我只有10分钟,我不会教他们任何快捷方式。所有常用的快捷键都在菜单对应命令旁边;这些用户可以自己发现。
最重要的是教授使用户能够自己发现/学习的东西:
  • 可以使用C-x C-c或文件->退出来退出Emacs。当卡住时,应该输入C-g,如果这不起作用,就输入ESC ESC ESC。[这可能是防止对Emacs感到完全沮丧的最有用的建议,相信我。]

  • 教程:帮助->Emacs教程,或C-h t。[这不是一个非常有用的快捷方式要记住;考虑到人们一生中读教程的次数很少...]

  • 每个Emacs按键都绑定到一个函数,并且Emacs所做的就是依次执行函数。有更多的函数不能绑定到按键上,没有按键的函数可以用M-x 函数名调用。

  • 可以使用C-h k [按键]发现特定按键调用的函数。让用户走过其中一些(包括有趣的事实,打字母并不特殊,只会调用self-insert-command,所以如果想的话,可以将字母“z”绑定为发送电子邮件:D)

  • 可以使用C-h a(或M-x apropos-command)搜索可能有用的函数,例如C-h a 段落显示所有与段落有关的命令,包括快捷键将带你到段落的结尾/开头。而C-h w 命令名称将告诉您该命令是否绑定到某个按键上。[让他们走过这一点,发现撤消的键是什么--通常他们会尝试C-z,但会做一些烦人的事情:)]

  • 可以使用M-x describe-functionC-h f)阅读有关函数详细信息。Emacs对大多数事情都有很好的文档;M-x apropos-documentationC-h d)是发现东西的好方法。

  • 设置存储在.emacs中,即使不理解Emacs Lisp,也可以通过查看该文件来获取一些信息。

  • 通常可以通过在其后输入C-h找到“完成”特定键集的所有按键,例如'C-x C-h'将显示以C-x开头的所有快捷方式;C-h C-h非常有用;C-c C-h适用于特定模式下的命令,例如在java-mode或c++-mode或LaTeX-mode等模式下。(嗯,“模式”...)

  • 卡住时,可以在http://www.emacswiki.org/上搜索。 (或在Freenode的#emacs IRC频道上提问,或发布到gnu.emacs.help。)

我认为这部分内容应该在十分钟内讲完,而且是最重要的。我不会过多地介绍需要记忆的快捷键;无论如何,如果用户知道如何发现快捷键,他们会找到最常使用的快捷键。但是,确实需要让他们写下这些命令的名称,并了解Emacswiki等相关信息。

重要的是要向他们展示Emacs的强大和通用模型(所有那些关于它成为操作系统的笑话不只是笑话)。如果你只是展示一堆晦涩难懂的快捷键来完成他们已经能在其他编辑器中完成的事情,那么Emacs似乎不值得费那么大力气去学。同样,在这种精神下,我也完全支持Anton Nazarov的答案,向他们展示Emacs可以做什么(如果他们使用LaTeX,则是AucTeX等),以适应他们的特定目的。然后他们可以自行判断是否值得学习Emacs,并使用上述所有技巧。


18

向他们展示如何开始教程:C-h t


同意 - 一旦你知道如何访问帮助/教程系统,你就可以自己学习。vim也是这样。 - Brian C. Lane

9

我还没有掌握那个命令,但我会继续尝试。 - seth
6
实际上,在最新的Emacs中,该命令是M-x butterfly。 - Laurent

7
我会向新手用户展示最重要的模式。例如,当我向物理学院的朋友展示Emacs时,我会展示带有预览-latex和RefTeX的AucTeX。此外,iMaxima也很棒。 如果我必须向软件开发人员展示Emacs,我会向他们展示类似于JDEE或Python模式与Ropemacs之类的东西。 俄罗斯方块、tramp和w3m可以用来说明Emacs可以做任何事情 :) 然后我会展示如何开始教程,并提供EmacsWiki.org的链接。

3

我认为你应该向他展示以下内容:

  • 如何打开和保存文件
  • 如何杀死/切换缓冲区
  • 如何切换/杀死/分割窗口
  • 如何选择一个范围。

并告诉他关于 M-x。让他把这些步骤写在某个地方。我认为基本的导航可以使用箭头键完成。现在这就是他所需要的全部。

如果他知道 M-x,他就可以轻松找到搜索、替换和其他功能。


2

当举例说明Emacs时,仅给出按键绑定是不够的,因为这可能会有所不同。在我的系统上,C-x M-c没有定义。


通常可以通过 Escape 键来模拟 Meta 键(即 M- 部分)。因此,我们经常可以通过按下 Escape 键、释放它,然后再按下 x 来访问 M-x - jvriesem

1

我将展示最常见操作的快捷键,例如:

  • 保存:ctrl-x-s
  • 另存为:ctrl-x-w
  • 打开/查找文件:Ctrl-f
  • 撤销:ctrl-_
  • 删除缓冲区:ctrl-x-k
  • 切换到缓冲区:ctrl-b
  • 填充段落:M-q

还有复制/剪切和粘贴:

  • 设置标记:ctrl-space
  • 剪切:ctrl-w
  • 复制:M-w
  • 剪切行:ctrl-k
  • 粘贴:ctrl-y

1
  • 打开文件,
  • 保存文件,
  • 基本导航,
  • 设置标记、复制、剪切和粘贴,
  • 显示撤销和删除环,
  • 显示 C-g,
  • 显示搜索和替换,
  • 分割窗口并移动到其他窗口,
  • 切换到其他缓冲区,
  • 显示教程,
  • 解释 Info,
  • 显示 dired:
    • 打开某个文件,
    • 运行命令以压缩另一个文件,
    • 打开、编辑和保存压缩文件,
    • 在远程主机上打开一个目录,
    • 在远程主机上打开并保存某个文件,
    • 从远程主机复制某个文件。
  • 打开 shell 并运行一些长输出命令,在缓冲区中进行导航。

1
  1. 学会使用帮助命令 C-h C-h
  2. 完成教程练习。
  3. 删除某些内容,再删除另一些内容和第三个内容,然后使用 C-y 命令将其粘贴回来,并使用 M-y 命令循环浏览剪贴板。这是一个非常快速且便宜的技巧,让人惊叹不已。然后告诉他们它在日常 shell 中也适用
  4. 使用 标记环 在缓冲区中导航。使用 C-u C-SPC(空格)可以将光标移动到之前的位置,并且重复使用该命令可以循环浏览最近的16个位置,无论编辑状态如何。

你知道当你羞怯地撤销操作只是为了回到“之前的位置”吗?现在你知道了。

这是一个杀手级别的 Emacs 忍者技巧。每个人都应该尽快掌握它。


1
+1 指出 shell 也有 kill rings。 - phils
我很想看到那里选项3的第一步。 - jvriesem

1
当我启动XEmacs时,直到我按下一个键之前,它会在两个屏幕之间交替显示。其中一个屏幕上有以下内容:
XEmacs 21.4 (patch 21) "Educational Television" (cygwin, Mule) of Tue Dec  4 2007 on vzell-de 

`C-' means the control key,`M-' means the meta key 


Information, on-line help: 

XEmacs comes with plenty of documentation... 


M-? F: read the XEmacs FAQ (a capital F!) 
M-? t: read the XEmacs tutorial (also available through the Help menu) 
f1: get help on using XEmacs (also available through the Help menu) 
M-? i: read the on-line documentation 

M-x describe-project: read about the GNU project 
M-x about-xemacs: see who's developing XEmacs 

我想请某人大声朗读它,确保他们理解其含义,然后给他们我的手机号码和急救包,以备紧急情况使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接