emacs内置的软件包

Package

这个包是用来管理ELPA的软件包。

;; TNUA ELPA
(setq package-archives
      '(("gnu"   . "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")
        ("melpa" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")))

而下面的配置是为了配置其启动行为:

;; basic initialization, (require) non-ELPA packages, etc.
(setq package-enable-at-startup nil)
(package-initialize)
;; (require) your ELPA packages, configure them as normal

命令 含义 list-packages或package-list-packages 查看全部软件包列表 package-install 安装软件包 package-delete 删除软件包 package-autoremove 无用软件包自动删除 package-refresh-contents 刷新软件包信息索引

IDO/IComplete/FIDO

极大的优化了原生的 M-x 交互体验,使得交互命令变得更加的简洁,免除了大量的记忆成本。

  • IDO 可以简单认为是给出命令的建议或者候选;
  • IComplete 可以简单认为是自动代码(命令)补全;
  • Fido 可以认为是它们两者的结合。
    (fido-mode t)

IMenu

使用:M-x imenu
可以实现Markdown文档在不同的标题间跳转。

Dired

它是Emacs官方的文件管理器。
通过 M-x dired 或者 C-x d 可启动它。
启动之后,它在一个新创建的buffer中对文件进行展示和管理。
可以在dired中执行快捷命令/按键:

按键 操作 g 刷新 d 标记删除 D 删除 s 排序 x 执行标记动作 u 取消标记 U 取消全部标记

Dired-mode 更多命令

Winner

功能相对简单,大概意思就是说可以快速恢复分隔窗口的状态。

(winner-mode t)

M-x 执行以下两个命令:

  • winner-undo
  • winner-redo

WindMove

日常切换屏幕窗口:

(global-set-key (kbd "C-c <left>")  'windmove-left)
(global-set-key (kbd "C-c <right>")  'windmove-right)
(global-set-key (kbd "C-c <up>")  'windmove-up)
(global-set-key (kbd "C-c <down>")  'windmove-down)

WhiteSpace

一个可以帮你分辨屏幕上的空白是空格,TAB,还是换行的软件包。
作用:Python代码时混用TAB与空格。
不建议一直开启,可以在需要的时候临时开启即可。
M-x whitespace-mode
开启之后,所有换行位置都会被一个 $ ,空格处被标记一个 · ,而TAB处标记一个长长的空白符。

Flymake

一款实时语法检查工具!不输于Flycheck。

(use-package flymake
  :ensure nil
  :diminish (flymake " Flym.")
  :hook (prog-mode . flymake-mode)
  :bind (("M-n" . flymake-goto-next-error)
         ("M-p" . flymake-goto-prev-error)))

Prettify-Symbol-Mode

可以将一些符号替换成类似于连字符一样的美化符号。例如,可以将lambda关键字替换成希腊字母λ。

(defconst lisp--prrttify-symbols-alist
  '(("lambda" . ?λ ))
  )

(global-prettify-symbols-mode +1)

Abbrev

缩写快速扩展成目标字符。

  1. 先开启缩写词模式:M-x abbrev-mode
  2. 例如,输入yn然后键入C-x a i g (abbrev insert global),输入“Your name”之后,下次输入yn,再输入空格或者其他的符号就会自动替换为Your name。
  3. 这些被记忆下来的缩写词会被记录在~/.abbrevdefs文件中。你也可以自定义它的位置:
(setq abbrev-file-name
      "~/.emacs.d/abbrev_defs")

Eldoc

在Echo Area显示函数或者变量的签名/定义。
在Emacs 27上默认是开启的
通过hook的方式添加到编程模式中:

(add-hook 'prog-mode 'eldoc-mode)

或者手动开启:
M-x eldoc-mode

Hideshow

用以折叠或者展开代码块
M-x hs-minor-mode

(add-hook 'prog-mode 'hs-minor-mode)

命令 操作 hs-hide-all/hs-show-all 折叠/展开全部代码块 hs-hide-block/hs-show-block 折叠/展开当前代码块 hs-hide-initial-comment-block/hs-show-initial-comment-block 折叠/展开开始的注释块

ielm

一个功能弱化版本的交互式的Scratch。你可以在这里进行Emacs Lisp代码的测试。它完全是REPL交互式的。
M-x ielm

org

笔记,TODO,项目管理,日程管理,文档写作….

VC

用来操作版本控制系统的!
M-x C-x v ?来获取更多的命令参数。

Eshell

一个使用Elisp写成的Shell。
一个类似的软件是Term。

EWW

为emacs而写的Web浏览器,默认的搜索引擎是Duckduckgo。可以直接调用 M-x eww 来启动。