Emacs常用命令

基础Emacs命令(一个Emacs小白的笔记) Emacs初学者需要上手的60条基本命令 阅读详情

Emacs 中文手册
====================================================

[符号]
--------------------------------------
C-                    意思是按住 Ctrol 键
M-                    意指 Meta 键 (键盘上若无Meta 键,则可以ALT 或 ESC 键来取而代之)
DEL                   意指退格键 (不是 删除(Delete) key)
RET                   意指回车键
SPC                   意指空格键
ESC                   意指Escape键
TAB                   意指Tab键

像 "C-M-" (or "M-C") 这样连在一起的意味着同时按住 Control 和 Meta 键不放.
 
 
 
 
[进入Emacs]
----------------------------------------
emacs                 要进入GNU Emacs,只需键入它的名字        
C-z                   挂起Emacs:                        
C-x C-c               永久离开Emacs                      
 
 


[用方向键]
---------------------------------------

        上一行 C-p (Prev line)
                .
                .
                .                 
向左移 C-b .... 。.... 向右移 C-f (Forward character)
(Backward )   .
                .
                .
        下一行 C-n (Next line)



[文件]
----------------------------------------
C-x C-f                读取文件到Emacs
C-x r                  只读的方式打开一个文件
C-x C-q                清除一个窗口的只读属性                  
C-x C-s                保存文件到磁盘        
C-x s                  保存所有文件                        
C-x i                  插入其它文件的内容到当前缓冲            
C-x C-v                用将要读取的文件替换当前文件
C-x C-w                将当前缓冲写入指定的文件                
C-x C-q                Version control checkin/checkout              




[错误恢复]
---------------------------------------
C-g                    取消当前要执行的命令                  
M-x recover-file       恢复系统崩溃后丢失的文件                
C-x u或C-_             撤销更新                          
M-x revert-buffer      使缓冲回复到初始内容                  
C-l                    Redraw garbaged screen                




[增量查找]
---------------------------------------
C-s                    向前查找                          
C-r                    向后查找                          
C-M-s                  规则表达式查找                      
C-M-r                  反向规则表达式查找                    
M-p                    选择前一个查找字符串                  
M-n                    选择下一个查找字符串                  
RET                    退出增量查找                        
DEL(Backspace)         取消上一个字符的作用                  
C-g                    退出当前查找模式                    
                       可重复使用C-s和C-r来改变查找方向
                      

[替换]
---------------------------------------
M-%                    交互式地替换一个文本串                
M-x replace-regexp     交互式地替换一个规则表达式              
SPE                    替换当前的并移动到下一处                
,                      替换当前的但不移动到下一处              
L(Backspace)           不替换当前的并移动到下一处              
!                      替换所有剩下的符合条件的文本            
RET                    退出替换模式                        
C-r                    进入递归的编辑模式                    
C-M-c                  退出递归的编辑模式                    




[光标移动]
---------------------------------------
C-f                    向前一个字符                        
C-b                    向后一个字符                        
M-f                    向前一个字                        
M-b                    向后一个字                        
C-p                    向上一行                          
C-n                    向下一行                          
C-a                    到行首                            
C-e                    到行尾                            
M-a                    到句首                            
M-e                    到句尾                            
M-{                    到段首                            
M-}                    到段尾                            
C-x [                  到页首                            
C-x ]                  到页尾                            
C-M-f                  到表达式首部                        
C-M-b                  到表达式尾部
M-<                    到缓冲首部                        
M->                    到缓冲尾部                        
C-v                    滚动到下一屏                        
M-v                    滚动到上一屏                        
C-x <                  滚动到右边一屏(内容向左移动)            
C-x >                  滚动到左边一屏(内容向右移动)            
C-u C-l                滚动当前行到屏幕中央

C-M-n                  移到结尾的)、}或]
C-M-p                  移到开始的)、}或]
C-M-u                  向上移到父结构开始
C-M-d                  向下移到父结构开始



[复制、粘贴、剪切、删除]
-----------------------------
C-d                    向前delete字符                      
DEL(Backspace)         向后delete字符                      
M-d                    向前delete到字首                    
M-DEL(Backspace)       向后delete到字尾                    
M-0 C-k                向前delete到行首                    
C-k                    向后delete到行尾                    
C-x DEL(Backspace)     向前delete到句首                    
M-k                    向后delete到句尾                    
M-- C-M-k              向前delete到表达式首部                
C-M-k                  向后delete到表达式尾部                
C-w                    Kill区域                          
M-w                    拷贝区域到Kill Ring                    
M-z <char>             Kill到下一个给定字符出现的位置            
C-y                    拉回(yank)上次kill的内容              
M-y                    用更早kill的内容取代拉回的上次kill的内容    



[标记Marking]
-----------------------------
C-SPC或C-@             标记当前位置                        
C-x C-x                以字符为单位使用移动命令动态标记区域        
M-@                    以字为单位使用移动命令动态标记区域        
M-h                    标记一段                          
C-x C-p                标记一页                          
C-M-@                  标记一个表达式                      
C-M-h                  标记一个函数                        
C-x h                  标记整个缓冲区                      


[寄存器]
-----------------------------
C-x r s                存储区域到寄存器                    
C-x r i                插入矩形内容到缓冲                    
C-x r SPC <num>        存储光标位置到寄存器                  
 C-x r j <num>         跳跃到寄存器中存储的光标位置           



[矩形]
-----------------------------
C-x r r                拷贝一个矩形到寄存器                  
C-x r k                Kill矩形                          
C-x r y                拉回矩形                          
C-x r o                打开一个矩形, 将文本移动至右边            
C-x r c                清空矩形                          
C-x r t                为矩形中每一行加上一个字符串前缀
C-x r i r              从r缓冲区内插入一个矩形          






[标记Tags]
-----------------------------
M-.                    查找标记                          
C-u M-.                查找标记下一次出现的位置                
M-x visit-tags-table   指定一个新的标记文件                  
M-x tags-search        Regexp search on all files in tabs table          
M-x tags-query-replace 在所有文件中执行查询-替换              
M-,                    继续进行上一次标记查找或查询-替换          





[窗口与缓冲]
-----------------------------
C-x 1                  删除所有其它窗口

C-x 5 2                    
C-x 2                  上下分割当前窗口
                    
C-x 3                  左右分割当前窗口
 
C-x 5 0                   
C-x 0                  删除当前窗口  
                     
C-M-v                  滚动其它窗口                        
C-x o                  切换光标到另一个窗口                  
C-x 4 b C-x 5 b        选择另一个窗口中的缓冲

C-x 5 C-o                
C-x 4 C-o              显示另一个窗口中的缓冲

C-x 5 f               
C-x 4 f                在另一窗口中查找并打开文件              

C-x 5 r
C-x 4 r                在另一窗口中以只读方式打开文件            

C-x 5 d
C-x 4 d                在另一窗口中运行dired命令 

C-x 5 .            
C-x 4 .                在另一窗口中查找tag
                  
C-x ^                  增加窗口高度                        
C-x {                  减小窗口宽度                        
C-x }                  增加窗口宽度                        


C-x b                  选择另一个缓冲                      
C-x C-b                列出所有的缓冲                      
C-x k                  Kill一个缓冲                        


[分栏编辑]

C-x 6                 2C-command
C-x 6 s                  2C-split
C-x 6 b    2             C-associate-buffer
C-x 6 2    2             C-two-columns



[格式]
-----------------------------
TAB                    缩进当前行(与模式相关)                
C-M-/                  缩进区域(与模式相关)               
C-M-q                  缩进表达式(与模式相关)                
C-x TAB                Indent region rigidly arg. Columns            
C-o                    在光标后插入一个新的行                
C-M-o                  静态地将一行下移                    
C-x C-o                删除光标附近的空行(留下一行)            
M-^                    与上一行合并成一行                    
M-                     删除光标附近的所有空格                
M-SPC                  删除光标附近的空格(留下一格)            
M-q                    Fill paragraph                        
C-x f                  Set fill column                        
C-x .                  设置每一行开始的前缀                  
M-g                    设置字体                          



[置换]
-----------------------------
C-t                    字符置换                          
M-t                    字置换                            
C-x C-t                行置换                            
C-M-t                  表达式置换                        





[大小写]
-----------------------------
M-u                    将一个字设置为大写                    
M-l                    将一个字设置为小写                    
M-c                    将一个字首字母设置为大写                
C-x C-u                将一个区域设置为大写                  
C-x C-l                将一个区域设置为小写                  



[补全]
-----------------------------
TAB                    最大程度地补全命令                    
SPC                    补全命令中的一个字                    
RET                    完成并执行一个命令                    
?                      列出命令所有可能的后续部分              
M-p                    列出在当前命令之前输入的命令            
M-n                    列出在当前命令之后输入的命令            
M-r                    用规则表达式在命令历史记录中向后搜寻        
M-s                    用规则表达式在命令历史记录中向前搜寻        
C-x ESC ESC            重复执行上一条命令                    




[Shells]
-----------------------------
M-!                    执行一个shell命令                    
M-|                    在一个区域上执行sheel命令              
C-u M-|                通过shell命令过滤区域                  
M-x shell              在窗口中启动一个shell                  



[缩进]
-----------------------------
C-x TAB                indent-rigidly



[规则表达式]
-----------------------------
.                      除换行符外的所有单个字符                
*                      零个或多个重复                      
+                      一个以上的重复                      
?                      零个或一个重复                     
|                      选择(or)                        
(…)                    分组                            
n                      与第n个组相同的文本                  
b                      At work break                        
B                      Not at work break



[编程]
-----------------------------                 
C-M-a                  到函数首部                        
C-M-e                  到函数尾部

C-M-h                  标记一个函数



[GDB调试]
-----------------------------
.启动gdb
 gdb bayonne
 gdb --args bayonne -vvv script.scr

.利用帮助
 help 命令类别名
 help 命令名

.调试指定程序
 file  /home/cnscn/a.out

.运行程序
 r[un]
 r[un] -vvv script.scr

.设置断点
 按照函数名设置断点
 b[reak] main
 b[reak] 'namespace::Class::func()'

.按照文件名和行数设置断点
 b[reak] methods.cpp:523

.检查状态
 检查堆栈
 b[ack]t[race]
 up
 down

 检查当前函数的源代码
 l[ist]

 检查/改变变量值
 p[rint] var
 p[rint] ptr->mem
 p[rint] *ptr
 p[rint] ('namespace::Class') *this
 p[rint] (('namespace::Class') *this)->a.b.c

 p[rint] var=value

 检查类
 ptype ptr

 set print object on
 whatis ptr

 检查并启用/禁用断点
 set breakpoint pending on
 info b[reakpoints]
 enable [N]
 disable [N]

 检查并切换线程
 info th[reads]
 thread N

 检查寄存器
 info reg
 info reg esp

 检查内存
 x/10s *0xaabbccdd
 x/5x var

.继续运行
 运行到某一行即停止,当前函数返回时也停止
 advance source.cpp:123

 运行到当前函数返回为止
 fin[ish]

 继续运行直到程序结束或下一个断点
 c[ontinue]


.信号
 检查当前的信号处理策略
 info signals

 改变信号处理策略
 handle SIGINT pass
 handle SIGINT nostop


.与Emacs配合使用
 建议使用Emacs-23。设定别名
  alias emacs='emacs --enable-font-backend -fn "Dejavu Sans Mono-12"'

 修改~/.emacs,把下面这一行加入
 (defvar gdb-many-windows t)

 在Emacs里启动gdb
 M-x gdb

 开启多窗口模式
 M-x gdb-many-windows

 进入gud-tooltip-mode
 M-x gud-tooltip-mode

                      



[自定义设置]
-----------------------------
.设定预设的输入法,将下面这一行加入到 ~/.emacs 档案中:
 (custom-set-variables '(default-input-method "chinese-array30"))
 在启动 Emacs 后,您就可以直接以 C-/ 指令在英文输入和行列输入法之间切换了
 


[FAQ]
-----------------------------
 
.但是有时候用行列打不出来,需要切换成注音输入法。
 有两种方式可以达成这个目的:

  a. C-x RET C-/ chinese-zozy RET
  b. C-u C-/ chinese-zozy RET

  作者建议您使用第二种方式,因为它同时也是作为两种输入法间切换的指令。
  接下来您只要键入 C-u C-/ RET 就可以在行列和注音这两者间作切换了。
 (注意:中英输入法间的切换还是以 C-/ 指令为之。)

  以后我们在不同中文输入法间作切换将可以 C-u C-u C-/ 达成,
  原本作者是建议以 M-/ 来补足这个想法,
  但是 M-/ 很不幸已经作为 delete-horizontal-space 指令了。
  不然 C-/ 搭配 M-/ 不是很漂亮吗?

  这样子您应该可以理解如何使用中文输入环境了吧!



. narrow 功能.用于隐藏文本,在进行string replace时十分有用选中要保留的文本, 然后C-x n n 或M-x narrow-to-region 要展开文本: C-x n w 或 M-x widen

. emacs的自动排版用M-q

. window下面用emacs远程编辑文件,可以用 ftp方式:

    C-x C-f RET /ftp:user@host:/path/test.txt
    ssh方式: 下载plink.exe,将其路径加入PATH变量
    C-x C-f RET /ftp:user@host:/path/test.txt

. emacs下的su 可以用C-x C-f安下列方式实现su文件编辑
    /su::/etc/foobar.conf

. 用空格代替tab (setq-default indent-tabs-mode nil)
    M-x untabify
   
. 指定文件的编码方式:C-x RET f


. 捕捉程序的输出可以用
    C-u M-! ls


. 如何在dos和unix文件类型之间转化
    C-x RET f unix   转化成Unix文件格式
    C-x RET f dos    转化成dos文件格式


. hexl   将二进制文件转化成emacs十六进制模式可以用的格式


.键绑定

  1. 记住在所有要绑定到快捷键的函数上面加上(interactive)关键字,否则,会发生(wrong-type-argument commandp my-command)的错误
    对于要绑定到鼠标的函数,要在函数声明中指定参数(event),在修饰段,加入(interactive "e"),然后才能绑定
  2. 对于要传递参数的函数,可以用lambda匿名函数来实现

    (global-set-key [(prior)]
        '(lambda () "Previous" (interactive) (scroll-down 1)))

    或则

    (global-set-key [(prior)]
        (function (lambda () "Previous" (interactive) (scroll-down 1))))

    记住对于 global-set-key函数需要的第二个参数是一个symble或者是list
  3. (read-event)可以得到emacs的键码的内部表示
  4. 如果你觉得每次为了关闭一个buffer都要按C-x k很麻烦,那么你可以这样绑定:

    (global-set-key (kbd "<M-f4>") (lambda () (interactive) (kill-buffer (current-buffer)))

11、RK3566/3568 Android11切割屏幕 长条屏 显示 在使用 RK3566 平台进行 Android 11 开发时,遇到切割屏(长条屏)显示画面不全。本文将详细介绍如何配置,以及如何修改 HWComposer 来调整显示区域,解决图像缩放问题。我这边屏幕是lvds接口的,分辨率1920 1080实际的屏物理尺寸是1920x463。 阅读详情

相关推荐

避坑指南:在Ubuntu 22.04上配置UR5e与ROS2 Humble真机通信的完整流程

本文详细介绍了在Ubuntu 22.04上配置UR5e机械臂与ROS2 Humble真机通信的完整流程,包括环境准备、网络配置、URCap安装、ROS2驱动部署及控制器状态验证等关键步骤。特别针对常见问题如网络连接失败、驱动启动错误等提供了实用解决方案,帮助工程师高效完成UR5e与ROS2的集成工作。

weixin_30790841的博客 463

Emacs进阶之M-x创建别名(二十)

******************************************************* 1.在~/.emacs.d目录my-alias.el 2.在~/.emacs里加载my-alias.el (load "~/.emacs.d/my-alias.el") ******************************************************* (de...

Android系统攻城狮 1592

什么是Merkle树?用“文件柜”类比理解区块链的核心技术

Merkle树是一种用于区块链的数据结构,像一个高效的“文件柜”,用于存储和验证大量交易数据。比特币通过Merkle树将交易哈希组织成树状结构,层层汇总,最终生成一个唯一的根哈希,存储在区块头中。这种设计大幅减少数据存储和验证成本,支持快速校验交易的完整性和存在性。Merkle树通过密码学保证数据不可篡改,广泛应用于比特币、区块链及其他分布式系统。它的优势在于高效、轻量和安全,尤其适合轻节点验证和数据同步。理解Merkle树就像掌握区块链的“索引秘籍”,是Web3世界的关键技术。

在路上的专栏 1192

CHAPTER 16 Mesos(二)

mesos

u010230019的博客 554

计算机模拟爆破过程,基于LSDYNA岩石爆破模拟建模分析

原标题:基于LSDYNA岩石爆破模拟建模分析 Ls Dyna岩石爆破模拟仿真作者:dyna_focus擅长领域:dyna/abaqus/hypermesh一、 数值模型的建立1.1 单元及算法的选择岩石,炸药,空气都采用solid164实体单元。岩石采用常应力实体单元,该种单元属于纯粹的lagrange算法,该种算法单元网格附着在材料上,随着材料的流动而产生单元网格的变形,但是在结构变形巨大时,有...

weixin_29494379的博客 7312

Vanna 2.0:基于LLM的智能文本到SQL框架,实现企业级数据查询与权限控制

文本到SQL技术是自然语言处理与数据库交互的重要桥梁,它允许用户使用日常语言直接查询数据库,无需编写复杂的SQL语句。其核心原理是利用大语言模型理解用户意图,并结合检索增强生成技术,将自然语言问题转换为准确的结构化查询语言。这项技术的价值在于大幅降低了数据访问门槛,提升了业务人员的数据自助分析能力,并能在金融分析、销售报表、运营监控等场景中实现实时数据洞察。Vanna 2.0作为一个开源框架,通过引入用户感知的智能体架构和行级安全策略,解决了企业级应用中的多租户数据隔离与权限控制等关键问题,使得自然语言数据

weixin_42629522的博客 544

一些常用emacs命令

关闭(删除)当前缓冲区:C-x k 删除当前窗口: C-x 0 删除当前窗口外的所有窗口:C-x 1 创建缓冲区或者切换缓冲区(由输入的缓冲区名字是否存在决定) :C-x b 保存缓冲区('-'存缓冲区,'n'-不保存缓冲区,'!'-保存所有缓冲区,'.'-只保存当前缓冲区缓冲区,'q'-取消保存指令,且不保存当前缓冲区。C-x s 切换到下一个窗口:C-x o(上下窗口)或

数字人生 900

华为HCIA-Datacom实战:200人企业园区网从规划到部署全流程解析

本文详细解析了华为HCIA-Datacom认证实战中200人企业园区网的规划与部署全流程。从需求分析、组网架构设计到设备选型、VLAN划分及安全策略实施,全面覆盖园区网建设的关键环节,特别针对部门隔离、无线覆盖和基础安全防护等典型场景提供可落地的解决方案。

f0g1h2的博客 710

每天学习一个Linux命令之emacs

Emacs 是一个非常灵活的编辑器,在Linux环境下通过终端使用emacs命令来启动它。在启动后,用户可以在终端界面下使用各种命令和快捷键来编辑和管理文件。该命令会加载指定的Lisp文件,用于自定义Emacs的行为。你可以在文件中定义自己的函数、绑定按键等修改。Emacs 是一个功能强大的编辑器,通过emacs命令在Linux下使用它十分方便。本篇博客详细介绍了一些常用的emacs命令以及它们的选项。了解这些命令和选项将帮助您更好地使用Emacs编辑器进行文件管理和编辑。

俞兆鹏的博客 1515

【Claude】Auto Mode 触发安全分类器拦截的三种错误变体及对应处理 bug报错已解决

深度解析Claude Auto Mode安全分类器拦截的三种变体:内容拒绝、操作中断、累积触发,含完整排查流程与绕过策略。

博客 7582

基于Jeecgboot3.9.0的flowable7.2.0流程增加一个OA请假单功能例子(二)

基于Jeecgboot3.9.0的flowable7.2.0流程增加一个OA请假单功能例子(二)

宁波阿成的博客 198

Emacs常用命令快速参考

Emacs常用命令的汇总,来自Emacs参考卡片 注意:以下命令中标注的按键,大写的C代表Control,在键盘上通常是Ctrl键,而M代表Meta,在键盘上通常是Alt键,S则代表Shift,在键盘上通常是Shift键,也就是CControlMAltSShift这三

雨婷的专栏 1万+

华为OD机试双机位C卷-水库溃坝填补(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【水库溃坝填补】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。水库溃坝填补。

qq_45776114的博客 2109

Emacs入门之常用命令

转自:http://www.cnblogs.com/shengansong/archive/2012/04/18/2456035.html Emacs入门之常用命令 C - v 下一屏 M - v 上一屏 C - f 往前一个字符 C - b 往后一个字符 C - p 上一行 C - n 下一行 M - f 往前一个词 M - b 往后一个词 C -

fanwu72的专栏 454

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Emacs常用命令速查(转自ChinaUnix.net)

Emacs常用命令速查 2004年 12月17日 现在我已经能够熟练使用这些命令了,基本上可以算一个初段的Emacser了,哈哈,总结一下,把这些命令打印出来贴在电脑上,不记得了再查查,从今以后尽量做到写代码和文档都用Emacs来完成. 1)与文件操作有关的命令 C-x C-f 查找文件并且在新缓冲区中打开 C-x C-v 读入另一个文件替换掉用C-x C-f打开的文件 C-x i 把文件插入到光

Unplugged 2155

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Emacs和gdb常用命令

Emacs 在我的实际配置情况下,C代表Ctrl键,M代表Alt键 退出emacs                                                                             C-x C-c 输入shell命令

Copy anywhere 963

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

EMACS 常用命令

常用EMACS编辑命令C-f 向右移动一个字符C-b 向左移动一个字符M-f 向右移动一个词【对中文是移动到下一个标点符号】M-b 向左移动一个词【对中文是移动到上一个标点符号】C-n 移动到下一行C-p 移动到上一行C-a 移动到...

weixin_30888707的博客 149

emacs 常用命令

C stands for Ctrl and M stands for Alt REFERENCE FORM EMACS TUTORIAL 表述不一定正确,仅供参考,主要是要多实践,一开始可能会不习惯。 PART1CURSOR C+p 光标上移 C+n 光标下移 C+b 光标后移 M+b 光标向前移动一个单词 C+f 光标前移 M+f 光标向后移动一个单词 C+v 向下翻页 M+v 向...

dice0192的博客 175

emacs常用命令

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 光标后移一个字符(左

一袭旧袍任风雨 597
上一篇: qvfb
下一篇: VM上的LINUX虚拟机共享Windows文件夹
lhf0921
博客等级 码龄18年 52粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值