行号显示及设置

Table of Contents

1. 如何显示行号

让当前的 buffer 显示行号:

M-x linum-mode

或者让所有 buffer 显示行号:

M-x global-linum-mode

2. 启动 Emacs 自动显示行号

如果要让 Emacs 启动后自动显示行号,在配置文件里加入:

(global-linum-mode)

3. 只对打开的文件显示行号

Emacs 打开文件会把文件内容放置到 buffer 中,Emacs 有很多 buffer,但并不是每个 buffer 都是文件,如果使用(global-linum-mode),会让所有的 buffer 都显示行号。对于一些交互式开发一类的 buffer 其实没有必要显示行号。可以在你的 Emacs 配置文件中加入以下代码,让非打开文件的 buffer 不显示行号:

(defun my-linum-mode ()
  (if buffer-file-name
      (linum-mode)))

(define-globalized-minor-mode my-global-linum-mode linum-mode my-linum-mode)

(my-global-linum-mode)

4. 设置行号显示列的宽度

默认显示的行号会紧挨着文本内容,如图:

default-show-line-number.png

在文本内容较多的情况下会显得非常紧凑,如果行首是以数字开头的,更让人难以辨认,所以我们希望行号显示和文本区域中间有间隔,就像下图中这样:

show-line-number.png

在配置文件中加入以下代码即可:

(setq linum-format "%4d ")

5. 设置行号字体的颜色

上面第二张图中,我的行号颜色是黄色,Emacs 可以自定义显示颜色:

M-x customize-face

输入 linum,然后可以设置 Foreground 等等。设置后按 C-x C-s 保存。保存后 Emacs 会在配置文件中加入类似以下的 Emacs Lisp 代码:

(custom-set-faces
 '(linum ((t (:inherit (shadow default) :foreground "yellow")))))