• 学指令 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.

  • 相关阅读:
    mui-popover显示、隐藏弹出菜单的方法
    mui使用总结
    js 原生 document.querySelectorAll document.getElementsByTagName document.querySelector document.getElementById的区别
    mui.min.js:7 Uncaught DOMException: Failed to execute 'send' on 'XMLHttpRequest': Failed to load
    三个div并排
    菜单栏伸缩(附jquery-1.12.1.js)
    验证码生成(点击就更换)
    IDEA算法导包后 import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey;报错
    IDEA加密算法(含所需jar包(commons-codec-1.11.jar ,bcprov-jdk15on-160.jar))
    1,eclipse导入项目jdk版本不一样解决方案 2,java报javax.servlet.jsp cannot be resolved to a type
  • 原文地址:https://www.cnblogs.com/wangkangluo1/p/2098859.html
Copyright © 2020-2023  润新知