首页 > 其他分享 >【Emacs】使用全教程

【Emacs】使用全教程

时间:2024-08-13 23:53:23浏览次数:8  
标签:教程 窗口 正则表达式 单词 搜索 使用 缓冲区 Emacs

Emacs入门:使用全教程

启动 Emacs

要进入 Emacs,只需输入其名称:

 $ emacs

:-:-
C-z挂起 Emacs
C-x C-c永久退出 Emacs

全局描述

:-:-
C-<key>表示按住控件,然后按 <key>
M-<key>表示按 Esc 一次,然后按 <key>

移动

返回向前要移动的实体
C-bC-fHaracter
M-bM-f单词
C-pC-n线
C-aC-e行开头
(或结尾)
M-aM-e句子
M-{M-}段落
C-x [C-x ]
C-M-bC-M-fSexp
C-M-aC-M-e功能
M-<M->缓冲区开始
(或结束)

案例变更

:-:-
M-u大写单词
M-l小写单词
M-c大写单词
C-x C-u大写区域
C-x C-l小写区域

文件

:-:-
C-x C-f将文件读入 Emacs
C-x C-s将文件保存回磁盘
C-x s保存所有文件
C-x i将另一个文件的内容插入此缓冲区
C-x C-v将此文件替换为您的文件
C-x C-w将缓冲区写入指定文件
C-x C-q切换缓冲区的只读状态

错误恢复

:-:-
C-g中止部分键入或执行的命令
M-x recover-session恢复因系统崩溃而丢失的文件
C-x u C-_ C-/撤消不需要的更改
M-x revert-buffer将缓冲区恢复到其原始内容
C-l重绘垃圾屏幕

Transposing

:-:-
C-t转置字符
M-t转置词
C-x C-t转置线
C-M-t转置性别
Scroll
:-:-
C-v滚动到下一个屏幕
M-v滚动到上一个屏幕
C-x <向左滚动
C-x >向右滚动
C-l将当前行滚动到
center, top, bottom
跳转
:-:-
M-g g转到行
M-g c转到字符
M-m返回缩进

标记

:-:-
C-@ C-SPC在标记在这里
C-x C-x交换点和标记
M-@设置标记 arg 单词
M-h标记段落
C-x C-p标记页面
C-M-@标记性
C-M-h标记功能
C-x h标记整个缓冲区

杀死和删除

向后向前要杀死的实体
DELC-d字符
(删除)
M-DELM-d单词
M-0 C-kC-k
(到结尾)
C-x DELM-k句子
M-- C-M-kC-M-k性爱
杀死
:-:-
C-W杀死区域 C-w
M-w复制区域杀死环
M-z char杀死下一次出现的字符
C-y拉回最后一个被杀的东西
M-y用之前的杀戮替换最后的猛拉

获得帮助

:-:-
C-x 1删除帮助窗口
C-M-v滚动帮助窗口
C-h aApropos:显示匹配字符串的命令
C-h k描述一个键运行的功能
C-h f描述一个函数
C-h m获取特定于模式的信息

帮助系统很简单。键入 C-h(或 F1)并按照说明进行操作。如果您是第一次使用,请键入 C-h t 以获得教程

多个窗口

当显示两个命令时,第二个命令是用于框架而不是窗口的类似命令

:-:-:-
C-x 5 1C-x 1删除所有其他窗口
C-x 5 2C-x 2拆分窗口,上方和下方
C-x 5 0C-x 0删除此窗口
:-:-:-
 C-x 3拆分窗口,并排
 C-M-v滚动其他窗口
:-:-:-
C-x 5 oC-x o将光标切换到另一个窗口
C-x 5 bC-x 4 b在其他窗口中选择缓冲区
C-x 5 C-oC-x 4 C-o在其他窗口中显示缓冲区
C-x 5 fC-x 4 f在其他窗口中查找文件
C-x 5 rC-x 4 r在其他窗口中以只读方式查找文件
C-x 5 dC-x 4 d在其他窗口中运行 Dired
C-x 5 .C-x 4 .在其他窗口中查找标签
:-:-:-
 C-x ^让窗户变高
 C-x {缩小窗口
 C-x }让窗口变宽

格式化

:-:-
TAB缩进当前行(取决于模式)
C-M-\缩进区域(取决于模式)
C-M-q缩进 sexp(取决于模式)
C-x TAB缩进区域刚性 arg 列
M-;缩进评论
C-o在点后插入换行符
C-M-o将其余行垂直向下移动
C-x C-o删除点周围的空行
M-^与上一个加入行(带 arg,下一个)
M-\删除点周围的所有空白
M-SPC在点上正好放一个空格
M-q填写段落
C-x f将填充列设置为 arg
C-x .设置每行开头的前缀
M-o设置面

信息

:-:-
C-h i输入信息文档阅读器
C-h S在 Info 中查找指定的函数或变量
在节点内移动
:-:-
SPC向前滚动
DEL反向滚动
b节点的开始
在节点之间移动
:-:-
n下一个节点
p上一个节点
u提升
m按名称选择菜单项
n按编号 (1–9) 选择第 n 个菜单项
f遵循交叉引用(用 l 返回)
l返回您看到的最后一个节点
d返回目录节点
t转到信息文件的顶部节点
g按名称转到任何节点
其他
:-:-
h运行信息教程
i在索引中查找主题
s搜索节点以查找正则表达式
q退出信息

小缓冲区

以下键在 minibuffer 中定义

:-:-
TAB尽可能完成
SPC最多完成一个单词
RET完成并执行
?显示可能的完成
M-p获取先前的 minibuffer 输入
M-n获取稍后的 minibuffer 输入或默认值
M-r正则表达式向后搜索历史
M-s正则表达式向前搜索历史
C-g中止命令

键入 C-x ESC ESC 以编辑并重复使用 minibuffer 的最后一个命令。键入 F10 以激活文本终端上的菜单栏项

标签

:-:-
M-.查找标签(定义)
C-u M-.查找标签的下一个出现
M-x visit-tags-table指定一个新的标签文件
M-x tags-search正则表达式搜索标签表中的所有文件
M-x tags-query-replace对所有文件运行查询替换
M-,继续最后一个标签搜索或查询替换

缓冲器

:-:-
C-x b选择另一个缓冲区
C-x C-b列出所有缓冲区
C-x k杀死一个缓冲区

矩形

:-:-
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 (开始定义键盘宏
C-x )结束键盘宏定义
C-x e执行最后定义的键盘宏
C-u C-x (附加到最后一个键盘宏
M-x name-last-kbd-macro命名最后一个键盘宏
M-x insert-kbd-macro在缓冲区中插入 Lisp 定义

Emacs 搜索

正则表达式(常用)

:-:-
. (dot)除换行符外的任何单个字符
*零次或多次重复
+一次或多次重复
?零次或一次重复
\引用特殊字符
\c引用正则表达式特殊字符 c
|替代(“或”)
\(...\)分组
\(:?...\)害羞的分组
\(:NUM...\)显式编号分组
\n与第 n 组相同的文本
\b在断字时
\B不在断字

正则表达式(条目)

开始结束实体
^$
\<\>单词
\_<\_>象征
\‘\’缓冲

正则表达式(冲突)

这些其他class
[...][^...]显式集
\w\W单词语法字符
\sc\Sc具有语法 c 的字符
\cc\Cc类别 c 的字符

增量搜索

:-:-
C-s向前搜索
C-r向后搜索
C-M-s正则表达式搜索
C-M-r反向正则表达式搜索
M-p选择上一个搜索字符串
M-n选择下一个稍后搜索字符串
RET退出增量搜索
DEL最后一个字符的撤消效果
C-g中止当前搜索

再次使用 C-sC-r 在任一方向重复搜索。 如果 Emacs 仍在搜索,C-g 只取消不匹配的部分

查询替换

:-:-
M-%以交互方式替换文本字符串
M-x regexp使用正则表达式
SPC / y替换这个,继续下一个
,换这个,别动
DEL / n不更换就跳到下一个
!替换所有剩余的匹配项
^回到上一场比赛
RET退出查询替换
C-r进入递归编辑(C-M-c 退出)

杂项

Shell

:-:-
M-!执行一个shell命令
M-&异步执行shell命令
M-在区域上运行 shell 命令
C-u M-通过 shell 命令过滤区域
M-x shell在window shell中启动一个shell

国际字符集

:-:-
C-x RET l指定主要语言
M-x list-input-methods显示所有输入法
C-\启用或禁用输入法
C-x RET c为下一个命令设置编码系统
M-x list-coding-systems显示所有编码系统
M-x prefer-coding-system选择首选的编码系统

寄存器

:-:-
C-x r s在寄存器中保存区域
C-x r i将寄存器内容插入缓冲区
C-x r SPC将点的值保存在寄存器中
C-x r j跳转到保存在寄存器中的点

各种各样的

:-:-
C-u num数值参数
M--否定论点
C-q char带引号的插页

处理 Emacs Lisp 的命令

:-:-
C-x C-e评估点前的性
C-M-x评估电流定义
M-x eval-region评估区
M-:读取和评估 minibuffer
M-x load-library从加载路径加载 Lisp 库

简单的定制

:-:-
M-x customize自定义变量和面

在 Emacs Lisp 中进行全局键绑定:

(global-set-key (kbd "C-c g") ’search-forward)
(global-set-key (kbd "M-#") ’query-replace-regexp)

缩写

:-:-
C-x a g添加全局缩写
C-x a l添加模式本地缩写
C-x a i g为这个缩写添加全局扩展
C-x a i l为这个缩写添加模式本地扩展
C-x a e显式扩展缩写
M-/动态扩展前一个单词

拼写检查

:-:-
M-$检查当前单词的拼写
M-x ispell-region检查区域内所有单词的拼写
M-x ispell-buffer检查整个缓冲区的拼写
M-x flyspell-mode切换即时拼写检查

编写命令

语法
(defun command-name (args)
"documentation" (interactive "template")
body)
示例
(defun this-line-to-top-of-window (line)
    "Reposition current line to top of window.
With prefix argument LINE, put point on LINE."
    (interactive "P")
    (recenter (if (null line)
                  0
              (prefix-numeric-value line))))

标签:教程,窗口,正则表达式,单词,搜索,使用,缓冲区,Emacs
From: https://blog.csdn.net/Young_Pro/article/details/141018757

相关文章

  • Vofa+使用教程
    只要你发送的格式符合要求的话就能把数据画出来,效果如下:当然,也不是随便发个数据就能画的,要遵循某些协议。简单写了两个函数,实现了傻瓜式使用,如下。 #include"vofa.h"//按printf格式写,最后必须加\r\nvoidVofa_FireWater(constchar*format,...){uint8_tt......
  • Vue:Vuex-Store使用指南
    一、简介1.1Vuex是什么Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex也集成到Vue的官方调试工具devtoolsextension(opensnewwindow),提供了诸如零配置......
  • 微信小程序 网络请求使用封装好的mina-request
    1、安装、安装不了的时候使用手机热点npminstallmina-request2、构建npm3、使用 importWxRequestfrom'mina-request'import {getStorage,clearStorage,setStorage}  from './storage'import {ApiPathConst,DESKeyConst} from './constVar'//对WxRe......
  • kubernetes基于csi使用rbd存储
    描述ceph-csi扩展各种存储类型的卷的管理能力,实现第三方存储ceph的各种操作能力与k8s存储系统的结合。通过ceph-csi使用cephrbd块设备,它动态地提供rbd以支持Kubernetes持久化存储,并将这些rbd映射给pod做为块设备持久化数据使用。Ceph将pod存在块设备的数据以副本......
  • MySQL使用教程笔记(远程访问)
    远程连接MySQL数据库_mysql远程访问数据库-CSDN博客如何远程连接mysql数据库服务器_mysql如何连接远程数据库服务器_如何连接远程数据库mysql-腾讯云开发者社区-腾讯云(tencent.com)如何使用C#连接远程MySQL服务器?_webrtc_weixin_0010034-MySQL数据库(csdn.net)c#中mysq......
  • Java数组03:数组使用
    数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环或者ForEach循环。【该实例完整地展示了如何创建、初始化和操纵数组】publicclassTestArray{ publicstaticvoidmain(String[]args){ double[]myList={1.9,2.9,3.4,3.5}; /......
  • Vue3如何使用v-model写一个多条件联合搜索
    在Vue3中,使用v-model进行多条件联合搜索通常涉及到绑定多个输入字段到组件的数据属性上,并在搜索逻辑中根据这些属性的值来过滤数据。虽然v-model本身是针对单个表单元素进行双向数据绑定的,但你可以通过结合使用多个v-model和计算属性或方法来处理多条件搜索。以下是一个简单......
  • JDBC在java代码中的使用
    声明对于数据库的增删改查,在使用jdbc的过程中分二类,查(DQL)语句和增,删,改(DML语句)他们的整体都分为以下五部分,只是DQL语句多了数据的处理部分。在使用之前需要导入相关的jar包 1,加载驱动器(非必要,但是建议手动加载养成好习惯)2,创建连接3,创建会话4,执行会话5,关闭会话1,数据......
  • 【Azure Developer】使用Python SDK去Azure Container Instance服务的Execute命令的疑
    AzureContainerInstance服务介绍Azure容器实例(AzureContainerInstances,简称ACI)是一个无服务器容器解决方案,允许用户在Azure云环境中运行Docker容器,而无需设置虚拟机、集群或编排器。ACI适用于任何可以在隔离容器中操作的场景,包括事件驱动的应用程序、从容器开发管道......
  • 基于springboot的美食推荐菜谱教程管理系统-开题免费【论文、源码】
      博主介绍:......