Zzzxb's Blog

你要静心学习那份等待时机的成熟的情绪,也要你一定保有这份等待之外的努力和坚持。

Emacs : 第一天 - 准备开始

  1. Spacemacs Rocks 原文
  2. 下载GNU Emacs
  3. 改键,把Control映射到CapsLK上,让使用control键更方便

    • Ubuntu下载 Tweak-tool : sudo apt install gnome-tweak-tool
  4. 阅读Emacs官方帮助文档,打开Emacs C-h t (ctrl + h 按下后松开再按 t(当前窗口打开帮助文档))
  5. 阅读Learn X in Y Minutes,大致了解一下Elisp语言

常见符号所代表的意义

光标移动

常用文件操作快捷键组合

内置功能

Emacs 中有一部分功能是默认禁用,如果有需要的话可以开启他们.
例如:显示行号,语法高亮,显示时间,括号匹配等等.

获取帮助

Emacs是一个富文档编辑器(Self document, extensible editor)与之相对的还有纯文本编辑器(例如微软自带的记事本)

开始 Hacking

Emacs 的配置文件默认保存在 Linux : ~/.emacs.d/init.el Windows : c:user/app/.emacs.d/init.el 文件中. (如果没有可自行创建), 也可以保存在 ~/.emacs

注意: 如果希望把配置放在~/.emacs.d 文件中, 那么需要手动删除 ~/.emacs 文件

在开始配置之前让我们先来区别 Emacs 中 Major Mode 与 Minor Mode 的区别。Major Mode 通常是定义对于一种文件类型编辑的核心规则,例如语法高亮、缩进、快捷键绑定等。 而 Minor Mode 是除去 Major Mode 所提供的核心功能以外的额外编辑功能(辅助功能)。 例如在下面的配置文件中 tool-bar-modelinum-mode 等均为 Minor Mode.

简单来说就是,一种文件类型同时只能存在一种 Major Mode 但是它可以同时激活一种或多 种 Minor Mode。如果你希望知道当前的模式信息,可以使用 C-h m 来显示当前所有开启 的全部 Minor Mode 的信息.

简单的编辑器自定义

下面是一些简单的编辑器配置信息, 你需要做的就是将其写入你的配置文件中 (~/.emacs.d/init.el) 即可.

;; 看过Learn X in Y Minutes 后对这些代码熟悉吧.

;; 关闭工具栏,tool-bar-mode 即为一个 Minor Mode
(tool-bar-mode -1)

;; 关闭文件滚动条控件
(scroll-bar-mode -1)

;; 显示行号
(global-linum-mode 1)

;; 更改光标的样式(不能生效,解决方案见第二集)
(setq cursor-type 'bar)

;; 关闭启动帮助画面
(setq inhibit-splash-screen 1)

;; 关闭缩进 (第二天中被去除, 缩进是我们写代码时经常用到的)
;; (electric-indent-mode -1)

;; 更改显示字体大小 16pt
;; http://stackoverflow.com/questions/294664/how-to-set-the-font-size-in-emacs
(set-face-attribute 'default nil :height 160)

;; 快速打开配置文件
(defun open-init-file()
  (interactive)
  (find-file "~/.emacs.d/init.el"))

;; 这一行代码,将函数 open-init-file 绑定到 <f2> 键上
(global-set-key (kbd "<f2>") 'open-init-file)

在每次编辑配置文件后, 刚刚做的修改并不会立刻生效. 这时你需要重启编辑器或者重新加 载配置文件. 重新加载配置文件你需要在当前配置文件中使用 M-x load-file 双击两次 回车确认默认文件名, 或者使用 M-x eval-buffer 去执行当前缓冲区的所有 Lisp 命令. 你也可以使用 C-x C-e 来执行某一行的 Lisp 代码. 这些可使刚刚修改的配置文件生效. 当然你也可以将这些函数绑定为快捷键.

插件管理

使用默认的插件管理系统(可在菜单栏 Options > Manage Emacs Packages 中找到)安 装 Company 插件,他是一个用于代码补全的插件。它的名字代表补全一切的意思( Comp lete Any thing)。因为默认的插件管理系统提供的插件十分有限,所以我们会在之后的 几天中继续将其强化。

使用的下面的配置将 Company-mode 在全局模式下激活

;; 开启全局 Company 补全
(global-company-mdoe 1)

Org-mode

简单的 Org-mode 使用, 它可以列出提纲, 并方便地使用 tab 键来对其进行展开与关闭. C-c C-t 可以将一个条目转换成一条待办事件(使用 Emacs 打开 .org 后缀的文件,自动进入org模式).

* 一级标题
** 二级标题
*** 三级标题 以此类推