• Emacs常用命令快速参考


    原文地址

    Emacs常用命令的汇总,来自Emacs参考卡片

    注意:以下命令中标注的按键,大写的C代表Control,在键盘上通常是Ctrl键,而M代表Meta,在键盘上通常是Alt键,S则代表Shift,在键盘上通常是Shift键,也就是

    C

    Control

    M

    Alt

    S

    Shift

    这三个键在Emacs里通常作为组合键的前导按键使用,也就是说,执行一条命令前可能需要按住这个键不放,比如搜索命令是C-s,要执行这个命令首先要按住Ctrl键不放,再按下字母s键;而打开文件命令是C-x C-f,要打开文件就必须按下Ctrl键不放,依次按下x和f(当然也可以按下Ctrl不放再按下x,放开,再按下Ctrl不放再按f);有的命令组合键和非组合键都要用到,比如保存所有文件是C-x s,需要按下Ctrl不放的时候按下x,然后放开所有按键,再按下s;也有两个组合按键一起使用的,比如使用正则表达式进行增量搜索的快捷键是C-S-%,这就要求你同时按下Ctrl和Alt不放开,再按下s。

    启动Emacs

    在有图形界面的环境下只需要在终端输入Emacs按回车或者找到启动emacs程序的图标打开就可以了。

    在没有图形界面的环境或者伪终端下需要使用字符界面的Emacs可以输入emacs -nw,也就是增加一个-nw参数。

    挂起Emacs

    C-z

    挂起在图形界面下通常是把Emacs窗口最小化的意思,而在字符界面下则是把Emacs挂起到后台后回到终端,比如在GNU/Linux字符终端下按C-z会回到shell,使用jobs命令可以列出你挂起的所有任务,使用fg可以返回以最后一次挂起的任务,fg %num可以选择回到任意一个被挂起的任务。

    退出Emacs

    C-x C-z

    如果没有未保存的文件,那么这条命令会直接退出Emacs程序,否则它会提示是否保存文件。

    文件

    打开文件

    C-x C-f

    保存文件

    C-x C-s

    保存所有文件

    C-x s

    插入其他文件到当前缓冲区

    C-x i

    在当前缓冲区打开另一个文件

    C-x C-v

    另存为文件

    C-x C-w

    获取帮助

    打开快速指南

    C-h t

    获取按键帮助

    C-h k

    获取函数帮助

    C-h f

    打开Emacs帮助手册

    C-h r

     

    错误恢复

    放弃当前命令或终止正在执行的操作

    C-g

    恢复因系统崩溃而丢失的文件

    M-x recover-file

    撤销上一次操作

    C-x u或C-_

    还原缓冲区的内容

    M-x revert-buffer

    刷新屏幕

    C-l

     

    增量搜索

    正向搜索

    C-s

    反向搜索

    C-r

    使用正则表达式正向搜索

    C-M-s

    使用正则表达式反向搜索

    C-M-r

    选择上一个搜索结果

    M-p

    选择下一个搜索结果

    M-n

    退出搜索并停留在当前搜索到的位置

    RET

    中止当前搜索

    C-g

     

    移动

    移动的单位

    向后

    向前

    字符

    C-b

    C-f

    单词

    M-b

    M-f

    C-p

    C-n

    当前行开头或结尾

    C-a

    C-e

    M-a

    M-e

    M-{

    M-}

    C-x [

    C-x ]

    表达式

    C-M-b

    C-M-f

    函数

    C-M-a

    C-M-e

    缓冲区开头或结尾

    M-<

    M->

    垂直滚动屏幕

    C-v

    M-v

    水平滚动屏幕

    C-x <

    C-x >

    滚动当前行到屏幕中央

    C-u

    C-l

    指定行移动

    M-g M-g

     

     

    删除

    删除的单位

    向后

    向前

    字符

    DEL

    C-d

    单词

    M-DEL

    M-d

    M-0 C-k

    C-k

    C-x DEL

    M-k

    表达式

    M-- C-M-k

    C-M-k

    删除当前行

    C-S-DEL

     

    删除区域

    C-w

     

    复制区域到删除环

    M-w

     

    删除到字符

    M-z char

     

    从删除环中拉回内容

    C-y

     

    从删除环中拉回更早期的内容

    M-y

     

    注:这里的DEL在你的键盘上可能是Backspace

    标记

    设置标记

    C-@

    在当前光标位置和标记处跳转

    C-x C-x

    设置单词标记

    M-@

    标记段

    M-h

    标记页

    C-x C-p

    标记表达式

    C-M-@

    标记函数

    C-M-h

    标记整个缓冲区

    C-x h

     

    查询替换

    交互替换

    M-%

    使用正则表达式

    M-x query-replace-regexp

    在查询替换模式下:

     

    替换当前项并跳转到下一项

    SPC

    替换当前项不跳转

    ,

    不替换当前项并跳转到下一项

    DEL

    替换全部剩下的查询结果

    !

    回到上一个匹配结果

    ^

    退出查询替换

    RET

    进入递归编辑(C-M-c退出)

    C-r

     

    多窗格

    首先解释一下,Emacs里一个框(Frame)是值窗口系统中的一个窗口,一个窗格(Window)则是指显示在一个Frame

    命令描述

    窗格

    删除所有其他窗格

    C-x 1

     

    垂直分割

    C-x 2

    C-x 5 2

    删除当前窗格

    C-x 0

    C-x 5 0

    水平分割

    C-x 3

     

    滚动其他窗格

    C-M-v

     

    切换到另一个窗格

    C-x o

    C-x 5 o

    在其他窗格切换缓冲区

    C-x 4 b

    C-x 5 b

    在其他窗格显示缓冲区

    C-x 4 C-o

    C-x 5 C-o

    在其他窗格打开文件

    C-x 4 f

    C-x 5 f

    在其他窗格以只读方式打开文件

    C-x 4 r

    C-x 5 r

    在其他窗格打开目录

    C-x 4 d

    C-x 5 d

    在其他窗格查找标签

    C-x 4 .

    C-x 5 .

    窗格高度增加

    C-x ^

     

    窗格宽度减少

    C-x {

     

    窗格宽度增加

    C-x }

     

     

    格式化

    缩进当前行

    TAB

    缩进区域

    C-M-/

    缩进表达式

    C-M-q

    增加缩进

    C-x TAB

    在当前位置后增加新行

    C-o

    当前位置到行尾的内容下移

    C-M-o

    删除当前位置附近的空行

    C-x C-o

    将当前行连接到上一行

    M-^

    删除光标附近的空白

    M-/

     

    大小写转换

    单词转换为大写

    M-u

    单词转换为小写

    M-l

    单词转换为首字母大写

    M-c

    区域转换为大写

    C-x C-u

    区域转换为小写

    C-x C-l

     

    微型缓冲区

    尽可能多地补全

    TAB

    补全至多一个单词

    SPC

    补全并执行

    RET

    显示可能的补全项

    ?

    切换到上一个输入

    M-p

    切换到下一个输入

    M-p

    用正则表达式往后搜索历史记录

    M-r

    用正则表达式往前搜索历史记录

    M-s

    终止命令

    C-g

    缓冲区

    选择另一个缓冲区

    C-x b

    列出所有缓冲区

    C-x C-b

    关闭一个缓冲区

    C-x k

    缓冲区

    交换字符

    C-t

    交换单词

    M-t

    交换行

    C-x C-t

    交换表达式

    C-M-t

    交换

    交换字符

    C-t

    交换单词

    M-t

    交换行

    C-x C-t

    交换表达式

    C-M-t

     

    拼写检查

    见车当前单词拼写

    M-$

    检查区域内所有单词

    M-x ispell-region

    检查整个缓冲区

    M-x ispell-buffer

     

    标签

    查找标签

    M-.

    查找下一个标签

    C-u M-.

    指定一个新标签

    M-x visit-tags-table

    在标签表内的所有文件用正则表达式搜索

    M-x tags-search

    在所有文件内运行查询替换

    M-x tags-query-replace

    继续最后一个标签搜索或查询替换

    M-,

     

    Shells

    执行一个外部命令

    M-!

    在当前区域运行一shell命令

    M-|

    使用一个外部命令处理当前区域

    C-u M-|

    启动一个shell

    M-x shell

     

    矩形区域

    复制矩形区域到寄存器

    C-x r r

    删除矩形区域

    C-x r k

    拉回矩形区域内容

    C-x r y

    插入一个矩形区域

    C-x r o

    清空矩形区域

    C-x r c

    矩形区域内每行内容替换为字符串

    C-x r t

    缩写

    增加全局缩写

    C-x a g

    增加模式缩写

    C-x a l

    给这个缩写增加全局扩展

    C-x a i g

    给这个缩写增加模式扩展

    C-x a i l

    扩展缩写

    C-x a e

    动态扩展上一个单词

    M-/

    正则表达式

    匹配换行符之外的任何字符

    .

     

    任意次重复

    *

     

    一次或一次以上重复

    +

     

    一次或一次也没有

    ?

     

    转义字符

    /c

     

    分支

    /|

     

    分组

    /(.../)

     

    第n组

    /n

     

    单词开始或结束

    /b

     

    非单词开始或结束

    /B

     

     

     

     

    单位

    开始

    结束

    ^

    $

    /<

    />

    缓冲区

    /'

    /'

     

     

     

    字符类别

    匹配

    不匹配

    字符集合

    [ ... ]

    [^ ... ]

    单词

    /w

    /W

     

    国际化字符集

    指定语言

    M-x set-language-environment

    显示所有输入法

    M-x list-input-methods

    开启或禁用输入法

    C-/

    设置命令编码系统

    C-x RET c

    显示所有编码系统

    M-x list-coding-systems

    选择编码系统

    M-x prefer-coding-system

    信息

    进入信息文档阅读器

    C-h i

    在信息文档中查找指定的函数或变量

    C-h C-i

    在节点中移动

     

      往前滚动

    SPC

      反向滚动

    DEL

      节点开始处

    .

    节点间移动

     

      下一个节点

    n

      上一个节点

    p

      上一层

    u

      通过名字选择菜单项

    m

      选择第n个菜单项

    n

      填转到节点

    f

      返回上一次所在的节点

    l

      返回到目录节点

    d

      通过名字跳转到任意节点

    g

    其他:

     

      进入快速指南

    h

      退出信息文档

    q

      用正则表达式搜索节点

    M-s

    寄存器

    保存区域到寄存器

    C-x r s

    插入寄存器内容到缓冲区

    C-x r i

    保存当前位置到寄存器

    C-x r SPC

    跳转到保存在寄存器中的位置

    C-x r j

     

    键盘宏

    开始记录键盘宏

    C-x (

    结束记录键盘宏

    C-x )

    执行最后一个宏

    C-x e

    追加内容到最后一个键盘宏

    C-u C-x

    给最后一个键盘宏命名

    M-x name-last-kbd-macro

    插入键盘宏的Lisp定义到当前缓冲区

    M-x insert-kbd-macro

  • 相关阅读:
    Mybaits 源码解析 (十二)----- Mybatis的事务如何被Spring管理?Mybatis和Spring事务中用的Connection是同一个吗?
    Mybaits 源码解析 (十一)----- @MapperScan将Mapper接口生成代理注入到Spring-静态代理和动态代理结合使用
    Mybaits 源码解析 (十)----- Spring-Mybatis框架使用与源码解析
    Mybaits 源码解析 (九)----- 一级缓存和二级缓存源码分析
    Mybaits 源码解析 (八)----- 结果集 ResultSet 自动映射成实体类对象(上篇)
    Mybaits 源码解析 (七)----- Select 语句的执行过程分析(下篇)
    Mybaits 源码解析 (六)----- Select 语句的执行过程分析(上篇)
    Mybaits 源码解析 (五)----- Mapper接口底层原理(为什么Mapper不用写实现类就能访问到数据库?)
    Mybaits 源码解析 (四)----- SqlSession的创建过程
    Mybaits 源码解析 (三)----- Mapper映射的解析过程
  • 原文地址:https://www.cnblogs.com/yan456jie/p/5369430.html
Copyright © 2020-2023  润新知