一.启动与退出:
开启.#emacs
退出:
C-x C-c: 退出emacs
二. 光标的移动:
M-a: 光标移动到当前句子的句首。
M-e: 光标移动到当前句子的句尾。
C-v: 光标移动到下一屏。
M-v:光标移动到上一屏。
三.删除与拷贝:
C-k : 删至行尾 (kill)
M-k : 删到一句子结尾(删到句点) (kill)
C-x u: Undo
C-y : 将粘贴板中的内容拷贝到当前光标位置。
C-x C-o: 将连续的多个空行合并成一个。
删除一个文本区域:
1. 把光标移动到区域的首字符
2. 键入C-@(即ctrl+shift+2),以设置标记
3. 把光标移动到区域的第一个字符(注意这必须是移动光标,而不能通过移动上下键来选定某个地方)
4.键入C-w,删除这个选定区域
如果在这个过程中忘记了区域的开始处,则用C-x C-x (两次C-x)来切换光标位置和标记位置。
Emacs在内部维持着一个记录着最近30次删除操作的环形队列。
复制一个文本区域到另一个地方:
1. 把光标移动到区域的首字符
2. 键入C-@(即ctrl+shift+2),以设置标记
3. 把光标移动到区域的第一个字符(注意这必须是移动光标,而不能通过移动上下键来选定某个地方)
4.键入M-w,拷贝这个选定区域到粘贴板
5. 用光标定位将要粘贴内容的地方,然后键入C-y ,拷贝成功。
如果删除错误,可以通过命令C-x u (Undo的意思)来取消先前的修改操作。
四. 查找和替换:
C-s : 激活emacs的查找工具,默认情况下查找与大小写无关的向前查找方式。
文本中符合查找的项均变颜色,此时可以用C-s,向前查看符合查询条件的语句,也可以C-r,向后查看符合查询条件的语句。
注意:要修改查询与大小写相关,必须修改~/.emacs文件,我好像没看见我的机器里有这个文件。
emacs支持正则字符串的匹配式查找。这个还未研究。
查找-替换:
1. 键入M-%(alt+shift+ 5 )
2. 键入查找字符串,回车
3. 键入替换字符串,回车
4. SPACE或y 表示替换当前字符串并移动到下一个匹配串
Del或n 表示不替换当前字符串,直接移动到下一个匹配串
! 进行全局替换,并要求不再提示
. 替换当前字符串,然后退出查找,替换操作
M-或q 退出查找-替换操作
^ 退到上一匹配位置
C-x r 开始递归编辑 M-C c退出递归编辑
五. 保存和打开文件
C-x C-s :保存文件
C-x C-w:另存文件
六: 多窗口
切分窗口:
C-x 2 : 将屏幕水平切分成2部分
C-x 3 : 将屏幕垂直切分成2部分
切换窗口:
C-x o : 移动到其他窗口
删除窗口:
C-x 0 : 删除当前窗口
C-x 1 : 删除当前窗口外的所有窗口
在当前窗口打开另外一个文件:
C-x C-f : 在当前窗口打开另外一个文件,文件名在缓冲区中输入。
C-x 4 C-f : 在其他窗口打开另外一个文件,文件名在缓冲区中输入。
创建新的框架:(即打开另外一个emacs的框架)
C-x 5 2 : 为同一个buffer创建一个新的框架
C-x 5 f : 创建一个新的框架,并且在其中打开一个新的文件
C-x 5 0 : 关闭当前框架
注意,不要用C-x C-c来关闭一个框架,因为这个命令将会关闭所有的框架,而不仅是当前框架,然后退出emacs。
七. 取消命令的执行
C-g : 取消命令的执行
emacs中etags的使用方法:
使用etags *.[ch] 就在当前目录中生成TAGS文件
在emacs中,把光标移动到函数名上 输入M . 就能跳到相应的函数定义处. 第一此使用时, emacs会询问TAGS文件的存放位置 缺省在当前目录下。输入M * 就能返回刚才的函数名处。输入切换到下一个tag上。
很好用。跟在vim下使用tags一样方便
tags的相关命令:
M-. :
M-* :
M-/ : 自动补齐
emacs还可以实现程序变量 得自动对齐功能。要达到这样的效果
int main() {
int aa;
unsigned int bb;
double cc;
}
选择区域,让后M-x align即可
=========================
常用命令
C-v 向上翻页
C-p 向上一行
C-b 向左一个字符 C-f 向右一个字符
M-b 向左一个单词 M-f 向右一个单词
C-a 移到行首 C-e 移到行尾
M-a 移到句首 M-e 移到句尾
M-< 移到文字最开始 M-> 移到文字最末尾
Backspace 删除光标前字符 C-d 删除光标后字符
M-Backspace 删除光标前字 M-d 删除光标后字
C-k 删除光标到行尾的字符
M-k 删除光标到句尾的字符
C-n 向下一行
M-v 向下翻页
C-u 8 C-f 向右移动 8 个字符,其中 8 和 C-f 都可以换成其它。
C-u 8 C-v 向上卷动 8 行(而不是 8 屏)。
C-u 8 * 键入 8 个 * 。
C-@ 移动光标 C-w 剪切/删除两次光标之间的文字
C-@ 移动光标 M-w 复制
C-k 删掉一行
C-y yank 粘贴/把删掉的拉回来
M-y 把过去删掉的拉回来
C-x u
C-_ 回退,Undo。
C-/
C-x C-c 退出
C-x C-f 打开文件。
C-x C-s 保存文件。
C-x C-b 列出缓冲区。
C-x b 回到某缓冲区。
C-x s 以提示方式存储每一个缓冲区。
C-x k 关闭缓冲区
C-x C-q 把文件设成只读,再按一遍设回去。
C-x f 设置每行字数。比如 C-u 20 C-x f 将每行字数设为 20。
C-M-/ 缩进一个区域
C-s 查找字符串。继续 C-s 搜索下一个;Backspace 搜索上一个;回车结束搜索。
C-r
C-s C-w 查找当前光标处的字符串
M-% 开始查找替换
M-x replace-string (可以用M-x repl[空格]s[TAB]键入)
字符串替换
M-x recover-file
恢复自动保存的文件
M-x fundamental-mode 撇号(')在此模式下被视为字的分隔符号
M-x text-mode 撇号(')在此模式下被视为字的一部分
切换到不同模式
C-h m 看当前模式的描述
M-; 插入注释
M+x comment-region: 块注释:
M+x uncomment-region: 取消块注释
C-g 停止执行过久的命令;取消数字参数;取消一个不想完成的命令。
C-x 1 除去其余窗格,只剩一个。
C-x 2 将屏幕平分为两个窗格
C-M-v 卷动下方的窗格
C-x o 将光标在两个窗格之间切换
C-x 4 C-f 在另外一个窗格里打开新文件
C-h 帮助
C-h c [命令] 得到命令的帮助
C-h k [命令] 得到命令的详细帮助
C-h a 命令查找
C-h i 阅读在线手册
Esc ! 执行 Shell 命令
C-u Esc ! 将 shell 指令执行的结果,输出到游标所在的位置。
C-x Esc Esc 查找命令历史
C-M-p 括号匹配
C-M-n 括号匹配
在左上角按 C-@ 然后在右下角按下列键,可完成矩形操作
C-x r k 剪切一个矩形块
C-x r y 粘贴一个矩形块
C-x r o 插入一个矩形块
C-x r c 清除一个矩形块内的内容(使之变成空白)
M-x dired 进入 directory edit 模式
C-x d DITTO
dired模式下的操作
m 将文件打上标记。
d 将文件打上删除标记。
u 去除文件的标记。
D 立即删除文件。
x 删除标有删除标记的文件。
~ 将所有的备份文件打上删除标记,我最喜欢的一个功能。
# 将所有的文件名以“#”开头的文件打上删除标记。
o 将文件在另外一下窗口打开,回车是在当前窗口打开,C-o是在另外一个窗口打开但是不激活它。
! 或者X对当前的文件的操作,比如要用xpdf打开一个pdf文件,则可以! xpdf在一个文件上即可。
但是如果有mark的文件,则命令作用于mark的文件。在dired-x模式下可以猜要执行的命令。
X 功能同!。
g 如果外部的操作改变了文件,并不能直接反映到dired-mode中,
比如在外部删除了一个文件,用这个命令升级一下当前的dired buffer。
^ 到上一层目录
+ 创建文件夹
C copy
R rename
M chmod
G chgrp
O chown
P print
Z compress/uncompress
i 将光标所在行的目录内容显示在当前buffer中
C-u k 把光标放在子目录的header上按此组合,将会把子目录内容从当前buffer移除
* s 给当前所有文件打标记
* ! 取消当前所有的标记
* / 给当前所有文件夹打标记
* * 给当前所有可执行文件打上标记
* t 反选(有*的变没,没*的变有)
不同模式
大纲模式
M-x outline-mode 大纲模式
C-c C-r 全部折叠
C-c C-a 全部展开
C-c C-d 把当前主题折叠
C-c C-s 把当前主题展开
M-m 光标移动到第一个非空字符