全部博文(137)
分类: LINUX
2010-09-13 23:07:11
The Minibuffer (the following keys are defined in the minibuffer) 最大程度地补全命令 TAB 补全命令中的一个字 SPC 完成并执行一个命令 RET 列出命令所有可能的后续部分 ? 列出在当前命令之前输入的命令 M-p 列出在当前命令之后输入的命令 M-n 用规则表达式在命令历史记录中向后搜寻 M-r 用规则表达式在命令历史记录中向前搜寻 M-s 重复执行上一条命令 C-x ESC ESC 缓冲(Buffer) 选择另一个缓冲 C-x b 列出所有的缓冲 C-x C-b Kill一个缓冲 C-x k 置换(Transposing) 字符置换 C-t 字置换 M-t 行置换 C-x C-t 表达式置换 C-M-t 拼写检查(Spelling Check) 对当前的字进行拼写检查 M-$ 检查区域内所有的字 M-x ispell-origin 检查缓冲内所有的字 M-x ispell-buffer 标记 (Tags) 查找标记 M-. 查找标记下一次出现的位置 C-u M-. 指定一个新的标记文件 M-x visit-tags-table Regexp search on all files in tabs table M-x tags-search 在所有文件中执行查询-替换 M-x tags-query-replace 继续进行上一次标记查找或查询-替换 M-, Shells 执行一个shell命令 M-! 在一个区域上执行sheel命令 M-| 通过shell命令过滤区域 C-u M-| 在窗口中启动一个shell M-x shell 矩形(Rectangles) 拷贝一个矩形到寄存器 C-x r r Kill矩形 C-x r k 拉回矩形 C-x r y 打开一个矩形, 将文本移动至右边 C-x r o 清空矩形 C-x r c 为矩形中每一行加上一个字符串前缀 C-x r t 规则表达式(Regular Expressions) 除换行符外的所有单个字符 . 零个或多个重复 * 一个以上的重复 + 零个或一个重复 ? 转译字符 选择(or) | 分组 (…) 与第n个组相同的文本 n At work break b Not at work break B 寄存器(Register) 存储区域到寄存器 C-x r s 插入矩形内容到缓冲 C-x r i 存储光标位置到寄存器 C-x r SPC 跳跃到寄存器中存储的光标位置 C-x r j 键盘宏(Keyboard Macros) 开始定义一个键盘宏 C-x ( 结束键盘宏的定义 C-x ) 执行上一次定义的键盘宏 C-x e 追加到上一个键盘宏 C-u C-x ( 为上一个键盘宏命名 M-x name-last-kbd-macro 在缓冲中插入Lisp M-x insert-kbd-macro Tags Tags 是一个显为人知的功能? 所以我想提一下. 这不是emacs发明的, 而是vi 原本的特异功能. emacs只是发扬光大而已. 假设你有一个目录, 里面是一个程式的原始码, 比如说, tin 的原始码, 放在 ~/tin-1.3beta 下面. 你想看它们. 首先, 叫emacs cd到该目录: M-x cd 然后, 建立tag table. tag table 就是一张对照表, 记录哪个符号(variable/function call) 对映到哪个档案的哪个地方. 有这张表, emacs可以让我们快速的在程式码内游走. 一般这张表是一个档案, 叫作TAGS (大写) M-! etags *.c M-! 是执行external shell command的意思. etags就是emacs的建表程式. 你只要告诉它你的source code在那里即可. vi的话是使用ctags这个程式, 它建出来的档名叫tags (小写). 因为我们介绍emacs, 所以不管它. 然 后, 怎么看程式? 你知道所有的C 程式都是由main()开始, 所以你想找到main()在哪个档案. 这时只要按 M-. 然后emacs会问你tag table在哪里. 因为我们已经cd到该目录, 直接按enter就好了. 然后输入main, emacs就会把你带到main(){ ... }去. 如果 你看到某个程式片断呼叫一个你没看过的函式, 你可以把游标移到该函式的名字上, M-. ENTER 就搞定了. 如果 emacs找错了 (比如有变数和函式同名, emacs跳到变数去), 那你可以用 C-u M-. 找下一个. 在编辑程式码的时候, M-SPC 很有用, 它会把游标附近的空白缩成一个. 在其它地方也有效. 拼写检查 当然只是针对英文。 Ispell 选中一块区域,或者对整个编辑缓冲区进行拼写检查: M-x ispell-buffer RET, 这时会打开ispell缓冲区,C-h可以查看一些拼写检查的帮助信息。 检查单词。在一个单词上执行M-$,会对这个单词进行拼写检查。 单词拼写补全。在一个未拼完的单词后执行ESC TAB(M-TAB)。 只要启用过Ispell, 他就将一直在后台运行。M-x ispell-kill-ispell,可以杀死这个进程。 感觉很好用。 flyspell 一个扩展,可以在编辑的时候直接进行拼写检查,也就是spell-check on the fly。它也是利用Ispell。 M-x flyspell-mode RET Tips 改变buffer的只读属性 M-x toggle-read-only 在C模式下输入tab C-q TAB : 对TAB不做解释,直接输 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////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 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 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 Dired模式常用命令: m : mark u : unmark d : mark delete D : 立即删除 x : 执行删除 g : refresh C : copy R : move + : 创建目录 Hideshow minor mode在编程时可以隐藏函数的实现。M-x hs-minor-mode (setq hs-minor-mode-prefix [(contrl o)]) 可以改变复杂的命令前缀. 用法: `C-c @ C-h' : Hide the current block (`hs-hide-block'). `C-c @ C-s' : Show the current block (`hs-show-block'). `C-c @ C-c' : Either hide or show the current block (`hs-toggle-hiding') `C-c @ C-M-h' : Hide all top-level blocks (`hs-hide-all'). `C-c @ C-M-s' : Show everything in the buffer (`hs-show-all'). 十六进制模式查看文本的十六进制编码 M-x hexl-mode |
chinaunix网友2010-09-14 14:38:29
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com