zoukankan      html  css  js  c++  java
  • 学指令 emacs篇

    原文地址:http://jianlee.ylinux.org/Computer/Emacs/emacs%E5%BF%AB%E9%80%9F%E5%8F%82%E8%80%83.html

    1 与文件操作有关的命令

    C-x C-f 查找文件并且在新缓冲区中打开
    C-x C-v 读入另一个文件替换掉用C-x C-f打开的文件
    C-x i 把文件插入到光标的当前位置
    C-x C-s 保存文件
    C-x C-w 把缓冲区内容写入一个文件
    C-x C-c 退出Emacs
    

    2 与光标移动操作有关的命令

    C-f 光标前移一个字符(右)
    C-b 光标后移一个字符(左)
    C-p 光标前移一行(上)
    C-n 光标后移一行(下)
    M-f 前移一个单词
    M-b 后移一个单词
    C-a 移动到行首
    C-e 移动到行尾
    M-e 前移一个句子
    M-a 后移一个句子
    M-} 前移一个段落
    M-{ 后移一个段落
    C-v 屏幕上卷一屏
    M-v 屏幕下卷一屏
    C-x ] 前移一页
    C-x [ 后移一页
    M-< 前移到文件头
    M->; 后移到文件尾
    C-l 重新绘制屏幕,当前行放在画面中心
    M-n 或者 C-u n 重复执行n次后续命令
    按下M-x后在辅助输入区中输入"goto-line"跳到指定的行,输入"goto-char"跳到指定的字符
    

    3 删除操作有关的命令

    C-d 删除光标位置上的字符
    DEL 删除光标前面的字符
    M-d 删除光标后面的单词
    M-DEL 删除光标前面的单词
    C-k 从光标位置删除到行尾
    M-k 删除光标后面的句子
    C-x DEL 删除光标前面的句子
    C-y 恢复被删除的文本或者粘贴最近删除或复制的文本
    C-w 删除文件块
    C-u 0 C-k 删除从光标位置到行首
    按下M-x后在辅助输入区中输入"kill-paragraph"删除光标后面的段落,按下"backward-kill-paragraph"删除光标前面的段落
    

    4 与文本块操作有关的命令

    C-@ 标记文本块的开始(或结束)位置
    C-x C-x 互换插入点和文本标记的位置
    C-w 或 SHIFT-DEL 删除文本块
    M-w 复制文本块
    M-h 标记段落
    C-x C-p 标记页面
    C-x h 标记整个缓冲区
    

    5 与位置交换操作有关的命令

    C-t 交换两个字符的位置
    M-t 交换两个单词的位置
    C-x C-t 交换两个文本行的位置
    按下M-x后在辅助输入区中输入"transpose-sentences"交换两个句子的位置,按下"transpose-paragraph"交换两个段落的位置
    

    6 与改变字母大小写操作有关的命令

    M-c 单词首字母改为大写
    M-u 单词的字母全部改为大写
    M-l 单词的字母全部改为小写
    

    7 与查找操作相关的命令

    C-s 向前递增查找
    C-r 向后递增查找
    C-s C-w 开始递增查找,把光标位置的单词做查找字符串
    C-s C-y 开始递增查找,把光标位置到行尾之间的文本做查找字符串
    C-s M-y 开始递增查找,将clipboard的内容作为查找字符串
    C-s return searchstring return 向前开始非递增查找操作
    C-r return searchstring return 向后开始非递增查找操作
    C-s return C-w 向前开始单词查找(不受换行符、空格、标点符号影响)
    C-r return C-w 向后开始单词查找(不受换行符、空格、标点符号影响)
    

    8 与使用编辑缓冲区和窗口有关的命令

    C-x b 如果输入一个新的文件名则新建一个文件并且编辑,否则打开该文件
    C-x s 保存全部缓冲区
    C-x k 删除缓冲区
    M-x rename-buffer 重命名当前缓冲区
    C-x C-q 把当前编辑缓冲区设置为只读属性
    C-x 0 删除当前所在的窗口
    C-x 1 当前缓冲区满屏显示
    C-x 2 创建上下排列的窗口
    C-x 3 创建左右排列的窗口
    C-x o 在窗口之间移动
    C-x ^ grow window taller
    C-x { shrink window narrower
    C-x } grow window wider
    

    EMACS常用模式

    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-\ 将区域中的每一行结尾都加入一个'\'字符
    
    C-M \ 自动缩进所选区域
    

    === 编译和调试 ===

    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
    
    C-c C-c 退出十六进制模式
    

    ECB快捷键

    C-c . g d 目录列表窗口
    C-c . g s 源码窗口
    C-c . g m 方法和变量窗口
    C-c . g h 历史窗口
    C-c . g l 最后选择过的编辑窗口
    C-c . g 1 编辑窗口1
    C-c . g n 编辑窗口n
    C-c . l c 选择版面
    C-c . l r 重画版面
    C-c . l t 拴牢版面(锁定版面)
    C-c . l w 拴牢可见的ecb窗口
    C-c . \ 拴牢编绎窗口
    

    cscope 使用

    pluskid 的文章

    简介

    对于浏览源代码来说,在 Emacs 里面也有很多工具可用,比如自带的 etags 就不错,不过功能不如 Cscope 强大。 Cscope 并不像 etags 那 样属于 Emacs ,它是一个独立的程序。它是一个具有完全 Unix 血统的 程序,用于帮助开发人员浏览源代码。它最初(那还是 PDP-11 的时代) 是由 Bell 实验室开发,并且多年以来一直是 AT&T Unix 商业发行版的 一部分。它已经被用于管理超过两千万行代码的工程。在2000年4月,多 亏了 Santa Cruz Operation, Inc. (SCO) , Cscope 的源代码在 BSD license 下开放了源代码。

    Cscope 的发行包里面有个 xcscope.el 能很好地用于 (X)Emacs 。它处 于源代码包的 contrib/xcscope 目录下。该目录下面还有一个名为 cscope-indexer 的脚本文件,用于处理源代码并不是在一个文件夹下面 的情况。

    安装和配置

    首先到 Cscope 的主页 上去下载最新的源代码包,编译安装。要在 Emacs 里面使用,首先必须把 xcscope.el 拷贝到 load-path 里面包含 的目录里面。并在 ~/.emacs 里面加上 (require 'xcscope) 就可以 了,或者,如果你希望在打开 c 或者 c++ 文件的时候才加载 xcsope ,可以写:

    (add-hook 'c-mode-common-hook
    	  '(lambda ()
    	    (require 'xcscope)))
    

    如果源代码全部处于同一个目录下面,现在就可以使用了。否则,如果 源代码有多层目录,或者其他地方还有附加的源代码,则需要 cscope-indexer 脚本。把那个脚本拷贝到系统 PATH 里面去(如 /usr/bin/)。如果所有的源代码以及子目录都是在同一个目录下面的, 只要执行 C-c s I(cscope-index-files) 就可以生成 Cscope 的数据 库,接下来就可以使用了。

    使用简介

    默认是的快捷键都是绑定到 C-c s 的前缀上面,如果嫌麻烦的话可以自 己更改快捷键绑定。这是默认的用于查找的键绑定:

    C-c s s         Find symbol.
    C-c s d         Find global definition.
    C-c s g         Find global definition (alternate binding).
    C-c s G         Find global definition without prompting.
    C-c s c         Find functions calling a function.
    C-c s C         Find called functions (list functions called
                    from a function).
    C-c s t         Find text string.
    C-c s e         Find egrep pattern.
    C-c s f         Find a file.
    C-c s i         Find files #including a file.
    ------------------------------------------
    C-c s a 设定初始化的目录,一般是代码的根目录
    C-s s I 对目录中的相关文件建立列表并进行索引
    
    C-c s s 序找符号
    C-c s g 寻找全局的定义
    C-c s c 看看指定函数被哪些函数所调用
    C-c s C 看看指定函数调用了哪些函数
    C-c s e 寻找正则表达式
    C-c s f 寻找文件
    C-c s i 看看指定的文件被哪些文件include
    

    下面是在搜索到的结果之间切换用的快捷键:

    C-c s b         Display *cscope* buffer.
    C-c s B         Auto display *cscope* buffer toggle.
    C-c s n         Next symbol.
    C-c s N         Next file.
    C-c s p         Previous symbol.
    C-c s P         Previous file.
    C-c s u         Pop mark.
    

    更详细的使用说明请参见 xcscope.el 文件头部的注释。

    base64

    Base64 is an encoding that encodes three bytes into four characters, thereby increasing the size by about 33%. The alphabet used for encoding is very resistant to mangling during transit.

    The following functions are defined by this library:

    base64-encode-region
    base64 encode the selected region. Return the length of the encoded text. Optional third argument no-line-break means do not break long lines into shorter lines.
    base64-encode-string
    base64 encode a string and return the result.
    base64-decode-region
    base64 decode the selected region. Return the length of the decoded text. If the region can't be decoded, return nil and don't modify the buffer.
    base64-decode-string
    base64 decode a string and return the result. If the string can't be decoded, nil is returned.

  • 相关阅读:
    SharePoint 2010 User Profile Sync Service自动停止
    如何区别多个svchost.exe?
    Log Parser分析IIS log的一个简单例子
    Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
    Windows中右键点击文件夹, 结果找不到共享选项卡, 怎么办?
    介绍SOS中的SaveModule命令
    SharePoint中Draft版本的文档不会收到document added的Alert Email
    和我一起学Windows Workflow Foundation(1)创建和调试一个WF实例
    门户网站
    C#基础—— check、lock、using语句归纳
  • 原文地址:https://www.cnblogs.com/wangkangluo1/p/2098859.html
Copyright © 2011-2022 走看看