Emacs 文本编辑器入门

1 位读者喜欢这篇文章。
Pull to open here

Opensource.com

GNU Emacs 文本编辑器自 1976 年以来就已存在,并且仍然是软件开发人员和作家中的热门选择。它的主要重点是可扩展、可定制、自文档化和实时显示,并且它拥有操作系统的功能。(是的,对我来说它就是一个操作系统。)

虽然 Emacs 的核心是用 C 语言编写的,但许多扩展 Emacs 基本功能的功能是用 elisp 编写的,elisp 是 lisp 编程语言的一种方言,或者类似的东西。基本上,插件是用 lisp 编写的,但在 Emacs 中,很多功能来自插件。

Emacs splash screen

Emacs 启动时的启动画面。

我在大学期间接触到了 Emacs,当时我的研究涉及基于 Python 的物理模拟。我的许多同事都在使用 VIM。我尝试了一下,但很快发现自己想要更简单的东西。我看到一些 Linux 内核开发人员使用 Emacs,并决定尝试一下。它很简单,但高度可定制。在为 Python 配置它并学习了适当的击键之后,我变得非常习惯不用鼠标使用它。

使用 Emacs,用户可以回复电子邮件、阅读新闻、聊天、浏览文件和目录、运行命令、写博客和播放音乐——所有这些都是内置的。我甚至用它来编程我的 Raspberry Pi 和 Arduino/ATmega32 微控制器。

Emacs 轻松支持所有主要的编程语言。语法高亮、自动完成和帮助/文档只是开发人员可用的一些功能。它还支持第三方插件(扩展),可以使用 package-install 添加。Emacs 与系统结合得非常好,几乎不需要打开终端来运行命令。一旦配置好,它就可以成为开发人员理想的 IDE。

对于非技术性任务,如记笔记、保持日程和写博客,Emacs 提供了一个名为 Org Mode 的杀手级功能。我用它管理我所有的笔记和待办事项。我最近将 Artist Mode 与 ditaa 一起用于框图,并对结果感到惊讶。org 文件可以导出为 HTML、LaTeX、ODT 和 Markdown。

_blank

左侧是 Emacs Artist Mode,右侧是使用 ditaa 转换的完成图像。

对于那些 Emacs 新手来说,把它当作任何其他编辑器一样对待。使用鼠标和菜单栏。尝试其内置教程。在花一些时间使用它之后,尝试学习击键并避免使用鼠标。过一段时间后,除非您使用 Artist Mode,否则您将不需要鼠标。Emacs 不会一次性施加所有复杂性,但如果您需要,该功能始终存在。

酷炫的 Emacs 扩展

  • magit: Emacs 内部的 Git Porcelain。使用 magit 可以在 Emacs 中处理 Git 仓库。
  • git-timemachine: 浏览 git 控制文件的存档版本。
  • yasnippet: Emacs 模板系统。
  • Jedi: Python 自动完成库。
  • Multiple cursors: Emacs 的多光标。
  • hidepw: 用于隐藏密码的 Emacs 次要模式(反肩窥)。
  • Company: Emacs 的文本完成框架,可以自动完成几乎任何类型的文本。

Git commit logs in Emacs magit

magit-log 缓冲区显示 Git 提交日志。

Emacs 思想领袖

  • Sacha Chua: 她的博客有很多关于 Emacs 的帖子。她写了特别优秀的关于 Org Mode 和日程的帖子。她还主持 Emacs Hangout,她在那里定期采访 Emacs 用户和开发人员。
  • Xah Lee: Xah 是 Emacs 世界中最鼓舞人心的人。他定期在 Google+ 上发帖。他关于 Emacs 和 elisp 的教程非常适合新手。
  • Chris Frono: Chris 编写了 hidepw 并共同主持了 The Haskell Cast。他的 Emacs 视频教程 非常有帮助。
  • Magnar Sveen: multiple-cursors 的作者和维护者。在 emacsrocks.com 查看他的 Emacs 视频
  • John Wiegley: John 是当前的 Emacs 维护者。他关于 Emacs lisp 开发技巧 的 Emacs hangout 视频是必看的。

Emacs 的功能远不止文本编辑,我向新用户和核心开发人员都推荐它。

psachin
Sachin 对自由和开源软件充满热情。他是 GNU Emacs 的狂热用户,喜欢谈论和撰写关于开源、GNU/Linux、Git 和 Python 的文章。他之前曾在 OpenStack、ManageIQ/CloudForms 和 Red Hat Insights 工作。他还在业余时间喜欢探索 Swift 对象存储。可以通过 IRC 联系到他,用户名是 psachin@{Libera.Chat, Freenode, OFTC, gnome}。

12 条评论

如果能稍微深入解释一下如何安装那些闪亮酷炫的 Emacs 扩展就更好了。

您需要在您的 ~/.emacs 文件中添加以下行

(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
("marmalade" . "https://marmalade-repo.org/packages/")
("melpa" . "https://melpa.org/packages/")))

1. 现在重启 Emacs
2. M-x(按 Alt+x),然后输入 'list-packages'
这应该会列出所有软件包
3. 使用 Ctrl+s 搜索软件包
4. 单击您要安装的列表中的软件包,这应该会打开另一个缓冲区显示软件包详细信息。
5. 单击“安装”按钮,然后单击“是”安装软件包。

您也可以参考 jekor 的这个 YouTube 视频
https://www.youtube.com/watch?v=Cf6tRBPbWKs

回复 Wold be nice to have a little,作者是 frikov (未验证)

> 1. 现在重启 Emacs
抱歉,虽然 Emacs 在功能上类似于操作系统,但它不是 Windows。
只需执行 'Alt-x eval-buffer' 就完全足够了
(或者标记添加的行并执行 'Alt-x eval-region')

回复 You need to add following,作者是 psachin

当然,这可以做到。重启对于 Emacs 新手来说不太容易混淆

回复 > 1. Now restart Emacs,作者是 Stefan (未验证)

EMACS 就像 Oracle 制作出色的平面文件数据库一样,也是一个文本编辑器。Emacs 是一个环境。可惜它需要操作系统才能运行。Emacs 是一个 40# 的多功能工具,可以完成人们能想到的任何事情。电子邮件、ftp、gopher(?)、编辑/编译/调试、源代码控制、Web 浏览器、shell 工具、模拟器、屏幕多路复用器等等。说它是一个编辑器就像买一个装满工具的 snap-on 工具箱,因为你喜欢 #2 十字螺丝刀。

我尝试使用 Emacs 一段时间,但很快就放弃了。每当我用它编辑代码时,Emacs 都会坚持以我不喜欢的方式重新格式化我的代码。与其费力学习 elisp,寻找配置文件,并重新编程 Emacs 以保持我的格式不变,不如转到一个只做我告诉它做的事情的编辑器更容易。所以现在我主要使用 gedit。

坚持强迫用户接受不需要的“帮助”的软件比没用更糟糕。它会妨碍您并阻止您完成工作。不幸的是,许多软件开发人员尚未意识到这个简单的事实。

Hi Brian,

我理解有时提供访问功能对用户来说是不方便的。

'electric-indent-local-mode' 是在 Emacs 24.4 中引入的。您所要做的就是通过插入以下内容禁用该模式

(electric-indent-local-mode -1)

在您的 Emacs 配置文件中。

回复 I tried emacs for a while but,作者是 BrianB (未验证)

我使用 Unix,然后使用 Linux 已经将近 30 年了。我从未理解 Emacs 与 Vi 之争。Emacs 是一个环境。我可以在其中做很多事情。它远不止是一个文本编辑器。话虽如此,我理解为什么人们喜欢 Vi(m),但我希望两者停止被比较。它们根本不一样。

我同意你的观点 Chad。话虽如此,我以积极的方式看待这场“争斗”……这两款编辑器都从这场争斗中获得了大量的插件/扩展

回复 I've been using using Unix,作者是 Chad McCullough

感谢这篇精彩的文章。我已将其翻译成阿拉伯语,链接在此
http://itwadi.com/node/2928

谢谢 Fahad,太棒了!

回复 Thanks for this great article,作者是 Fahad Al-Saidi (未验证)

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.