博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Emacs学习笔记(2): 初识Emacs
阅读量:6223 次
发布时间:2019-06-21

本文共 2516 字,大约阅读时间需要 8 分钟。

内容提要

1.Emacs是什么

2. Emacs能做什么

3. Emacs的界面

4.基本概念--命令

5. 基本概念--快捷键

6. 基本概念--模式

Emacs学习笔记2: 初识Emacs

1.Emacs是什么

其实很难给Emacs下一个定义。正统的说法也许是""。

最初人们认为Emacs是一个编辑器(Editor),与Vim一起并称为两大神器,据说Vim是编辑器之神而Emacs是神之编辑器,又据说世界上的程序员分三种,一种使用Emacs,一种使用vim,剩余的是其它。

也有人认为Emacs是一个架构在编辑器上的集成环境,除了最基本的编辑功能,还可以完成文件管理、终端模拟、浏览网页、收发邮件、编译程序等工作,以及煮咖啡。

更有人说Emacs是伪装成编辑器的操作系统,甚至说。

Emacs最初由RichardStallman在1975年开发,之后产生了众多的衍生版本,而目前使用得最多的两个版本是RichardStallman在1984年开发的GNUEmacs和1991年由JamieZawinski写成的XEmacs。Emacs可谓历史悠久,目前的GNU Emacs的版本是23.4。。本文不想将的战火烧到这里,所以还是就此打住,来看看Emacs能做什么。

2. Emacs能做什么

师兄:

据我所知,Emacs 的能力包括:
1.    编辑文本
2.    编辑程序
3.    作为其它程序的界面
4.    作为操作系统
5.    煮咖啡

Emacs是一个具有超强扩展性,超强定制性的操作平台,它能做什么取决于你对它的定制和扩展。Emacs之所以强大,就来源于其近乎无限的可定制性和可扩展性。

3. Emacs的界面

未定制的Emacs如下图所示:

0 1329317327v33B

整个窗口在Emacs中叫做frame,图形界面下的Emacs可以打开多个frame。每个frame从上到下分成3部分,分别是缓冲区,状态栏和回显区。

缓冲区是编辑的主区域,但是在这里操作的还不是真正的文件,而是文件的一个缓存(buffer)。只有执行写入操作时,才会将buffer的内容写入到文件。缓冲区可以分成多个区域,缓冲不同的内容。这些区域在Emacs中成为"窗口"。

缓冲区之下是状态栏,显示当前的一些状态信息,比如图中从左至右依次为:
U: 当前的文件编码是UTF-8, 如果是GBK会显示c
**: 文件状态,**表示未保存,--表示可写,%%表示只读
Emacs1: 是当前编辑的文件的名称
All: 表示当前缓冲区已经显示文件的所有内容,否则会显示比如Bot,表示处于文件的末尾处
L23: 当前光标所在的行数
fundamental: 当前的模式
等等,不同发行版的Emacs显示的状态栏内容可能会有所不同。
最下面是回显区,提示当前正在进行的操作。比如"文件已保存"之类的信息。如果一个命令没有输入完,这里还会显示已经输入的指令,提示用户。

4.基本概念--命令

对Emacs所有的操作都是通过调用命令实现的。对于一些常用的命令,会定义快捷键以便快速使用。

不管是否有快捷键,都可以通过M-x command 的方式执行命令。(M-x即Alt+x,是一种快捷键,后面会有介绍)比如输入回车,相当于:
M-x newline
通过M-x执行命令时,可以使用 TAB 补全,使用 M-p 上翻, M-n 下翻。
Emacs中的取消通常是连按三下ESC:
ESC ESC ESC (M-x keyboard-escape-quit)
但是在命令执行过程中,有可能该命令无法使用(比如有些命令是交互式的,需要输入一些参数),所以中止一条命令的执行最好使用C-g (M-x keyboard-quit)。

5. 基本概念--快捷键

本质上,快捷键只是一种发送命令的方法!

Emacs的快捷键通常以组合键的方式定义。如M-x 表示Alt+x。前面的字母M代表修饰符,Emacs定义的修饰符如下:
C-:Control
M-: Alt(应该是Meta,在 PC 上,Meta键 通常对应 Alt 键)
C-M-: 同时按住 Ctrl 和 Alt
S-:Shift
RET:Return
TAB:Tab
ESC:Esc,等价于M-。比如,C-M-r ,等价于ESC C-r
SPC:空格键
DEL:退格键
Delete:删除键
上面提到了ESC C-r。这是一种组合方式,表示先按ESC,再按C-r。Emacs中的很多快捷键定义成组合的方式。如 C-x C-c(M-x save-buffers-kill-emacs)
此外还有些命令可以传递参数,在Emacs的表示法中用 (#) 代表。如:
C-u (#) C-f 代表重复#次C-f

6.基本概念--模式

Emacs是一种“有模式”的编辑器。如果用过Vim就很容易理解。不过Emacs中的模式分成主要模式(major mode)和次要模式(minor mode)两种。

主要模式由文件类型决定,每个buffer打开文件时会根据文件类型决定其主要模式。常见的主要模式有:

fundamental-mode:缺省的 Emacs 模式,拥有最少设置和绑定
text-mode:编辑文本的基本模式
c-mode:用于编辑 C 程序源代码
lisp-interaction-mode:用于编辑和编译 Lisp 代码
ptex-mode:用于编辑 TeX 文档

次要模式可以组合到主要模式中,常见的次要模式比如:

abbrev-mode:用于生成和使用缩写
auto-fill-mode:用于自动文字回绕、填充较长的行和段落
line-number-mode:显示当前行号
overwrite-mode:覆盖模式,代替默认的插入模式

可以通过命令来指定模式:M-x  mode_name
对于一个buffer来说,当前的主要模式只能有一种,当指定主要模式时,原来的主要模式会被替换;而当前的次要模式可以有多种。
如果输入的模式包含在当前模式中,对于主要模式,会清空所有的次要模式;对于次要模式,会关闭这个次要模式。
模式的变化在状态栏中可以看到。

转载地址:http://jirja.baihongyu.com/

你可能感兴趣的文章
Oracle之rman数据库在非归档模式下的备份和恢复
查看>>
宏常量,宏替换,const常量
查看>>
数学函数最小值为什么可以通过导数=0来求出呢?
查看>>
计算机操作系统(三)--- 处理器体系结构(一)
查看>>
poj1564
查看>>
poj1081
查看>>
poj1731
查看>>
day10:vcp考试
查看>>
BestCoder Round #74 (div.2)
查看>>
Kruskal HDOJ 1863 畅通工程
查看>>
解决MyEclipe出现An error has occurred,See error log for more details的错误
查看>>
BZOJ4942 & UOJ314:[NOI2017]整数——题解
查看>>
109.110.100.56 samba用户名 PAS, 密码 111111
查看>>
MySql的replace into 语句
查看>>
410. Split Array Largest Sum
查看>>
转 Python爬虫实战二之爬取百度贴吧帖子
查看>>
hdu 4960 记忆化搜索 DP
查看>>
layuiadmin更新echarts
查看>>
beanstalk源码剖析——概述
查看>>
[转] socket异步编程--libevent的使用
查看>>