Linux友人帐之Emacs文本编译器

news2025/7/14 15:15:55

一、概述

Emacs是一款功能强大、可定制、可扩展的文本编辑器,可以用于各种用途,如编程、文档处理和配置文件编辑。

安装

sudo yum install emacs

 二、基础入门

2.1emacs基本文件操作

emacs -nw命令

emacs -nw命令是在终端中以无界面(非图形化)的方式启动 Emacs 编辑器。其中 -nw 表示“no window”的缩写,即不启动 Emacs 图形界面。

启动后,用户可以在终端中使用 Emacs 的编辑功能,如文本编写、编辑、保存等。命令行界面下使用 Emacs 的操作方式与使用图形界面下的 Emacs 有一些区别,需要通过学习和实践来掌握。

emacs退出 

在 Emacs 中退出的常见方法是使用以下键序列:

  1. 按下 Ctrl 和 X 键来激活命令模式。
  2. 再按下 Ctrl 和 C 键来退出 Emacs。

或者你也可以使用以下的按键序列:

  1. 按下 Alt 和 X 然后键入 exit-Emacs
  2. 按下 Enter 键来退出 Emacs。

 文件操作快捷键

C是ctrl,M是alt

C-x是同时按,C x是先按ctrl放开后再按x

C-x C-f打开emacs默认目录下home的某个文件
C-x d打开文件路径,查看某个文件的属性信息,并在这个文件上进行编辑操作
C-x i将某个文件的内容插入到当前的缓冲区
C-x C-v打开一个文件,取代当前缓冲区
C-x C-s保存文件
C-x C-w将当前缓冲区文件另存为新文件
C-x C-q切换为只读或者读写模式
C-x C-c退出Emacs

 2.2操作emacs中的多个缓冲区

在 Emacs 中,可以使用 C-x C-b 命令打开缓冲区列表,显示当前所有打开的缓冲区。

同时,可以使用以下快捷键来操作多个缓冲区:

1. 切换缓冲区:C-x b

使用 C-x b 命令可以切换当前显示的缓冲区。按下 C-x b 后,系统会提示输入缓冲区名称,然后选择需要切换的缓冲区。

2. 分屏显示缓冲区:C-x 2 和 C-x 3

使用 C-x 2 和 C-x 3 命令可以将当前缓冲区分成两屏或三屏,用于同时显示多个缓冲区。分屏之后,可以使用 C-x o 命令在不同屏幕之间切换。

3. 切换最近使用的缓冲区:C-x b TAB

使用 C-x b TAB 命令可以切换到最近使用的缓冲区。每次按下 TAB 键,系统会切换到上一个使用过的缓冲区。

4. 显示缓冲区列表:C-x C-b

使用 C-x C-b 命令可以列出当前打开的所有缓冲区,并可以选择需要显示的缓冲区。在缓冲区列表中,可以使用 C-d 命令删除缓冲区,或使用 m 命令修改缓冲区属性。

窗口操作 

C-x 0关闭当前窗口C-x s保存所有窗口缓冲
C-x 1只留下一个窗口C-x b选择当前窗口的缓冲区
C-x 2垂直均分窗口C-x ^纵向扩大窗口
C-x 3水平均分窗口C-x }横向扩大窗口
C-x o切换到其他窗口
#include <stdio.h>
int main() {
    int sum = 0, i = 0;
    char input[6];
    while (1) {
        sum = 0;
        scanf("%s", input);
        for (i = 0; i < 5; i++) {
            if (input[i] == '\0') {
                break;
            }
            sum = sum * 10 + input[i] - '0';
        }
        printf("input=%d\n", sum);
    }
    return 0;
}

Shell模式

以下是在 Emacs 中使用 Shell 的方法:

  1. 打开 Emacs。

  2. 进入 Shell 模式。可以按下 Ctrl + u,然后输入 M-x shell,或者打开一个新的窗口,输入 M-x shell。

  3. 当你进入 Shell 模式后,你会看到一个类似于终端的界面,可以输入 Shell 命令。

  4. 如果你想运行一个 Shell 命令,可以直接输入命令,然后按下回车。

  5. 如果你想退出 Shell 模式,可以输入 exit 命令或者按下 Ctrl + d。

  6. 如果你想在 Emacs 中运行一个 Shell 脚本文件,可以先进入 Shell 模式,然后输入 sh filename.sh。

  7. 在 Shell 模式下,你还可以使用 Emacs 的快捷键来编辑命令行。例如,可以按下 Ctrl + a 或者 Home 键将光标移到行首,Ctrl + e 或者 End 键将光标移到行尾。

总之,Emacs 的 Shell 模式提供了使用 Shell 的便利性,同时还能够使用 Emacs 的强大编辑功能来编辑命令行。

emacs alt -x无效

如果您正在使用Windows系统,按下“Alt-x”键可能无法触发Emacs的交互式命令提示符。相反,您可以尝试使用以下方法之一:

1. 使用“M-x”代替“Alt-x”,其中“M”表示Meta键,通常是Alt键或Esc键。因此,您可以按下“Esc-x”或“Alt-x”替代它。

2. 如果您的键盘没有Meta键,则可以在Emacs中通过设置某些选项来模拟Meta键。例如,您可以使用“Esc”作为Meta键,通过按下Ctrl-[或Ctrl-]键来模拟它。

3. 您可以将Emacs作为前台应用程序打开,并使用菜单栏或工具栏中的命令来执行您需要的操作。

请注意,这些方法可能因不同的操作系统和Emacs版本而有所不同。如果上述方法都不能解决问题,请提供更多信息以获取更多帮助。

M-x shell打开Shell
M-!执行Shell命令
M-l M-!执行Shell命令,命令的输出插入在光标当前位置,而不打开新的输出窗口
M-|针对某一特定区域执行shell命令
M-l M-!执行Shell命令,命令的输出插入在光标当前位置,而不打开新的输出窗口
M-|针对某一特定区域执行shell命令

 在 Emacs 中退出 shell 有几种方式:

1. 使用 Ctrl-d 快捷键退出 shell。

2. 输入 `exit` 或 `logout` 命令退出 shell。

3. 使用 `C-c C-d` 快捷键退出 shell。

4. 使用 `C-c C-z` 快捷键进入 Emacs 的命令行模式,然后使用 `fg` 命令将 shell 进程切回前台,再输入 `exit` 命令退出 shell。

注意:以上方法中的快捷键 `C` 表示 Ctrl 键。

2.3emacs的基本光标操作

C-f光标前进一个字符M->光标移动到文件尾部
C-b光标后退一个字符C-M-f向前匹配括号
M-f光标前进一个字C-M-b向后匹配括号
M-b光标后退一个字C-i将光标所在位置居中
C-a光标移动到行首M-n or C-u n重复操作随后的命令n次
C-e光标移动到行尾C-u重复操作随后的命令4次
M-a光标移动到句首(第一个非空字符)C-u C-u重复操作随后的命令8ci
M-e光标移动到句尾(最后一个非空字符)C-x ESC ESC执行理事命令记录,M-p选择上一条命令,M-n选择吓一跳命令
C-p光标移动到上一行C-d删除一个字符
C-n光标移动到下一行M-d删除一个字
C-v向下翻页C-k删除一行
M-v向上翻页M-k删除一句
M-<光标移动到文件头部C-_撤消操作

 2.4emacs文本的复制、剪切与粘贴

高亮显示文本

要高亮显示或标记文本,首先,导航到要突出显示的文本。接下来,按Ctrl + 空格键C-空格键)。Emacs 将设置一个开始标记点,然后您可以简单地用箭头键移动光标以突出显示您想要的文本。

使用Cx h突出显示当前文档或缓冲区的所有文本。按C-空格键取消选择所有突出显示或选定的文本。

使用Alt + H ( Mh ) 选择当前段落中的所有文本。

复制和粘贴

Ew,即 ( Esc + w ) 在 Emacs 中复制突出显示的文本。导航到要粘贴文本的点,然后按Cy

Cw剪切突出显示或选定的文本,然后导航到要粘贴文本的位置并按Cy

2.5emacs中删除和撤销

删除文本

您可以使用键盘上的DeleteBackspace键来删除 Emacs 中的文本,但为了提高您的工作效率,让我们更进一步。

例如,要快速删除整个单词,请将光标移动到单词的开头并按Md。要删除多个单词,请按住M(Meta 键)并按住d键。

您可以通过将光标移动到行首然后按Ck来快速删除整行。该命令删除从光标开始到行尾的所有文本。

撤消更改

如果您不打算剪切或删除文本,您可以使用 Emacs 撤消命令快速撤消您最近的操作。

只需按Cx u即可撤消,并继续重复快捷方式以撤消最近的操作。或者,您可以按C-/(正斜杠)快捷键。

2.6emacs中的查找与替换功能

在 Emacs 中搜索文本

如果您想在文档中搜索特定的单词或文本,只需按Cs,Emacs 就会进行向前搜索。它会提示您输入搜索词。一旦你开始输入,Emacs 就会主动搜索关键字。要向后搜索,只需按Cr

在Emacs中,替换功能可以通过以下两种方式进行:

1. 替换单个字符:将光标置于要替换的字符上,然后按下“Ctrl + h”,再输入替换的字符即可。

2. 替换多个字符:使用Emacs的“查询替换”功能,可以替换多个字符。按下“Alt + x”,输入“query-replace”打开“查询替换”命令。接着输入要替换的字符和替换成的字符,然后按“Enter”开始替换。如果要逐个确认每一个替换操作,可以使用“query-replace-regexp”命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1102980.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CANoe.Diva配置模板的使用

文章目录 前言一、CDD导入二、保存配置三、使用配置模板 前言 DiVa 是一种 CANoe 选项&#xff0c;用于对 ECU 中的诊断软件实施进行自动化测试。 可以通过CDD文件自动生成测试用例&#xff0c; CANoe 自动执行这些测试用例并生成结论性测试报告。 一、CDD导入 在新建Diva工程…

解决QT中文乱码

选中文本带有中文字符的文件&#xff0c;然后按如下点击 弹出对话框&#xff0c;选择当前操作系统的编码格式&#xff0c;选择Save with Encoding 中文字符前用u8进行标识

【知识】超详细! 论文相关知识科普大全

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] CSDN上粘贴有点问题&#xff0c;请前往原文查看&#xff0c;以便点击链接&#xff1a; 【知识】超详细! 论文相关知识科普大全 - 小锋学长生活大爆炸

C++数据结构X篇_16_二叉树的拷贝和释放(采用递归的方法)

在上篇的基础上&#xff0c;本篇介绍如何进行二叉树的拷贝和释放。从代码中可以看到采用递归方式进行的拷贝、释放操作&#xff0c;基本套路都是一样的。 文章目录 1. 二叉树的拷贝2. 二叉树的释放 1. 二叉树的拷贝 #include <iostream> using namespace std;//定义二叉…

美国经济危机历史与展望

目录 美国一战靠做两边的军火生意快速成长 门罗主义 咆哮的二十年 经济繁荣发展 经济大衰退前期 当时美国发生经济危机的时候&#xff0c;为什么很多乳制品加工商宁愿把牛奶导入河中&#xff0c;也不卖&#xff0c;为了保持商品的价值&#xff0c;为什么不能贱卖呢&#xf…

Linux性能优化--性能追踪2:延迟敏感的应用程序

11.0 概述 本章包含了一个例子&#xff1a;如何用Linux性能工具在延迟敏感的应用程序中寻找并修复性能问题。 阅读本章后&#xff0c;你将能够&#xff1a; 在延迟敏感的应用程序中用ltrace和oprofile弄清楚哪里产生了延迟。对“热点”函数的每个调用&#xff0c;用gdb生成栈…

spring java 动态获取consul K/V

spring java 动态获取consul K/V 1.springConsul配置kv路径 spring:cloud:consul:enabled: ${CONSUL_ENABLED:true}host: ${CONSUL_HOST:localhost}port: ${CONSUL_PORT:8500}config:prefix: ${CONSUL_CONFIG_PREFIX:config} #consul kv前缀fail-fast: ${CONFIG_FAIL_FAST:fa…

优秀案例 | 以虚拟人IP“科普熊猫”,为2023成都市全国科普日注入新活力

成都科普IP | 全国首个科普数字虚拟形象大使 虚拟人IP“科普熊猫” 2023成都市全国科普日启动仪式上&#xff0c;成都市科学技术协会现场发布了成都市科普熊猫数字虚拟形象大使——虚拟人“科科”。在2023成都世界科幻大会即将召开之际&#xff0c;结合了3D动作捕捉技术以及AR技…

【Java 进阶篇】JavaScript DOM Element 对象详解

JavaScript是一门广泛用于网页开发的脚本语言&#xff0c;而DOM&#xff08;文档对象模型&#xff09;是JavaScript在网页中操作HTML和XML文档的核心。DOM以树状结构表示文档&#xff0c;允许开发者以编程方式访问、操作和修改文档的内容和结构。在DOM中&#xff0c;Element对象…

MySQL查询优化看一篇就够了

关联查询优化 数据准备 #分类 CREATE TABLE IF NOT EXISTS type( id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, card INT(10) UNSIGNED NOT NULL, PRIMARY KEY ( id ) );#图书 CREATE TABLE IF NOT EXISTS book(bookid INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,cardINT(10…

从自动化到测开,测试人员逆袭之路从此起步

在当今竞争激烈的软件测试行业中&#xff0c;近期的招聘市场确实面临一些挑战。大量的求职者争相涌入岗位&#xff0c;许多热衷于功能测试的人士甚至难以找到理想的工作机会。更不幸的是&#xff0c;连自动化测试和性能测试这些专业领域也受到了测试开发人员的竞争压力。然而&a…

Springboot 启动报错@spring.active@解析错误

Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character that cannot start any token. (Do not use for indentation)in reader, line 10, column 13:active: spring.active^查看是否勾选

uni-app--》基于小程序开发的电商平台项目实战(六)

&#x1f3cd;️作者简介&#xff1a;大家好&#xff0c;我是亦世凡华、渴望知识储备自己的一名在校大学生 &#x1f6f5;个人主页&#xff1a;亦世凡华、 &#x1f6fa;系列专栏&#xff1a;uni-app &#x1f6b2;座右铭&#xff1a;人生亦可燃烧&#xff0c;亦可腐败&#xf…

Tang Capital宣布收购纳斯达克上市公司Rain Oncology100%股权

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;纳斯达克上市公司Rain Oncology(Rain)宣布近期已收到Tang Capital Partners旗下的子公司Concentra Biosciences以每股1.25美元的现金收购要约。 这家临床阶段微型市值癌症治疗药物开发商的股价在消…

【打印机故障】打印时一直显示任务“排队中”无法打印或取消

解决办法 一、关闭打印服务 如果打印任务无法取消或者删除&#xff0c;可以先暂停打印机的“服务&#xff0c;关闭”后台处理程序。具体方法如下&#xff1a; 1.在开始菜单搜索框中输入 services.msc或者中文输入“服务”&#xff0c;然后按下 enter 键。 2.从服务列表中选择打…

【Qt控件之QDialogButtonBox】概述及使用

概述 QDialogButtonBox类是一个小部件&#xff0c;它以适合当前小部件样式的布局呈现按钮。 对话框和消息框通常以符合该台界面指南的布局呈现按钮。不同的平台会有不同的对话框布局。QDialogButtonBox允许发人员向其添加按钮&#xff0c;并将自使用用户的桌面环境所适合的布局…

发现了一个牛逼的网站 可以免费使用chatGPT(看到最后)

最近,打工人们集体陷入了一场焦虑。“一觉醒来,我感觉自己快要失业了……”“身为文字工作者,我该如何自保饭碗?”“人工智能到底会不会完全取代人类的工作?” ChatGPT最近都听说了吧?据说,改论文、敲代码、写文案……只有你想不到的,没有人家办不成的! 它是什么? …

一篇文章带你搞定所有二叉树题型的递归思维(思路超详细)

文章目录 &#x1f380;前言&#xff1a;&#x1f3c5;先在开头总结一下&#xff0c;二叉树解题的思维模式分两类&#xff1a;&#x1f387;先解释一下“前序位置”&#xff0c;“后序位置”的意思&#x1f3e8;举一个简单的例子&#xff1a; &#x1fa80;下面通过两道例题&am…

HTTP 协议的基本格式(部分)

要想了解HTTP&#xff0c;得先知道什么是HTTP&#xff0c;那么HTTP是什么呢&#xff1f;HTTP (全称为 "超文本传输协议") 是一种应用非常广泛的 应用层协议。那什么是超文本呢&#xff1f;那就是除了文本&#xff0c;还有图片&#xff0c;声音&#xff0c;视频等。 …

Linux系统编程_进程:C程序空间分配、fork、wait、exec、system、popen

1. 进程相关概念&#xff08;414.1&#xff09; 问1. 什么是程序&#xff0c;什么是进程&#xff0c;有什么区别&#xff1f; 程序是静态的概念&#xff0c;gcc xxx.c –o pro&#xff0c;磁盘中生成pro文件&#xff0c;叫做程序进程是程序的一次运行活动&#xff0c;通俗点即…