一、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将光标切换到下一个窗口
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐