- C-x C-c : 退出Emacs
- C-x C-f : 打开一个文件,如果文件不存在,则创建一个文件
- C-g : 取消未完成的命令
编辑
- C-z (redefined): Undo;原来C-z是挂起Emacs(然后用fg命令调出);C-x u 是默认的命令; 移动一下光标,再C-z就可以redo
- M-d : 删除光标后的词语
移动光标
- C-v : 向前翻页
- M-v : 向后翻页
- M-r : 将光标移动到屏幕中间那行
- C-a : 移到行首
- M-a : 移到句首,从行首到句首之间可能有空格
- C-e : 移到行尾
- M-e : 移到句尾
- M-{ : 向上移动一段
- M-} : 向下移动一段
- C-right : 向前移动一个单词
- C-left : 向后移动一个单词
- C-up : 向前移动一段
- C-down : 向后移动一段
- M-< : 移到整个文本开头
- M-> : 移到整个文本末尾
- C-u 数字 命令 : 执行多次(数字表示次数)该命令;“M-数字 命令” 也可以
- M-x goto-line : 移动到某一行
- C-l : 重绘屏幕,效果就是当前编辑行移动窗口中央
Buffer 相关
- C-x k : 关闭当前buffer
- C-x b : 切换到前一个编辑的buffer
- C-x C-b : 列出当前所有buffer
- C-x C-s : 保存当前buffer
- C-x s : 保存所有未保存的buffer,会提示你是否需要保存
- C-x C-w : 文件另存为
拷贝与粘贴
- M-space (redefined): 设置mark; C-@ 是默认命令
- C-w (redefined) : 剪切一块区域;如果没有设置mark,则是剪切一行
- M-w (redefined) : 拷贝一块区域;如果没有设置mark, 则是拷贝一行
- C-k : 从当前位置剪切到行尾
- C-y : 粘贴
- M-y : 用C-y拉回最近被除去的文本后,换成 M-y可以拉回以前被除去的文本。键入多次的M-y可以拉回更早以前被除去的文本。
- C-x r k : 执行矩形区域的剪切
- C-x r y : 执行矩形区域的粘贴
窗口操作
- C-x 0 : 关闭当前窗口
- C-x 1 : 将当前窗口最大化
- C-x 2 : 垂直分割窗口
- C-x 3 : 水平分割窗口
- M-o (redefined) : 在窗口之间切换; C-x o 是默认命令
- C-x 5 1/2/3/0 : 对frame类似的操作
- C-x < : 窗口内容右卷
- C-x > : 窗口内容左卷(这两个命令在垂直分割窗口后比较有用)
- (C-u) C-x ^ : 加高当前窗口,如果有C-u,则每次加高4行
- (C-u) C-x } : 加宽当前窗口
- (C-u) C-x { : 压窄当前窗口
- ESC C-v : 在其它窗口进行卷屏操作
搜索和替换
- C-s : 向前搜索(增量式搜索);连续C-s,跳到下一个搜索到的目标
- C-s RET : 普通搜索
- C-r : 向前搜索
- C-s RET C-w : 按单词查询
- M-% : 查询替换,也就是替换前会询问一下
- M-x replace-string : 普通替换
Tags
- M-! etags .c .h : 创建TAGS文件
- M-. : 跳到tag所在位置
- M-x list-tags : 列出tags
Bookmark
- C-x r m : 设置书签bookmark
- C-x r b : 跳到bookmark处
帮助
- C-h ? : 查看帮助信息
- C-h f : 查看一个函数
- C-h v : 查看一个变量
- C-h k : 查看一个键绑定 (C-h c 也是查看键绑定,但是信息较简略)
- C-h C-f : 查看一个函数的Info,非常有用
- C-h i : 看Info
其它
- C-M-\ : 对选中区域,按照某种格式(比如C程序)进行格式化
- C-x h : 全部选中
- M-! : 执行外部shell命令
- M-x shell : 模拟shell的buffer
- M-x term : 模拟terminal, C-c k 关闭terminal
- C-x C-q : 修改buffer的只读属性
一些扩展
显示行号
1, 下载wb-line-number.el, 放到合适的目录. (我一般放在~/.emacs.d中)
2, 在~/.emacs中添加:
(set-scroll-bar-mode nil) ;; no scroll bar, even in x-window system (recommended)
(require 'wb-line-number)
(wb-line-number-toggle)
(require 'xcscope) ;;加载xcscope
(require 'cedet) ;;加载cedet
(require 'ecb) ;;加载ecb
(require 'session) ;;加载session
(add-hook 'after-init-hook 'session-initialize) ;; 启动时初始化session
(require 'doxymacs) ;; 启动doxymacs
(add-hook 'c-mode-common-hook 'doxymacs-mode) ;; 启动doxymacs-mode
(add-hook 'c++-mode-common-hook 'doxymacs-mode) ;; 启动doxymacs-mode
(desktop-load-default) ;;读取默认desktop设置
(desktop-read) ;;读取当前目录保存的desktop设置
(set-face-background 'default "LightCyan3") ;;设置背景色为 浅青色3
(set-face-font 'default "-outline-新宋体-normal-r-normal-normal-*-*-96-96-c-*-iso8859-1") ;;设置字体为新宋体 ( Only for windows )
(global-set-key [f12] 'ecb-activate) ;;定义F12键为激活ecb
(global-set-key [C-f12] 'ecb-deactivate) ;;定义Ctrl+F12为停止ecb
(global-set-key [f11] 'delete-other-windows) ;;设置F11为删除其它窗口
(global-set-key [(meta return)] 'semantic-ia-complete-symbol-menu) ;;设置Alt+Enter为自动补全菜单
(global-set-key [C-\;] 'ecb-goto-window-edit-last) ;;切换到编辑窗口
(global-set-key [C-\'] 'ecb-goto-window-methods) ;;切换到函数窗口
(global-set-key [C-.] 'cscope-find-global-definition) ;;搜索定义
(global-set-key [C-,] 'cscope-pop-mark) ;; 跳出转向
(enable-visual-studio-bookmarks) ;; 启动VS书签子程序
;;(setq semanticdb-project-roots (list "d:/work")) ;; 设置cemanticdb的扫描根目录
(add-hook 'c-mode-common-hook ( lambda() ( c-set-style "k&r" ) ) ) ;;设置C语言默认格式
(add-hook 'c++-mode-common-hook ( lambda() ( c-set-style "k&r" ) ) ) ;;设置C++语言默认格式