Emacs入门:重要的基本概念、基本读写操作以及一些常用的快捷键
Emacs入门:重要的基本概念、基本读写操作以及一些常用的快捷键
- 一、Emacs相关的基本概念
- 二、Emacs缓冲区简介
- 2.1 Emacs常用缓冲
- 2.2 Emacs缓冲区的切换方法
- 三、Emacs基本读写操作
- 四、Emacs常用快捷键汇总
一、Emacs相关的基本概念
如上图所示,Emacs包含的主要内容包括:Frame、Point、Status bar、Buffer和Mini-buffer。我们可以通过Emacs定制自己的工作环境,使它适合我们的工作,为了实现这个目的,我们首先要理解上图几个有关Emacs的基本概念:
概念 | 内涵 |
---|---|
缓冲区(Buffer)
|
用来保存输入内容的内存区域。注意,在Emacs中,一切都在内存中进行,除非我们按下Ctrl+x Ctrl+s 来保存
|
窗口(Frame)
|
用来显示编辑文本的区域 |
模式(Mode)
|
Emacs中最重要的概念,Emacs之所以功能强大,都是由各种模式提供的。比如,C/C++模式、shell模式、Perl模式、Python模式、HTML模式等等 |
迷你缓冲区(Mini-Buffer)
|
主命令行 |
理解重点:
(1)Emacs编辑器可以被认为是一种面向缓冲区的编辑器。对于所有类型的编辑器(比如word),所有编辑操作都在缓冲区中进行,然而,Emacs与大多数编辑器不同的是:Emacs编辑器可以同时开辟并管理多个工作缓冲区,因此,允许同时对多个文件进行编辑操作。
二、Emacs缓冲区简介
Emacs常用的缓冲区(Buffer)包括四个:Buffer、Mini-Buffer、Message Buffer和Scratch Buffer,下面分别介绍它们的作用、特点及相关快捷键。
2.1 Emacs常用缓冲
1、Buffer
:我们打开Emacs就会显示的编辑文本的缓冲区;
2、Message Buffer
:命令缓冲区,用来显示从Emacs启动开始的所有操作命令信息的缓冲区;
3、Scrathc Buffer
:草稿缓冲区,用来临时写的东西,不会被保存,除非使用Ctrl+x
Ctrl+W
命令。
4、Mini-Buffer
:主命令行
Emacs缓冲区的特点:
- (1)Emacs的“缓冲区”是脱离窗口或框架独立存在的,本质上Emacs的Frame只是显示缓冲区内容的工具。缓冲区内通常包含的内容包括:文件内容、Emacs内部的自定义内容(Message、Scrathc或Help等)。Emacs这种将窗口Frame和缓冲区(Buffer)分离的方式,使得Emacs的编辑过程非常灵活方便。
- (2)Emacs中打开缓冲区的数量是不受限制的,通常只显示一两个,其他缓冲区即虽然有显示,但是它们是存在于后台的。我们可以将缓冲区理解为一堆页面,其中仅有一页是当前页。
- (3)每个缓冲区都关联一个主模式,它决定该缓冲区的Emacs行为。比如,
text
模式是用于设计与书写文档相关模式;Lisp
模式是用来编辑Lisp程序的模式。
2.2 Emacs缓冲区的切换方法
(1)切换到主缓冲区(Mini-Buffer):使用Ctrl+x b
快捷键,此时光标会从Buffer跳转到Mini-Buffer,Ctrl+g
返回Buffer。
(2)查看当前所有缓冲区:当我们切换到Mini-Buffer的时候,按Tab
可以在一个新的Buffer界面Completions
上查看当前除了Mini-Buffer(主命令行)
以外的所有的缓冲区如下图所示:
(3)快速切换缓冲区:使用C-x right 和C-x left快速切换除了Mini-Buffer(主命令行)
以外所有当前缓冲区。
三、Emacs基本读写操作
1、创建文档
在Emacs中输入Ctrl+x
Ctrl+f
,这时会自动切换到Mini-Buffer
缓冲区中,想要创建的文件:
2、保存与关闭文档
在新建的文档中写入Python最经典的入门级代码print('Hello World!')
,使用Ctrl+x Ctrl+s
保存文档,并在Mini-Buffer中输入y
即可保存文档。
四、Emacs常用快捷键汇总
1、emacs常用帮助快捷键
方法 | 描述 |
---|---|
Ctrl+h + Ctrl+h
|
重复两次Ctrl+h 可以打开帮助界面
|
Ctrl+h t
|
打开官方自带的tutorial |
Ctrl+h k
|
查询快捷键(shortcut key)的帮助信息 |
Ctrl+h v
|
查找变量(variables)的帮助信息 |
Ctrl+h f
|
查询快捷键的帮助信息 |
2、emacs光标控制快捷键
方法 | 描述 |
---|---|
Ctrl+v
|
进入下一页(view next screen) |
Alt+v
|
进入上一页 |
Ctrl+l
|
在当前页面,将光标放置中心处,如果连续使用则分别放置于最下、中心和最上 |
Ctrl+p
|
将光标移动到上一行(previous) |
Ctrl+n
|
将光标移动到下一行(next) |
Ctrl+b
|
将光标移动到前一个位置(backward) |
Ctrl+f
|
将光标移动到前一个位置(forward) |
Alt+b
|
将光标向后移动一个单词(backward),如果是中文文档,则向前移动一个标点符号的内容 |
Alt+f
|
将光标向前移动一个单词(forward),如果是中文文档,则向前移动一个标点符号的内容 |
Ctrl+e
|
将光标移动到行尾(end) |
Alt+e
|
将光标移动到段尾/函数尾(end) |
Ctrl+a
|
将光标移动到行首(ahead) |
Alt+e
|
将光标移动到段首/函数首(ahead) |
Alt+<
|
将光标移动到文件开头 |
Alt+>
|
将光标移动到文件末尾 |
Ctrl+u
|
指定重复次数,比如Ctrl+u 8 Ctrl+f 表示向前移动8个字符
|
3、emacs常规操作捷键
方法 | 描述 |
---|---|
Ctrl+d
|
删除一个字符 |
Alt+d
|
删除一个单词 |
Alt+x 输入linum-mode
|
显示行号 |
Ctrl+g
|
终止当前输入的命令 |
Ctrl+x Ctrl+f
|
打开一个文件,该命令后面总是跟随目录/文件名 ,如果要打开的文件不存在,则创建新的文件
|
Ctrl+x k
|
删除缓冲区,执行该命令后,在Mini-Buffer 处显示Kill buffer: ,输入要删除的缓冲区名即可
|
Ctrl+x Ctrl-w
|
修改文件名并保存 |
Ctrl+w
|
剪切 |
Alt+w
|
复制 |
Ctrl+y
|
粘贴 |
Ctrl+s
|
向前搜索 |
Ctrl+r
|
向后搜索 |
Alt+%
|
进行替换,输入y 确定
|
Ctrl+_
|
撤销操作 |
Ctrl+x Ctrl+s
|
保存文档 |
Alt+x
|
运行(run command) |
Ctrl+x Ctrl+c
|
退出Emacs |
4、emacs多窗口捷键
方法 | 描述 |
---|---|
ctrl+x 2
|
将光标所在的窗口水平分为两个窗口 |
ctrl+x 3
|
将光标所在的窗口垂直分为两个窗口 |
ctrl+x 0
|
关闭光标所在的窗口 |
ctrl+x 1
|
关闭除光标所在窗口意外的所有窗口 |
ctrl+x o
|
将光标切换到下一个窗口 |
Emacs入门:重要的基本概念、基本读写操作以及一些常用的快捷键相关推荐
- 【积水成渊-逐步定制自己的Emacs神器】1:Emacs入门
前言 本文介绍了Emacs编辑器的入门知识,看完本文读者会知道Emacs的基本用法以及如何通过Emacs来学习Emacs,这会让你觉得整个学习Emacs的过程都是在被"授之以渔". ...
- 转:Emacs生存指南 (Emacs入门必读)
转载自:http://lifegoo.pluskid.org/?p=152 很不错的emacs扫盲文章 Emacs 生存指南 pluskid 2007 年 11 月 作为一个历史悠久的程序,网上有不少 ...
- Python 文件读写操作-Python零基础入门教程
目录 一.Python 文件的打开 open 二.Python 文件的关闭 close 三.Python 文件的读取 read 1.read 函数 2.readline 函数 3.readlines ...
- 【Unity入门计划】基本概念(8)-瓦片地图 TileMap 01
目录 1 TileMap概念 主要思想 优点 创建的层级 2 Unity中的TileMap 2.1 自动父级Grid 网格 2.2 Sprite精灵 2.3 Tile 瓦片 2.4 Tile Pale ...
- Emacs入门指南(1)
很早就听说Emacs这个开源的文件编辑器了,听说它的功能非常的强大,于是决定试用一下,没想到试用结果是这个"最好用"的编辑器给我的第一印象是"不知所揩",但随着 ...
- Doom Emacs入门:通过Doom Emacs框架搭建一个基本的Python开发环境及其基本操作
Doom Emacs入门:通过Doom Emacs框架搭建一个基本的Python开发环境及其基本操作 一.写在前面 1.1 明确目标:搭建一个完整的Python开发环境 1.2 前置工作 二.Doom ...
- 机器学习入门:重要的概念---信息熵(Shannon’s Entropy Model)
机器学习入门:重要的概念---信息熵(Shannon's Entropy Model) 个人公众号:follow_bobo 在机器学习里面,信息熵(Shannon's Entropy Model)其实 ...
- RocketMQ_01 RocketMQ入门简介及核心概念
RocketMQ_01 RocketMQ入门简介及核心概念 伟大的事物不是一时冲动做起来的,而是由一系列小事共同造就的 一.RocketMQ简介 RocketMQ是一款分布式.列队模型的消息中间件,由 ...
- emacs入门_Emacs入门
emacs入门 许多人说他们想学习Emacs ,但是许多人在最短暂的相遇后就回避了. 这不是因为Emacs不好甚至如此复杂. 我认为,问题在于人们实际上并不想学习Emacs. 他们希望对Emacs的传 ...
- Unity快速入门之一 3D基础概念、Camera、Canvas RenderMode的几种方式对比
最近要给公司的小伙伴做Unity入门,针对几个常用的知识进行快速入门介绍. Unity快速入门之一 3D基础概念.Camera.Canvas RenderMode的几种方式对比_翕翕堂 Unity快速 ...
最新文章
- Java Web项目结构
- 解决 Windows instance 时间不同步问题 - 每天5分钟玩转 OpenStack(153)
- OSChina 周一乱弹 —— 程序员进阶之路
- “约见”面试官系列之常见面试题之第一百零五篇之v-if与v-show(建议收藏)
- Struts2_2_解决配置文件冗余_动作类对象数据封装_数据类型转换_表单数据信息提示
- Robot Framework自动化测试框架核心指南-如何使用Java编写自定义的RobotFramework Lib
- 板式橡胶支座弹性模量怎样计算_Midas Civil支座模拟的详细解决方法
- python六种数据类型不可变_python面试题(-)可变数据类型与不可变数据类型
- Detected cartesian product for LEFT OUTER join
- linux下mysql解压包安装
- Android Studio 通过一个登录功能介绍SQLite数据库的使用
- matlab 最小二乘法拟合_最小二乘法辨识1阶离散传递函数
- whea_uncorrectable_error蓝屏代码
- Tbase安装遇错解决办法
- Word2016目录自动生成+页码从目录页后面显示
- dojo:animation
- 冯诺依曼 计算机名言,约翰.冯.诺依曼名言
- CSP-J2022入门组二轮补赛试题(山东)T2:宴会
- 好记性不如烂笔头The palest ink is better than the best memory
- Jetson-Xavier-NX使用教程(这里说插上烧好镜像的SD卡上电就可以直接用了)
热门文章
- oracle+suspend+参数,oracle数据库的挂起(Suspending)和恢复(Resuming)
- 阿里云服务器一年多少钱?阿里云企业级云服务器报价表
- 虚拟机打不开磁盘或它所依赖的某个快照磁盘
- 免费ICP域名备案查接口
- ios设置tabbar背景颜色_IOS UITabBarViewController 修改背景颜色
- IOS逆向学习之路之iPod touch4 越狱心得
- java openoffic linux_怎样使用Java读取OpenOffice文档
- DHCP server和DHCP relay配置
- Program size: Code, RO-data , RW-data, ZI-data
- 软件工程毕业设计课题(19)基于JAVA毕业设计JAVA外卖点餐系统毕设作品项目