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 PiArduino/ATmega32 微控制器。

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

对于非技术任务,如记笔记、保持议程和写博客,Emacs 提供了一个称为 Org Mode 的杀手级功能。 我用它来管理我所有的笔记和待办事项。 我最近使用了 Artist Modeditaa 用于框图,并对结果感到惊讶。 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 cursos: Emacs 的多个光标。
  • hidepw: 用于隐藏密码的 Emacs 小模式(反肩窥)。
  • Company: 一个 Emacs 的文本完成框架,可以自动完成几乎任何类型的文本。

Git commit logs in Emacs magit

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

Emacs 思想领袖

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 扩展进行更深入的解释就太好了。

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

回复 ,作者:psachin

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

回复 ,作者:Stefan (未验证)

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

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

坚持对用户强制执行不需要的“帮助”的软件比毫无用处还要糟糕。 它会妨碍您并阻止您完成工作。 不幸的是,许多软件开发人员尚未意识到这个简单的事实。

嗨 Brian,

我理解有时提供访问功能会给用户带来不便。

“electric-indent-local-mode”是在 Emacs 24.4 中引入的。 您所要做的就是在 Emacs 配置文件中插入以下内容来禁用该模式

(electric-indent-local-mode -1)

在您的 Emacs 配置文件中。

回复 ,作者:BrianB (未验证)

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

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

回复 ,作者:Chad McCullough

感谢这篇伟大的文章。 我已在此处将其翻译成阿拉伯语
http://itwadi.com/node/2928

知识共享许可协议本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.