Emacs Note

写在前面

这是一个 Emacs 的学习笔记,用来记录一些重要的知识点,以便于帮助自己进行回顾。笔记的大部分内容来自于 Spacemacs Rocks 第二季 的课程。

参见:
    子龙山人Master Emacs in 21 Days
    视频教程:优酷百度网盘YouTube


在 Emacs 中使用 C-h t 打开 Emacs Tutorial ,完成官方教程

1. 基础操作

常见的符号意义:

  • C(trl) 在 Mac 上为 Control 键
  • M(eta) 在 Mac 上为 Option 键
  • s(uper) 在 Mac 上为 Command 键
  • S(hift)

光标的移动:

  • C-f 为前移一个字符, f 代表 forward
  • C-p 为上移至前一行, p 代表 previous
  • C-n 为上移至下一行, n 代表 next
  • C-a 为移至行首, a 代表 ahead
  • C-e 为移至行尾, e 代表 end

常用的文件操作:

  • C-x C-f 为打开目标文件 f 代表 find / file
  • C-x C-s 为保存当前缓冲区(Buffer), s 代表 save
  • C-x C-e

快捷键就是按预先绑定好的方式执行命令
相似的前缀命令还有 C-cC-h

2. 内置功能

  • M-x linum-mode 开启编辑器内的行号显示

3. 学习 Elisp 基础

阅读教程 Learn X in Y minutes ,或参见 中文版

;; 2 + 3 * 4
(+ 2 (* 3 4))

(setq my-name "Mark")
(message my-name)

(defun my-func ()
  ;; Specify a way of parsing arguments for interactive use of a function.
  (interactive)
  (message "Hello, %s" my-name))

(global-set-key (kbd "<f2>") 'my-func)

4. 简单的编辑器自定义

Emacs 的配置文件默认保存在 ~/.emacs.d/init.el 文件中,也可以保存在 ~/.emacs 文件中。

如果将配置放在 ~/.emacs.d/init.el 文件中,需要手动删除 ~/.emacs 文件。

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

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

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

;; 更改光标的样式
(golbal-setq cursor-type 'bar)

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

;; 关闭缩进
;; (electric-indent-mode -1)

;; 更改显示字体大小 16pt
;; http://*.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 双击两次回车确认默认文件名,或者使用 -x eval-buffer 去执行当前缓冲区的所有 Lisp 命令。 你也可以使用 C-x C-e 来执行某一行的 Lisp 代码。这些可使刚刚修改的配置文件生效.

5. 插件管理

使用默认的插件管理系统(在菜单栏 Options > Manage Emacs Packages 中找到)安装 Company 插件,是一个用于代码补全的插件。它的名字代表补全一切的意思( Comp lete Any thing)。

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

6. Org-mode

分级标题

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

作为 GTD 工具进行时间管理

C-c C-t 切换 TODO -> DONE -> NONE

上一篇:pay-spring-boot 开箱即用的支付模块,整合支付宝支付、微信支付


下一篇:codevs2693 上学路线(施工)