基本文件操作
C-x, C-f (fopen) 新建或打开一个文件
C-x C-s 保存文件
C-x C-w 另存为文件
C-x C-v 关闭当前缓冲区文件并打开新文件
C-x i 在当前光标处插入文件
C-x b 新建/切换缓冲区
C-x C-b 显示缓冲区列表
C-x k 关闭当前缓冲区
C-x C-c (cease)关闭emacs
窗口命令
窗口命令比较常用,尤其是编辑多个文件的时候,你可以打开多个窗口,可以提 高编辑效率。
C-x 2 水平分割窗格
C-x 3 垂直分割窗格
C-x o 切换至其他窗格
C-x 0 关闭窗格
C-x 1 关闭除了光标所在窗格外所有窗格
光标移动
C-f 后一个字符
C-b 前一个字符
C-p 上一行
C-n 下一行
M-f 后一个单词
M-b 前一个单词
C-a 行首
C-e 行尾
C-v 向下翻一页
M-v 向上翻一页
M-< 到文件开头
M-> 到文件末尾 (ctrl shirft+V)
文本编辑
这里面包括了复制粘贴剪切删除等常用的操作命令。
注意,在这里,移除包括了 剪切和删除两个概念,要区分清楚。
C-x-- 调小字体
C-x-+ 调大字体
C-u n / M-n复执行后一个命令n次
C-d 删除后一个字符
M-d 删除后一个单词
Del 删除前一个字符
M-Del 删除前一个单词
C-k 移除一行
C-@ 设定标志位(主要是为了粘贴剪切以及删除使用)
C-w 移除标记区域的内容(剪切)
M-w 复制标记区域的内容(复制)
C-y 召回(yank)复制/移除的区域/行(粘贴)
M-y 召回更早的内容 (在kill缓冲区内循环)
C-x C-t 交换两行的位置
M-u 使从光标位置到单词结尾处的字母变成大写
M-l 与M-u相反
M-c 使从光标位置开始的单词的首字母变为大写
C-t 交换两个字符的位置
M-t 交换两个单词的位置
一些重要的命令
C-/ undo/redo
C-x u undo/redo
C-g 停止当前运行/输入的命令
C-x u/C-_ 撤销前一个命令(undo)
帮助
C-h m 查看当前模式
C-h c 显示快捷键绑定的命令
C-h k 显示快捷键绑定的命令和它的作用
C-h f 显示函数的功能
C-h b 显示当前缓冲区所有可用的快捷键
C-h t 打开emacs教程
搜索
C-s 向后搜索
C-r 向前搜索
C-M-s isearch-forward-regexp 正则表达式向前增量搜索
C-M-r isearch-backward-regexp 正则表达式向后增量搜索
C和C++模式
===指定为C++模式的方法===
一般根据扩展名自动设定,不用指定,不过有时候若希望.h文件是C++模式的(缺省是C模式),在文件第一行(或其末尾)上加入
// -*- C++ -*-
===语法高亮===
不是C模式专有,M-x global-font-lock-mode RET 或在.emacs中加入(global-font-lock-mode t)。
===子模式===
auto-state 输入时自动缩进,自动换行
hungry-state Backspace时,自动删除尽可能多的空白和空行
C-c C-t 同时转换(开/关)auto-state和hungry-state子模式
C-c C-a 转换 auto-state 子模式
C-c C-d 转换 hungry-state 子模式
===编辑命令===
C-c . 设置缩进风格(按TAB键可列出可用的风格,缺省的为gnu,其缩进为2个字符;linux为8个;k&r为5个,java为4个)
TAB 重新缩进当前行
M-/ 自动补齐(缓冲区中能找得到的串)
M-; 行尾加入注释
C-c C-e 扩展宏
C-c C-c 注释掉整个区域
C-u C-c C-c 取消注释
C-c C-/ 将区域中的每一行结尾都加入一个'/'字符
M-x c-beginning-of-defun
M-x c-end-of-defun 跳到函数的开头或结尾
C-c C-u 跳转到前面的一个#ifdef
C-c C-p
C-c C-n 跳转到宏的开头或结尾
C-M-h 选中整个函数区域
C-c C-/ 在所选区域的每一行后面添加" / "
C-M-p 跳转到}或)匹配的括号
C-M-n 跳转到(或{匹配的括号
M-x auto-insert 自动添加
#ifndef TEST_H
#define TEST_H
#endif
M-@ 把光标移动到单词开头,选中整个单词区域
C-M-h 选中当前行
C-u, C-@ 回到上次标签的位置
===编译和调试===
M-x compile RET 编译
M-x gdb RET 调试
C-x ` (出错信息中)下一个错误,一个窗口显示错误信息,另一个显示源码的出错位置
C-c C-c 转到出错位置
启动gdb调试器后,光标在源码文件缓冲区中时:
C-x SPC 在当前行设置断点
C-x C-a C-s step
C-x C-a C-n next
C-x C-a C-t tbreak
C-x C-a C-r continue
C-x, C-f (fopen) 新建或打开一个文件
C-x C-s 保存文件
C-x C-w 另存为文件
C-x C-v 关闭当前缓冲区文件并打开新文件
C-x i 在当前光标处插入文件
C-x b 新建/切换缓冲区
C-x C-b 显示缓冲区列表
C-x k 关闭当前缓冲区
C-x C-c (cease)关闭emacs
窗口命令
窗口命令比较常用,尤其是编辑多个文件的时候,你可以打开多个窗口,可以提 高编辑效率。
C-x 2 水平分割窗格
C-x 3 垂直分割窗格
C-x o 切换至其他窗格
C-x 0 关闭窗格
C-x 1 关闭除了光标所在窗格外所有窗格
光标移动
C-f 后一个字符
C-b 前一个字符
C-p 上一行
C-n 下一行
M-f 后一个单词
M-b 前一个单词
C-a 行首
C-e 行尾
C-v 向下翻一页
M-v 向上翻一页
M-< 到文件开头
M-> 到文件末尾 (ctrl shirft+V)
文本编辑
这里面包括了复制粘贴剪切删除等常用的操作命令。
注意,在这里,移除包括了 剪切和删除两个概念,要区分清楚。
C-x-- 调小字体
C-x-+ 调大字体
C-u n / M-n复执行后一个命令n次
C-d 删除后一个字符
M-d 删除后一个单词
Del 删除前一个字符
M-Del 删除前一个单词
C-k 移除一行
C-@ 设定标志位(主要是为了粘贴剪切以及删除使用)
C-w 移除标记区域的内容(剪切)
M-w 复制标记区域的内容(复制)
C-y 召回(yank)复制/移除的区域/行(粘贴)
M-y 召回更早的内容 (在kill缓冲区内循环)
C-x C-t 交换两行的位置
M-u 使从光标位置到单词结尾处的字母变成大写
M-l 与M-u相反
M-c 使从光标位置开始的单词的首字母变为大写
C-t 交换两个字符的位置
M-t 交换两个单词的位置
一些重要的命令
C-/ undo/redo
C-x u undo/redo
C-g 停止当前运行/输入的命令
C-x u/C-_ 撤销前一个命令(undo)
帮助
C-h m 查看当前模式
C-h c 显示快捷键绑定的命令
C-h k 显示快捷键绑定的命令和它的作用
C-h f 显示函数的功能
C-h b 显示当前缓冲区所有可用的快捷键
C-h t 打开emacs教程
搜索
C-s 向后搜索
C-r 向前搜索
C-M-s isearch-forward-regexp 正则表达式向前增量搜索
C-M-r isearch-backward-regexp 正则表达式向后增量搜索
C和C++模式
===指定为C++模式的方法===
一般根据扩展名自动设定,不用指定,不过有时候若希望.h文件是C++模式的(缺省是C模式),在文件第一行(或其末尾)上加入
// -*- C++ -*-
===语法高亮===
不是C模式专有,M-x global-font-lock-mode RET 或在.emacs中加入(global-font-lock-mode t)。
===子模式===
auto-state 输入时自动缩进,自动换行
hungry-state Backspace时,自动删除尽可能多的空白和空行
C-c C-t 同时转换(开/关)auto-state和hungry-state子模式
C-c C-a 转换 auto-state 子模式
C-c C-d 转换 hungry-state 子模式
===编辑命令===
C-c . 设置缩进风格(按TAB键可列出可用的风格,缺省的为gnu,其缩进为2个字符;linux为8个;k&r为5个,java为4个)
TAB 重新缩进当前行
M-/ 自动补齐(缓冲区中能找得到的串)
M-; 行尾加入注释
C-c C-e 扩展宏
C-c C-c 注释掉整个区域
C-u C-c C-c 取消注释
C-c C-/ 将区域中的每一行结尾都加入一个'/'字符
M-x c-beginning-of-defun
M-x c-end-of-defun 跳到函数的开头或结尾
C-c C-u 跳转到前面的一个#ifdef
C-c C-p
C-c C-n 跳转到宏的开头或结尾
C-M-h 选中整个函数区域
C-c C-/ 在所选区域的每一行后面添加" / "
C-M-p 跳转到}或)匹配的括号
C-M-n 跳转到(或{匹配的括号
M-x auto-insert 自动添加
#ifndef TEST_H
#define TEST_H
#endif
M-@ 把光标移动到单词开头,选中整个单词区域
C-M-h 选中当前行
C-u, C-@ 回到上次标签的位置
===编译和调试===
M-x compile RET 编译
M-x gdb RET 调试
C-x ` (出错信息中)下一个错误,一个窗口显示错误信息,另一个显示源码的出错位置
C-c C-c 转到出错位置
启动gdb调试器后,光标在源码文件缓冲区中时:
C-x SPC 在当前行设置断点
C-x C-a C-s step
C-x C-a C-n next
C-x C-a C-t tbreak
C-x C-a C-r continue