一、emacs基本操作

1.选择文本:

1)C-return 或 C-@,然后移动光标到起点或终点

2)选中段落:M-h

3)选中整个页面:C-x C-p

4)选中整个编辑窗口内容:C-x h

2.复制选中的文本(不删除):M-w

3.剪切选中的文本(删除):C-w

4.粘贴文本:C-y

5.移动光标:

1)向下移动一行:C-n

2)向上移动一行:C-p

3)前进移动一个字符位(向右):C-f

4)后退移动一个字符位(向左):C-b

5)向下翻一个整屏:C-v

6)向上翻一个整屏:M-v

7)光标向右前移一个单词位:M-f

8)光标向左后退一个单词位:M-b

9)移到行首:C-a

10)移到行尾:C-e

11)移到句首:M-a

12)移到句尾:M-e

13)移到段首:M-{

14)移到段尾:M-}

15)光标移到文件头:M-<

16)光标移到文件尾:M->

17)光标前进移动一页:C-x ]

18)光标后退移动一页:C-x [

19)重复执行后续命令n次:M-n ,n是指执行次数

20)关闭(删除)当前缓冲区:C-x k

21)删除当前窗口: C-x 0

22)删除当前窗口外的所有窗口:C-x 1

23)创建缓冲区或者切换缓冲区(由输入的缓冲区名字是否存在决定) :C-x b

24)保存缓冲区('-'存缓冲区,'n'-不保存缓冲区,'!'-保存所有缓冲区,'.'-只保存当前缓冲区缓冲区,'q'-取消保存指令,且不保存当前缓冲区:C-x s

24)切换到下一个窗口:C-x o(上下窗口)或者方向键列出缓冲: C-x C-b

25)保存当前缓冲区:C-x C-s

26)保存所有缓冲区: C-x s

27)寻找文件,打开文件并将其读到缓冲区中: C-x C-f

28)离开 Emacs: C-x C-c

29)撤销:C-x u , C-/

30)向前搜索:C-s

31)向后搜索:C-r

32)终止命令: C-g

33)列出缓冲区:C-x C-b

6.撤销和重做

1)撤销最近一次的操作:Ctrl-x u

2)取消正在进行的命令:Ctrl-g:

3)重做最近一次撤销的操作:Ctrl-x Ctrl-u

7.搜索和替换

1)向前搜索:Ctrl-s

2)向后搜索:Ctrl-r

3)查询和替换:M-%

8.删除操作

1)删除光标位置至行尾:C-k

2)删除光标后面的所有内容:M-k

3)删除光标位置的字符:C-d

删除光标右侧字符 C-d delete-char
移除光标右侧词 M-d kill-word
移除光标左侧词 M-DEL backward-kill-word
移除右侧直到句子结尾 M-k kill-sentence
移除右侧直到行尾 C-k kill-line

9.矩形操作

记录一些关于Emacs这个神器的奇淫技巧。不定时更新。

矩形操作

Emacs所有跟矩形操作的命令都是以 C-x r 为前缀,其区域选择与普通的区域选择的快捷键一样: C-space ,只是在执行矩形操作时,Emacs会将选择的起点和终点作为对角,其中的内容作为矩形区域。常用快捷键:

C-space set-mark-command 标记矩形区块的一个角(光标标记其相对的角)。
C-x r t string-rectangle 用字符串填充矩形区域
C-x r k kill-rectangle 剪切当前的矩形区块,并将其保存在一个特殊的矩形区块缓冲区中。
C-x r d delete-rectangle 删除当前的矩形区块,并不为粘贴而保存它。
C-x r c clear-rectangle 清除当前的矩形区块,使用空白字符替换整个区域。
C-x r o open-rectangle 打开当前的矩形区块,使用空白字符填充整个区域,并将该矩形区块的所有文本移动到右边。
C-x r y yank-rectangle 在光标处,粘贴上一次剪切的矩形区块的内容,将所有的现有文本移动到右边。

寄存器操作

  • 文本操作:
C-x r s R 保存选中的区域到寄存器R
C-x r r R 保存矩形区域
C-x r i R 读取寄存器R的内容并插入到光标处
  • Buffer/Window/Frame操作:
C-x r SPC R 保存Buffer及光标位置
C-x r w R 保存当前Window的配置
C-x r f R 保存当前Frame的配置
C-x r j R 恢复寄存器R的内容
M-x list-registers    ; 显示所有寄存器中的内容
M-x view-register R   ; 查看寄存器R中的内容

书签操作:

C-x r m Bookmark bookmark-set 设置一个名为 Bookmark 的书签。
C-x r l bookmarks-bmenu-list 列出所有已保存的书签。
  bookmark-delete 删除一个书签。
C-x r b Bookmark bookmark-jump 跳转至名为 Bookmark 的书签中所设置的位置。
  bookmark-save 将所有的书签保存到书签文件 ~/.emac.bmk 中。

删除空行:

M-x flush-lines RET ^$ RET

flush-lines 命令的本意是删除buffer中match随后的regexp的行,而 ^$ 就代表空行,于是这就是删除空行的操作。

二、无插件.emacs配置文件:

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(custom-enabled-themes '(deeper-blue))
 '(global-display-line-numbers-mode t)
 ;; 高亮当前行
 ;;'(global-hl-line-mode 1)

 
 )

(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.

 )

;; 启动时让emacs窗口最大化
(add-to-list 'default-frame-alist '(fullscreen . maximized))

;; 不显示工具栏
;;(tool-bar-mode 0)
;; 不显示菜单栏
(menu-bar-mode 0)

;; 不保留备份文件
(setq make-backup-files nil)

;; 关闭启动时的欢迎界面
(setq inhibit-splash-screen t)

;; 行号的设置
;; 在标记区域左侧显示行号
(require 'linum)
(global-linum-mode t)
;; 在标记右侧显示相对行号
(setq display-line-numbers-type 'relative)
;; 在状态行显示行列信息
(column-number-mode t)
;; 后面的值就是颜色值(可以自定义)
;; 行号背景
(set-face-background 'linum "#110011")
;; 行号前景
(set-face-foreground 'linum "#CD661D")

;; 自动完成括号补全
(electric-pair-mode 1)
(setq electric-pair-pairs '(
                               (?\“ . ?\”)
                               (?\《 . ?\》)
                               (?\「 . ?\」)
                               (?\【 . ?\】)
                               (?\{ . ?\})
                               (?\< . ?\>)
                          ))

;; 设置开始标记选择文本的快捷键
(define-key global-map [C-return] 'set-mark-command)