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

如何快速开始使用和学习Emacs,emacs,Emacs,使用Emacs有各种各样的优点,但对于熟悉常用Win32应用程序的人来说,它有一个类似墙的学习曲线。对于大多数其他编辑器,您可以开始使用它们,然后了解它们的其他特性和增强功能 如何直接使用Emacs,以达到您实际上更喜欢使用Emacs而不是其他编辑器或应用程序的目的 编辑-尝试澄清问题:我已经完成了教程,阅读了一些文档,等等。然后不久,当我想快速编辑一些文本时,使用另一个编辑器就更容易了,我已经知道了。我需要做些什么,这样我不仅不会选择另一个更简单的编辑器,而且我实际上更喜欢使用Emacs,以及

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

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

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

  • 花20分钟运行教程

    ctrl-h t

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

我的建议是:

  • 学习最基本的知识(如何键入、保存文档、启用语法高亮显示、可能是复制和粘贴)。你可以在网上找到如何做这些(谷歌“emacs教程”也许)
  • 开始使用它
每当你希望自己知道如何做某事时,就去看看如何去做。你可能需要把同样的东西翻3-4遍才能找到它,但是你会学会的

继续这样做。一开始它会让人恼火,但之后你会习惯它,然后你甚至会喜欢使用它


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

使用emacs进行基本文本编辑并不比使用记事本进行编辑复杂。只需像使用记事本一样使用它,但当你浏览菜单时,请注意键盘上的快捷键。慢慢地,你会开始拾起一些东西。当你想做某件事而不知道如何做时,可以从菜单中下拉选择帮助,就像其他编辑器一样


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

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

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

为了更容易找到Emacs的内部结构,请将以下内容添加到您的.Emacs中:

(defalias 'ap 'apropos) (iswitchb-mode) (define-key global-map (kbd "M-RET") 'iswitchb-buffer) (恰如其分地说,德法利亚是“ap”) 然后,当您想查看是否有执行“something”的命令时,请键入“[Alt-x]ap[enter]something[enter]”。Emacs有自己的东西名称,所以有时候很难找到东西(“yank”?说真的?像其他人一样叫它“cut”!)

“[Ctrl-h f]函数名[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) (定义关键全局映射(kbd“M-z”)‘重做’) (定义键全局映射(kbd“C-z”)‘撤消’) 获取redo.el包以减少Emacs的重做

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

(defalias 'ap 'apropos) (iswitchb-mode) (define-key global-map (kbd "M-RET") 'iswitchb-buffer) (iswitchb模式) (定义键全局映射(kbd“M-RET”)“iswitchb缓冲区) 要计算emacs lisp表达式,请在缓冲区中键入表达式,将光标放在它的后面,然后键入“[Ctrl-x Ctrl-e]”。这使您可以轻松地尝试不同的自定义设置

记住,在键入这样的序列时,不必放开ctrl键

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

(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)))))) (在点()处定义单词) (点睛之笔) ) (在点或选项()处定义单词) (如果标记为活动) (regexp引号(缓冲子字符串(标记)(点))) (concat“\\”) ) ) (在点()处取消查找单词) (互动) (出现(单词在点或选择处)) ) (定义关键全局映射(kbd“C-o”)“在点处查找单词”) (定义关键isearch模式映射(kbd“C-o”) (lambda() (互动) (let((案例折叠搜索为案例折叠搜索)) (如果isearch regexp isearch字符串 (regexp引号isearch string((()())))
就像@Claudiu说的,用它就行了。就这样慢慢来,让你的需求驱动你的学习曲线

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

随着时间的推移,你会遇到那些你每天都在做的事情,而这些事情你已经厌倦了,以至于你不得不花时间去寻找一种“更好的方法”。通常情况下,你的基本技能足以应付,足以让你花在其他道路上的时间(可能是未知的)不值得花费,特别是对于一些罕见的东西

但是,你可能有空闲时间,或者任务可能足够大,有理由深入研究

在这一点上,您将更多地成为Emacs专家,而不是熟练的用户

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

我只是觉得Emacs是