文件操作
C-x C-f 打开文件,出现提示时输入/username@host:filepath可编辑FTP文件
C-x C-v 打开一个文件,取代当前缓冲区
C-x C-s 保存文件
C-x C-w 存为新文件
C-x i 插入文件
C-x C-q 切换为只读或者读写模式
C-x C-c 退出Emacs
编辑操作
C-f 前进一个字符
C-b 后退一个字符
M-f 前进一个字
M-b 后退一个字
C-a 移到行首
C-e 移到行尾
M-a 移到句首
M-e 移到句尾
C-p 后退一行
C-n 前进一行
M-x goto-line 跳到指定行
C-v 向下翻页
M-v 向上翻页
M-< 缓冲区头部
M-> 缓冲区尾部
C-M-f 向前匹配括号
C-M-b 向后匹配括号
C-l 当前行居中
M-n or C-u n 重复操作随后的命令n次
C-u 重复操作随后的命令4次
C-u C-u 重复操作随后的命令8次
C-x ESC ESC 执行历史命令记录,M-p选择上一条命令,M-n选择下一条命令
C-d 删除一个字符
M-d 删除一个字
C-k 删除一行
M-k 删除一句
C-w 删除标记区域
C-y 粘贴删除的内容
注意:C-y可以粘贴连续C-k删除的内容;先按C-y,然后按M-y可以选择粘贴被删除的内容
C-@ 标记开始区域
C-x h 标记所有文字
C-x C-x 交换光标位置和区域标记区开头
M-w 复制标记区域
C-_ or C-x u 撤消操作
执行SHELL命令
M-x shell 打开SHELL
M-! 执行SHELL命令 (shell-command)
M-1 M-! 执行SHELL命令,命令输出插入光标位置,不打开新输出窗口
M-| 针对某一特定区域执行命令(shell-command-on-region), 比如 C-x h M-|uuencode
窗口操作
C-x 0 关闭本窗口
C-x 1 只留下一个窗口
C-x 2 垂直均分窗口
C-x 3 水平均分窗口
C-x o 切换到别的窗口
C-x s 保存所有窗口的缓冲
C-x b 选择当前窗口的缓冲区
C-x ^ 纵向扩大窗口
C-x } 横向扩大窗口
缓冲区列表操作
C-x C-b 打开缓冲区列表
d or k 标记为删除
~ 标记为未修改状态
% 标记为只读
s 保存缓冲
u 取消标记
x 执行标记的操作
f 在当前窗口打开该缓冲区
o 在其他窗口打开该缓冲区
目录操作
C-x d 打开目录模式
s 按日期/文件名排序显示
v 阅读光标所在的文件
q 退出阅读的文件
d 标记为删除
x 执行标记
D 马上删除当前文件
C 拷贝当前文件
R 重命名当前文件
+ 新建文件夹
Z 压缩文件
! 对光标所在的文件执行SHELL命令
g 刷新显示
i 在当前缓冲区的末尾插入子目录的内容
[n]m 标记光标所在的文件,如果指定n,则从光标所在的文件起后n个文件被标记
[n]u 取消当前光标标记的文件,n的含义同上
t 反向标记文件
%-m 正则标记
q 退出目录模式
说明:在目录模式中,如果输入!,在命令行中包含*或者?,有特殊的含义。*匹配当前光标所在的文件和所有标记的文件,?分别在每一个标记的文件上执行该命令。
程序编译
M-x compile 执行编译操作
M-x gdb GDB排错
M-x dbx DBX排错
M-x xdb XDB排错
M-x sdb SDB排错
搜索模式
C-s key 向前搜索
C-s 查找下一个
ENTER 停止搜索
C-r key 反向搜索
C-s C-w 以光标所在位置的字为关键字搜索
C-s C-s 重复上次搜索
C-r C-r 重复上次反向搜索
C-s ENTER C-w 进入单词搜索模式
C-r ENTER C-w 进入反向单词搜索模式
M-x replace-string ENTER search-string ENTER 替换
M-% search-string ENTER replace-string ENTER 交互替换
C-r 在进入查找/替换模式后,该命令进入迭代编辑模式
C-M-x 退出迭代编辑模式,返回到查找/替换模式
C-M-s 向前正则搜索
C-M-r 向后正则搜索
C-M-% 正则交互替换
SHELL模式
C-c C-c 相当于Bash下的C-c
C-c C-z 相当于Bash下的C-z
C-c C-d 相当于Bash下的C-d
M-p 执行前一条命令
C-n 执行下一条命令
C-c C-o 删除最后一条命令产生的输出
C-c C-r 屏幕滚动到最后一条命令输出的开头
C-c C-e 屏幕滚动到最后一套命令输出的结尾
C-c C-p 查看前一条命令的输出
C-c C-n 查看后一条命令的输出
打印资料
M-x print-buffer 先使用pr,然后使用lpr
M-x lpr-buffer 直接使用lpr
M-x print-region
M-x lpr-region
收发邮件
M-x mail 发送邮件, C-c C-s 发送,C-c C-c 发送并退出
M-x rmail 接受邮件
置换]
-----------------------------
C-t 字符置换
M-t 字置换
C-x C-t 行置换
C-M-t 表达式置换
[大小写]
-----------------------------
M-u 将一个字设置为大写
M-l 将一个字设置为小写
M-c 将一个字首字母设置为大写
C-x C-u 将一个区域设置为大写
C-x C-l 将一个区域设置为小写
[补全]
-----------------------------
TAB 最大程度地补全命令
SPC 补全命令中的一个字
RET 完成并执行一个命令
? 列出命令所有可能的后续部分
M-p 列出在当前命令之前输入的命令
M-n 列出在当前命令之后输入的命令
M-r 用规则表达式在命令历史记录中向后搜寻
M-s 用规则表达式在命令历史记录中向前搜寻
C-x ESC ESC 重复执行上一条命令
[Shells]
-----------------------------
M-! 执行一个shell命令
M-| 在一个区域上执行sheel命令
C-u M-| 通过shell命令过滤区域
M-x shell 在窗口中启动一个shell
[缩进]
-----------------------------
C-x TAB indent-rigidly
[规则表达式]
-----------------------------
. 除换行符外的所有单个字符
* 零个或多个重复
+ 一个以上的重复
? 零个或一个重复
| 选择(or)
(…) 分组
n 与第n个组相同的文本
b At work break
B Not at work break
[编程]
-----------------------------
C-M-a 到函数首部
C-M-e 到函数尾部
C-M-h 标记一个函数
[GDB调试]
-----------------------------
.启动gdb
gdb bayonne
gdb --args bayonne -vvv script.scr
.利用帮助
help 命令类别名
help 命令名
.调试指定程序
file /home/cnscn/a.out
.运行程序
r[un]
r[un] -vvv script.scr
.设置断点
按照函数名设置断点
b[reak] main
b[reak] 'namespace::Class::func()'
.按照文件名和行数设置断点
b[reak] methods.cpp:523
.检查状态
检查堆栈
b[ack]t[race]
up
down
检查当前函数的源代码
l[ist]
检查/改变变量值
p[rint] var
p[rint] ptr->mem
p[rint] *ptr
p[rint] ('namespace::Class') *this
p[rint] (('namespace::Class') *this)->a.b.c
p[rint] var=value
检查类
ptype ptr
set print object on
whatis ptr
检查并启用/禁用断点
set breakpoint pending on
info b[reakpoints]
enable [N]
disable [N]
检查并切换线程
info th[reads]
thread N
检查寄存器
info reg
info reg esp
检查内存
x/10s *0xaabbccdd
x/5x var
.继续运行
运行到某一行即停止,当前函数返回时也停止
advance source.cpp:123
运行到当前函数返回为止
fin[ish]
继续运行直到程序结束或下一个断点
c[ontinue]
.信号
检查当前的信号处理策略
info signals
改变信号处理策略
handle SIGINT pass
handle SIGINT nostop
.与Emacs配合使用
建议使用Emacs-23。设定别名
alias emacs='emacs --enable-font-backend -fn "Dejavu Sans Mono-12"'
修改~/.emacs,把下面这一行加入
(defvar gdb-many-windows t)
在Emacs里启动gdb
M-x gdb
开启多窗口模式
M-x gdb-many-windows
进入gud-tooltip-mode
M-x gud-tooltip-mode
[自定义设置]
-----------------------------
.设定预设的输入法,将下面这一行加入到 ~/.emacs 档案中:
(custom-set-variables '(default-input-method "chinese-array30"))
在启动 Emacs 后,您就可以直接以 C-\ 指令在英文输入和行列输入法之间切换了
[FAQ]
-----------------------------
.但是有时候用行列打不出来,需要切换成注音输入法。
有两种方式可以达成这个目的:
a. C-x RET C-\ chinese-zozy RET
b. C-u C-\ chinese-zozy RET
作者建议您使用第二种方式,因为它同时也是作为两种输入法间切换的指令。
接下来您只要键入 C-u C-\ RET 就可以在行列和注音这两者间作切换了。
(注意:中英输入法间的切换还是以 C-\ 指令为之。)
以后我们在不同中文输入法间作切换将可以 C-u C-u C-\ 达成,
原本作者是建议以 M-\ 来补足这个想法,
但是 M-\ 很不幸已经作为 delete-horizontal-space 指令了。
不然 C-\ 搭配 M-\ 不是很漂亮吗?
这样子您应该可以理解如何使用中文输入环境了吧!
. narrow 功能.用于隐藏文本,在进行string replace时十分有用选中要保留的文本, 然后C-x n n 或M-x narrow-to-region 要展开文本: C-x n w 或 M-x widen
. emacs的自动排版用M-q
. window下面用emacs远程编辑文件,可以用 ftp方式:
C-x C-f RET /ftp:user@host:/path/test.txt
ssh方式: 下载plink.exe,将其路径加入PATH变量
C-x C-f RET /ftp:user@host:/path/test.txt
. emacs下的su 可以用C-x C-f安下列方式实现su文件编辑
/su::/etc/foobar.conf
. 用空格代替tab (setq-default indent-tabs-mode nil)
M-x untabify
. 指定文件的编码方式:C-x RET f
. 捕捉程序的输出可以用
C-u M-! ls
. 如何在dos和unix文件类型之间转化
C-x RET f unix 转化成Unix文件格式
C-x RET f dos 转化成dos文件格式
. hexl 将二进制文件转化成emacs十六进制模式可以用的格式
.键绑定
1. 记住在所有要绑定到快捷键的函数上面加上(interactive)关键字,否则,会发生(wrong-type-argument commandp my-command)的错误
对于要绑定到鼠标的函数,要在函数声明中指定参数(event),在修饰段,加入(interactive "e"),然后才能绑定
2. 对于要传递参数的函数,可以用lambda匿名函数来实现
(global-set-key [(prior)]
'(lambda () "Previous" (interactive) (scroll-down 1)))
或则
(global-set-key [(prior)]
(function (lambda () "Previous" (interactive) (scroll-down 1))))
记住对于 global-set-key函数需要的第二个参数是一个symble或者是list
3. (read-event)可以得到emacs的键码的内部表示
4. 如果你觉得每次为了关闭一个buffer都要按C-x k很麻烦,那么你可以这样绑定:
(global-set-key (kbd "<M-f4>") (lambda () (interactive) (kill-buffer (current-buffer)))
gud-tooltip-mode
gud-watch 观察变量
1 典型的工作流
在两个子窗口中对比文件内容
打开更多的窗口以参考其他信息.
对某个窗口内容比较有兴趣,跳转到该窗口,将该窗口最大化
看完最大化的窗口内容后,undo最大化操作,重新回到早先的多个小窗口模式以便继续纵览全局
2 将子窗口自动编号,然后按M-0…9跳转(最爱)
安装window-numbering.el,然后在.emacs中添加以下代码,
(require 'window-numbering)
(window-numbering-mode 1)
3 undo/redo之前的窗口操作(最爱)
安装Winner Mode,然后在.emacs中添加以下代码,
(winner-mode 1)
;; copied from http://puntoblogspot.blogspot.com/2011/05/undo-layouts-in-emacs.html
(global-set-key (kbd "C-x 4 u") 'winner-undo)
(global-set-key (kbd "C-x 4 r") 'winner-redo)
4 焦点移动到下一窗口(常用)
M-x other-window,快捷键是`C-x o`.
5 水平/垂直切分当前窗口(常用)
快捷键C-x 2/3
6 将当前子窗口最大化(常用)
M-x delete-other-windows,快捷键`C-x 1`.
7 删除当前子窗口(偶尔用)
M-x delete-window,快捷键`C-x 0`.
8 移动焦点到上下左右的窗口(基本不用)
因我较喜欢vi快捷键,所以我安装了Evil Mode.快捷键和Vi一样.C-w h/j/k/l移动至各方向的子窗口.
9 存储/载入窗口布局到register(基本不用)
`C-x r w <register>`存储,`C-x r j <register>`载入.
C-x C-f 打开文件,出现提示时输入/username@host:filepath可编辑FTP文件
C-x C-v 打开一个文件,取代当前缓冲区
C-x C-s 保存文件
C-x C-w 存为新文件
C-x i 插入文件
C-x C-q 切换为只读或者读写模式
C-x C-c 退出Emacs
编辑操作
C-f 前进一个字符
C-b 后退一个字符
M-f 前进一个字
M-b 后退一个字
C-a 移到行首
C-e 移到行尾
M-a 移到句首
M-e 移到句尾
C-p 后退一行
C-n 前进一行
M-x goto-line 跳到指定行
C-v 向下翻页
M-v 向上翻页
M-< 缓冲区头部
M-> 缓冲区尾部
C-M-f 向前匹配括号
C-M-b 向后匹配括号
C-l 当前行居中
M-n or C-u n 重复操作随后的命令n次
C-u 重复操作随后的命令4次
C-u C-u 重复操作随后的命令8次
C-x ESC ESC 执行历史命令记录,M-p选择上一条命令,M-n选择下一条命令
C-d 删除一个字符
M-d 删除一个字
C-k 删除一行
M-k 删除一句
C-w 删除标记区域
C-y 粘贴删除的内容
注意:C-y可以粘贴连续C-k删除的内容;先按C-y,然后按M-y可以选择粘贴被删除的内容
C-@ 标记开始区域
C-x h 标记所有文字
C-x C-x 交换光标位置和区域标记区开头
M-w 复制标记区域
C-_ or C-x u 撤消操作
执行SHELL命令
M-x shell 打开SHELL
M-! 执行SHELL命令 (shell-command)
M-1 M-! 执行SHELL命令,命令输出插入光标位置,不打开新输出窗口
M-| 针对某一特定区域执行命令(shell-command-on-region), 比如 C-x h M-|uuencode
窗口操作
C-x 0 关闭本窗口
C-x 1 只留下一个窗口
C-x 2 垂直均分窗口
C-x 3 水平均分窗口
C-x o 切换到别的窗口
C-x s 保存所有窗口的缓冲
C-x b 选择当前窗口的缓冲区
C-x ^ 纵向扩大窗口
C-x } 横向扩大窗口
缓冲区列表操作
C-x C-b 打开缓冲区列表
d or k 标记为删除
~ 标记为未修改状态
% 标记为只读
s 保存缓冲
u 取消标记
x 执行标记的操作
f 在当前窗口打开该缓冲区
o 在其他窗口打开该缓冲区
目录操作
C-x d 打开目录模式
s 按日期/文件名排序显示
v 阅读光标所在的文件
q 退出阅读的文件
d 标记为删除
x 执行标记
D 马上删除当前文件
C 拷贝当前文件
R 重命名当前文件
+ 新建文件夹
Z 压缩文件
! 对光标所在的文件执行SHELL命令
g 刷新显示
i 在当前缓冲区的末尾插入子目录的内容
[n]m 标记光标所在的文件,如果指定n,则从光标所在的文件起后n个文件被标记
[n]u 取消当前光标标记的文件,n的含义同上
t 反向标记文件
%-m 正则标记
q 退出目录模式
说明:在目录模式中,如果输入!,在命令行中包含*或者?,有特殊的含义。*匹配当前光标所在的文件和所有标记的文件,?分别在每一个标记的文件上执行该命令。
程序编译
M-x compile 执行编译操作
M-x gdb GDB排错
M-x dbx DBX排错
M-x xdb XDB排错
M-x sdb SDB排错
搜索模式
C-s key 向前搜索
C-s 查找下一个
ENTER 停止搜索
C-r key 反向搜索
C-s C-w 以光标所在位置的字为关键字搜索
C-s C-s 重复上次搜索
C-r C-r 重复上次反向搜索
C-s ENTER C-w 进入单词搜索模式
C-r ENTER C-w 进入反向单词搜索模式
M-x replace-string ENTER search-string ENTER 替换
M-% search-string ENTER replace-string ENTER 交互替换
C-r 在进入查找/替换模式后,该命令进入迭代编辑模式
C-M-x 退出迭代编辑模式,返回到查找/替换模式
C-M-s 向前正则搜索
C-M-r 向后正则搜索
C-M-% 正则交互替换
SHELL模式
C-c C-c 相当于Bash下的C-c
C-c C-z 相当于Bash下的C-z
C-c C-d 相当于Bash下的C-d
M-p 执行前一条命令
C-n 执行下一条命令
C-c C-o 删除最后一条命令产生的输出
C-c C-r 屏幕滚动到最后一条命令输出的开头
C-c C-e 屏幕滚动到最后一套命令输出的结尾
C-c C-p 查看前一条命令的输出
C-c C-n 查看后一条命令的输出
打印资料
M-x print-buffer 先使用pr,然后使用lpr
M-x lpr-buffer 直接使用lpr
M-x print-region
M-x lpr-region
收发邮件
M-x mail 发送邮件, C-c C-s 发送,C-c C-c 发送并退出
M-x rmail 接受邮件
置换]
-----------------------------
C-t 字符置换
M-t 字置换
C-x C-t 行置换
C-M-t 表达式置换
[大小写]
-----------------------------
M-u 将一个字设置为大写
M-l 将一个字设置为小写
M-c 将一个字首字母设置为大写
C-x C-u 将一个区域设置为大写
C-x C-l 将一个区域设置为小写
[补全]
-----------------------------
TAB 最大程度地补全命令
SPC 补全命令中的一个字
RET 完成并执行一个命令
? 列出命令所有可能的后续部分
M-p 列出在当前命令之前输入的命令
M-n 列出在当前命令之后输入的命令
M-r 用规则表达式在命令历史记录中向后搜寻
M-s 用规则表达式在命令历史记录中向前搜寻
C-x ESC ESC 重复执行上一条命令
[Shells]
-----------------------------
M-! 执行一个shell命令
M-| 在一个区域上执行sheel命令
C-u M-| 通过shell命令过滤区域
M-x shell 在窗口中启动一个shell
[缩进]
-----------------------------
C-x TAB indent-rigidly
[规则表达式]
-----------------------------
. 除换行符外的所有单个字符
* 零个或多个重复
+ 一个以上的重复
? 零个或一个重复
| 选择(or)
(…) 分组
n 与第n个组相同的文本
b At work break
B Not at work break
[编程]
-----------------------------
C-M-a 到函数首部
C-M-e 到函数尾部
C-M-h 标记一个函数
[GDB调试]
-----------------------------
.启动gdb
gdb bayonne
gdb --args bayonne -vvv script.scr
.利用帮助
help 命令类别名
help 命令名
.调试指定程序
file /home/cnscn/a.out
.运行程序
r[un]
r[un] -vvv script.scr
.设置断点
按照函数名设置断点
b[reak] main
b[reak] 'namespace::Class::func()'
.按照文件名和行数设置断点
b[reak] methods.cpp:523
.检查状态
检查堆栈
b[ack]t[race]
up
down
检查当前函数的源代码
l[ist]
检查/改变变量值
p[rint] var
p[rint] ptr->mem
p[rint] *ptr
p[rint] ('namespace::Class') *this
p[rint] (('namespace::Class') *this)->a.b.c
p[rint] var=value
检查类
ptype ptr
set print object on
whatis ptr
检查并启用/禁用断点
set breakpoint pending on
info b[reakpoints]
enable [N]
disable [N]
检查并切换线程
info th[reads]
thread N
检查寄存器
info reg
info reg esp
检查内存
x/10s *0xaabbccdd
x/5x var
.继续运行
运行到某一行即停止,当前函数返回时也停止
advance source.cpp:123
运行到当前函数返回为止
fin[ish]
继续运行直到程序结束或下一个断点
c[ontinue]
.信号
检查当前的信号处理策略
info signals
改变信号处理策略
handle SIGINT pass
handle SIGINT nostop
.与Emacs配合使用
建议使用Emacs-23。设定别名
alias emacs='emacs --enable-font-backend -fn "Dejavu Sans Mono-12"'
修改~/.emacs,把下面这一行加入
(defvar gdb-many-windows t)
在Emacs里启动gdb
M-x gdb
开启多窗口模式
M-x gdb-many-windows
进入gud-tooltip-mode
M-x gud-tooltip-mode
[自定义设置]
-----------------------------
.设定预设的输入法,将下面这一行加入到 ~/.emacs 档案中:
(custom-set-variables '(default-input-method "chinese-array30"))
在启动 Emacs 后,您就可以直接以 C-\ 指令在英文输入和行列输入法之间切换了
[FAQ]
-----------------------------
.但是有时候用行列打不出来,需要切换成注音输入法。
有两种方式可以达成这个目的:
a. C-x RET C-\ chinese-zozy RET
b. C-u C-\ chinese-zozy RET
作者建议您使用第二种方式,因为它同时也是作为两种输入法间切换的指令。
接下来您只要键入 C-u C-\ RET 就可以在行列和注音这两者间作切换了。
(注意:中英输入法间的切换还是以 C-\ 指令为之。)
以后我们在不同中文输入法间作切换将可以 C-u C-u C-\ 达成,
原本作者是建议以 M-\ 来补足这个想法,
但是 M-\ 很不幸已经作为 delete-horizontal-space 指令了。
不然 C-\ 搭配 M-\ 不是很漂亮吗?
这样子您应该可以理解如何使用中文输入环境了吧!
. narrow 功能.用于隐藏文本,在进行string replace时十分有用选中要保留的文本, 然后C-x n n 或M-x narrow-to-region 要展开文本: C-x n w 或 M-x widen
. emacs的自动排版用M-q
. window下面用emacs远程编辑文件,可以用 ftp方式:
C-x C-f RET /ftp:user@host:/path/test.txt
ssh方式: 下载plink.exe,将其路径加入PATH变量
C-x C-f RET /ftp:user@host:/path/test.txt
. emacs下的su 可以用C-x C-f安下列方式实现su文件编辑
/su::/etc/foobar.conf
. 用空格代替tab (setq-default indent-tabs-mode nil)
M-x untabify
. 指定文件的编码方式:C-x RET f
. 捕捉程序的输出可以用
C-u M-! ls
. 如何在dos和unix文件类型之间转化
C-x RET f unix 转化成Unix文件格式
C-x RET f dos 转化成dos文件格式
. hexl 将二进制文件转化成emacs十六进制模式可以用的格式
.键绑定
1. 记住在所有要绑定到快捷键的函数上面加上(interactive)关键字,否则,会发生(wrong-type-argument commandp my-command)的错误
对于要绑定到鼠标的函数,要在函数声明中指定参数(event),在修饰段,加入(interactive "e"),然后才能绑定
2. 对于要传递参数的函数,可以用lambda匿名函数来实现
(global-set-key [(prior)]
'(lambda () "Previous" (interactive) (scroll-down 1)))
或则
(global-set-key [(prior)]
(function (lambda () "Previous" (interactive) (scroll-down 1))))
记住对于 global-set-key函数需要的第二个参数是一个symble或者是list
3. (read-event)可以得到emacs的键码的内部表示
4. 如果你觉得每次为了关闭一个buffer都要按C-x k很麻烦,那么你可以这样绑定:
(global-set-key (kbd "<M-f4>") (lambda () (interactive) (kill-buffer (current-buffer)))
gud-tooltip-mode
gud-watch 观察变量
1 典型的工作流
在两个子窗口中对比文件内容
打开更多的窗口以参考其他信息.
对某个窗口内容比较有兴趣,跳转到该窗口,将该窗口最大化
看完最大化的窗口内容后,undo最大化操作,重新回到早先的多个小窗口模式以便继续纵览全局
2 将子窗口自动编号,然后按M-0…9跳转(最爱)
安装window-numbering.el,然后在.emacs中添加以下代码,
(require 'window-numbering)
(window-numbering-mode 1)
3 undo/redo之前的窗口操作(最爱)
安装Winner Mode,然后在.emacs中添加以下代码,
(winner-mode 1)
;; copied from http://puntoblogspot.blogspot.com/2011/05/undo-layouts-in-emacs.html
(global-set-key (kbd "C-x 4 u") 'winner-undo)
(global-set-key (kbd "C-x 4 r") 'winner-redo)
4 焦点移动到下一窗口(常用)
M-x other-window,快捷键是`C-x o`.
5 水平/垂直切分当前窗口(常用)
快捷键C-x 2/3
6 将当前子窗口最大化(常用)
M-x delete-other-windows,快捷键`C-x 1`.
7 删除当前子窗口(偶尔用)
M-x delete-window,快捷键`C-x 0`.
8 移动焦点到上下左右的窗口(基本不用)
因我较喜欢vi快捷键,所以我安装了Evil Mode.快捷键和Vi一样.C-w h/j/k/l移动至各方向的子窗口.
9 存储/载入窗口布局到register(基本不用)
`C-x r w <register>`存储,`C-x r j <register>`载入.