我是这样上手Emacs的

发布 : 2018-11-12 分类 : Emacs 浏览 :

什么是Emacs

维基百科是这样说的:Emacs(/ˈiːmæks/,源自Editor MACroS,宏编辑器),是一个文本编辑器家族,具有强大的可扩展性,在程序员和其他以技术工作为主的计算机用户中广受欢迎。最初由Richard Stallman于1975年在MIT协同盖伊·史提尔二世共同完成。这一创意的灵感来源于TECO宏编辑器TECMAC和TMACS,它们是由盖伊·史提尔二世、Dave Moon、Richard Greenblatt、Charles Frankston等人编写的宏文本编辑器。 如果你没听说过Emacs,那么可以把它当作一个文本编辑器,是的,一个功能非常强大的编辑器。它可以敲代码、写博客、做GTD、发邮件、聊天、玩游戏、浏览网页等等…… 据说还可以煮咖啡。 总之限制它功能的一定是你的想象力。 而这一篇博客将向你介绍如何快速的让 Emacs 成为你的生产工具。由于是快速,所以好多细节不会在文章中提到,不过别担心,我会向提供其他大牛写的博客链接(我就不再造车轮了),以供你进一步的学习。如果你是在微信中查看本文章,由于微信的限制所以外部链接无法打开,请你点击下面的“阅读原文”移步到《舍予书》查看本篇博客。

Emacs 只适合程序员吗?

其实 Emacs 并没有对使用人群的限制,任何需要书写工具的小伙伴都可以尝试使用Emacs。之所以好多人对其敬而远之,是因为其相对于其他编辑软件的开箱即用,会有一定的学习成本。 但是,Emacs 的高度可订制,可以让其具备很多的功能,不必在多个软件中切换。并且通过配置可以结合Vim的特性结合,来实现在书写过程中全键盘的操作,让你的工作效率不止提升一个档次。 下面我便将 Emacs 的学习成本再次降低,期望能为你打开通向全新世界的大门。

快速上手

这里要说下,由于我是在MacOS下使用Emacs进行工作,所以MacOS的小伙伴可以安装教程无缝接入,不过对于 Linux 用户也是很友好的。而对于Windows用户,我在这里单独介绍Windows下的使用注意。

下载 Emacs

MacOS下我推荐的版本是 “Emacs Mac Port”,GitHub 地址是:https://github.com/railwaycat/homebrew-emacsmacport Linux 和 Windows 环境我都是使用官方原版的,下载地址: http://mirrors.ustc.edu.cn/gnu/emacs/

安装

MacOS 安装

MacOS 下如果你安装了 Homebrew,那么就很简单了。只需在终端中输入如下命令即可:

$ brew tap railwaycat/emacsmacport

$ brew install emacs-mac

Linux 环境安装

Linux 下你可以使用 yum,apt-get 进行安装。当然通过yum等工具安装的未必是最新版本,你也可以通过下载源码进行编译安装。

  • 安装过程

    1. 去到上面给出的链接下载Emacs源码,建议下载*.tar.gz包
    2. 将其解压:

      $ tar -xzvf emacs-*.tar.gz

    3. 编译安装

      $ cd emacs-*
      $ ./configure
      $ make
      $ sudo make install

使用

当下载并安装好之后请不要安装任何插件。在终端中输入如下命令,并完成其所有教程之后,再回来观看该博客(大约需要30分钟)。

运行 Emacs

$ emacs -nw -Q

查看基本教程

在MacOS 终端中输入上面的命令你会看到如下界面。请在这里按下 (同时按下Alt(MacOS option按键)和x),之后输入 help-with-tutorial。 Gif图请看图片最下面的命令输过程:

2018-11-02-16.23.13.gif

当你看完Emacs的基本教程之后,便会对Emacs有了一个基本的认识。那么我们接下来开始将其配置成你的生产工具。

配置 Emacs

  • 下载配置文件

    网上有很多大牛的配置,这里向你推荐几篇关于配置Emacs的博文:

    你可以根据上面的文章一步步的自己配置环境,如果你想快速上手,我向你推荐我的配置文件,配合本博客可以让你快速的开始使用Emacs。

    • 下载配置文件

    • 使配置文件生效

      使用以上方法将配置文件下载到你的本地并解压之后,使用如下命令将其移动到你的Home目录下,注意将下面命令中的路径替换为你的配置文件所在路径。

      mv /your/path/emacs.d-master ~/.emacs.d

      ok,现在再次打开你的Emacs(这里需要等待一会,应为需要下载相关插件),如果出现Emacs欢迎的画面则代表完美兼容你的环境。

这里我使用了Vim的配置,所以好多功能和你之前学的不一样了,下面便分享下如何使用我配置的Emacs。

Vim 的基本概念

由于是结合了Vim的功能,所以非常有必要了解下Vim的基本概念。

  • 普通模式

    再使用Emacs时,只要不输入内容便切换至该模式。在该模式下你可以使用按键进行光标的移动或者其他快速的操作。 从插入模式到普通模式的切换只需点击以下 Esc 即可。

  • 插入模式

    顾名思义,插入模式就是输入数据的模式,从普通模式输入以下命令即可进入插入模式:

    • a: 向光标后面输入数据
    • i: 向光标前面输入数据
    • I: 向光标所在行最前端输入数据
    • A:向光标所在行最后输入数据
  • 命令模式

    命令模式是向在vim下执行相关命令,而在Emacs下我最多使用的便是”:w”来保持文件。

Emacs 基本概念

  • 窗口

    这里的窗口是在Emacs中打开一个新的窗口,而不是系统中打开。

操作快捷键

前面提到过全键盘操作,这也是我喜欢Emacs和Vime编辑器的重要原因之一。而对于全键盘操作,你就需要记住一些快捷键的操作。 这里要对下面的快捷键标识形式进行解释, 注意所有的按键输入要区分大小写。 Ctrl:就是Control按键。 PAC:就是 空格键 Opt:就是MacOS下的Option按键, Windows下的 Meta 按键。 -: 同时按下标识,例如:Ctrl-x,就是先按下Control(不松开)之后按下x按键; 空格:就是按下前面按键之后(松开),在按后面的按键。

  • 退出 Emacs

    • Ctrl-x Ctrl-c: 退出Emacs,如果有文件没有保持会有提示。
    • Ctrl-x Ctrl-s: 保存文件。
    • Ctrl-x s: 检查缓存中是否有文件未保存。
  • 光标移动

    以下几个命令是使用频率最高的几个按键,要让其成为你的肌肉记忆。注意,这里输入的时候Emacs必须处于”普通模式”。

    • j: 光标向下移动一行
    • k: 光标向上移动一行
    • h: 光标向前移动一个字的位置的位置
    • l: 光标向后移动一个字的位置的位置
    • Ctrl d: 向下翻页
    • Ctrl u: 向上翻页
  • 缓存管理

    在工作中我们会需要在多个文件中切换,这里便需要用到Emacs的缓存了。

    • Ctrl-x Ctrl-b:显式缓存中所有打开的文件, 输入d,可将光标所在行标记关闭。输入x,执行标记。
    • PAC b: 快速切换缓存。
    • PAC f f: 打开文件
    • PAC f r: 打开历史记录
    • PAC f d: 在新的窗口中打开一个目录
    • PAC p s: 显式当前工作路径
    • PAC e s: 快速切换至 eshell 模式
  • 窗口管理

    • Ctrl-x 2:横向打开一个窗口
    • Ctrl-x 3: 纵向打开一个窗口
    • PAC N(0~9): 将光标跳转到对于下标的窗口
    • PAC j j: 另一个窗口向下移动
    • PAC k k: 另一个窗口向上移动
  • 针对 C++/C 编程的快捷键

    • PAC PAC: .cpp/.h文件间快速切换
    • PAC w: 显式代码框架(所有函数)
    • Ctrl-]: 跳转至定义所在
    • Ctrl-t: 从定义所在返回

    • 补充命令

      在C/C++下跳转定义的功能需要在源码目录中输入以下命令才可以使用,我一般会在工程源码目录最顶层输入。

      $ find ./ -name “*.[ch]“ | xargs etags -a

      生成TAGS文件之后,在Emacs中输入Ctrl-]时会提示你指定TAGS文件所在目录,选择响应目录即可。

如何进一步学习

至此你已经可以开始简单的使用Emacs了,对于上面的按键,并不需要背下来,只需多多的使用便可以成为你的肌肉记忆。如果你觉得学习的不够爽,那么我向你推荐一些大牛的博客,你可以学习下。

最后

如果你发现任何问题或疑问,你可以在下面留言或者通过 微博 和邮箱联系我,我会第一时间给予答复。 本文出自 舍予书,如需转载请保留该段声明,非常感谢。

本文作者 : Lojze
原文链接 : http://blog.flowlore.com/passages/iam-learning-emacs-like-this/
版权声明 : 版权声明: 本博客所有文章除特别声明外, 均采用 CC BY-NC-SA 4.0 许可协议. 转载请注明出自《舍予书》
留下足迹