引子

人们都说Emacs是神器,安装看看,这个神器确实够神:没有萌萌的图标,没有帅气的界面,没有性感的代码地图(SublimeText的mini map)。刚安装好的Emacs,就是一个呆到爆、土掉渣、傻到顶的“白痴”编辑器。

“就评这也能说是神器?在如今的编辑器大战中,Emacs也就是当作一个老古董任人凭吊了吧”。

好吧,其实刚刚装好的Emacs,就是一个刚刚初始的孩子,啥也不会,啥也不懂。都需要你亲手去调教呢。将来是一个小家碧玉,还是一个大家闺秀,抑或是一个女汉子,一切皆有可能啊。唯一可以确定的,如果你持之以恒的调整相关配置,未来一定可以得到一个为你量身定制的文本编辑器。而且,这个编辑器在Windows、Linux、Mac OSX、等主流浏览器上都有发行。

这也就是说,你会得到一个包打天下的神兵喔,是不是很吸引人?

我有心开一个Emacs的入门专题。在写这个专题的过程中,我也可以和大家一起学习,一起进步。

好吧,下面咱们言归正传,开始今天的话题。

Emacs以令人眼花缭乱的组合键“闻名于世”。要想使用好Emacs,死记硬背是不行的,多多的使用才是正途。然而,阅读Emacs使用手册、教程,有时会感到不够方便。因此各种各样的“CheatSheet”应运而生。简单的吧各种按键组合罗列起来,做“快速索引”我觉得还不够便捷。因此,我自己写了这篇文章,把我整理的“CheatSheet”写出来,作为积累保留以后检索使用。

Emacs中的基本文字编辑

Emacs是文本编辑器,虽然经过各位“牛人”的长期支持,Emacs已经在向“操作系统”演进,通过众多的“包”(Package),已经可以做到绝大多数你需要她完成的功能,所以Emacs中最基本的仍然是文字编辑功能。

使用Emacs编辑文本,主要涉及的功能包括:光标移动、删除文字、剪贴板的使用、Undo/Redo、文件操作等。下面我们一个个的来讲一讲。

Emacs中的光标移动

Eamcs中移动光标,和Windows操作系统中的绝大多数文本编辑器类似,可以使用“方向键”、“PageUP/PageDown”等按键完成。但是作为在“终端”时代生存至今的Emacs,还提供了让双手不离开键盘区,就可以移动光标的方法,而且在有的时候,这些组合按键的效率更高。

Emacs移动光标的组合键不少,我用下面这张图来说明。按图索骥,已经覆盖了Emacs原生的光标移动方法。

需要说明的是:在Emacs文档中,“Meta”键对应的是Windows键盘中的“Alt”键。

图1:Emacs光标移动图

此外,Emacs移动到指定行的方法是:

M-g M-g:Emacs会要求输入行号,移动光标到指定行

Emacs中的删除

在Emacs删除文字有很多种方法。在说明相应的操作方法前,我们需要先弄明白几个概念:“删除(Delete)”、“移除(Kill)”、“召回(Yank)”还有“移除环(Kill-Ring)”

好吧,“删除”和“移除”在文本编辑的过程中实现的效果非常类似——对应的字符或内容在文档中“消失”了。存在细微差别的地方在与取回这些“消失”的内容的方法上:

被“删除”的内容,只能使用“撤销(Undo)”的办法来找回这些“消失的字符”。和大多数人预想的一样,这些“消失的字符”只会重新出现在原来它们所在的地方。关于Emacs的删除操作请看下图:

图2:Emacs的删除操作

Emacs的剪贴板以及Undo/Redo

被“移除”的内容,除了可以使用“撤销”的方法了找回内容以外,还可以使用“召回”的方法让这些“消失”的内容出现在当前光标之后。这样的操作效果和使用了“剪贴板”的效果类似了。

“召回”,是将移除的内容插入到光标所在位置的一种操作。使用召回操作,让人有一种使用“剪贴板”的感觉。不过Emacs会记录多次“移除”操作的内容,这一点可要比windows操作系统提供的“剪贴板”功能要强大多了。这种记录多次“移除”操作内容的机制在Emacs中叫做“移除环”——Yank Ring。

“移除环”是Emacs存储移除内容的一种机制,其中含有多次“移除”操作的内容。之所以称其为“环”是因为在Emacs中提供了在光标位置插入不同“移除内容”的方法。而访问“移除内容”时是按照“环”的方式循环访问的。关于Emacs的移除操作和召回操作请见下图:

图3:Emacs的移除和召回操作

如果输入时错误的使用了“撤销”命令,而需要“撤销前面的撤销”操作,Emacs提供了“重做(Redo)”的方法:随便移动一下光标,在使用“撤销”命令 即可。

Emacs中的查找和替换

任何编辑器都有查找和替换的功能,Emacs也不例外。在Emacs中最常用的查找方法是“增量查找”。除此之外,Emacs还提供了“正则查找”、“词组查找”、“简单查找”三种方法。这些查找方法,一般来说,熟练掌握其中的一至两类就足够应付日常使用的需要了。

“增量查找”是“边输入边查找”的查找方式。也是在Emacs中使用最为频繁的一种查找方式。“正则查找”则是输入一个正则表达式来进行查找的方式。“词组查找”意味着输入的是一个词组(在英文等语言环境下,词组是有意义的。在中文环境下,应用的就少一些了)。“简单查找”和“增量查找”对应,是在用户输入完所有待查内容后才启动查找的方法。

几类查找的操作方法见下图:

图4:Emacs的查找

有查找就有替换。在Emacs中,替换一般需要通过调用命令的方式实现。Emacs中提供的替换方式包括“全文替换”、“正则替换”、“交互式替换”三种方式。

其中“全文替换”和“正则替换”是从光标位置向后替换文字。“交互式替换”是在替换的过程中有控制的确定是否执行替换操作。

按Meta-% 即可启动查找且替换模式。

Emacs中的文件操作

基础的Emacs文件操作是创建、保存、另存。

创建新文件:

使用组合键 Ctrl-x Ctrl-f 打开“find file”

在提示符处输入一个不存在的文件名

回车确认后,Emacs即创建了一个空的Buffer供输入使用。

保存文件

Emac的保存文件非常简单,只需要按下组合键Ctrl-x Ctrl-s即可。

另存文件

要另存一个文件,按下组合键Ctrl-x Ctrl-w,按提示输入新的文件名即可。

小结

今天我们看到的是Emacs的基本操作。明天我们开始Emacs的训练之旅吧。期待我们的Emacs小兵快快成长。哈哈!

修订记录

2015-03-20: 根据读者@鱼小号的建议增加了Meta键在Windows下的说明,并修订了图1中的错误

emacs linux 教程,Emacs入门系列:3分钟学会Emacs基本操作相关推荐

  1. Linux教程从入门到精通

    为什么80%的码农都做不了架构师?>>>    Linux教程从入门到精通 Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linu ...

  2. 【 I.MX6U-ALPHA 】嵌入式Linux Ubuntu系统入门系列(二)Ubuntu 系统入门

    目录 1.Ubuntu系统初体验 1.1.开启Ubuntu虚拟机 1.2.系统设置 1.3.中文输入法 1.4.Ubuntu终端操作 2.Shell操作 2.1 Shell基本操作 2.2.常用She ...

  3. NiosII软处理器快速入门- 10分钟学会NiosII(1)

    http://hi.baidu.com/hieda/blog/item/7f69080e9efb80ce7bcbe13d.html Nios简单介绍: Nios II是一个用户可配置的通用RISC嵌入 ...

  4. emacs linux 教程,Emacs教程

    简介 没 有听说过 Emacs 吗?没有关系,花上30分钟就能了解和熟悉这个古老而强大 的编辑器.他被很多人称作世界上最强大的编辑器.用户从无数高手到IT民工到 普通文本编辑器用户,可以符合几乎所有人 ...

  5. pulsar 容量_[Pulsar系列] 10分钟学会Pulsar消息系统概念

    Apache Pulsar Pulsar是一个支持多租户的.高性能的服务与服务之间消息通讯的解决方案,最初由雅虎开发,现在由Apache软件基金会管理. Pulsar在Yahoo的生产环境运行了三年多 ...

  6. 20分钟学会mysql_5分钟学会mysql基本操作

    mysql视频教程栏目介绍如何快速学会mysql基本操作 相关免费学习推荐:mysql视频教程 文章目录一.SQL是什么? 分类: 二.关于数据库CRUD操作 1.操作表list: 2.对表内数据进行 ...

  7. emacs linux 教程,emacs初体验

    在Windows下欢快地使用emacs 使用linux开发环境 linux下无论是下载开发软件.安装库,还是系统的命令都比window要优秀. 因此使用虚拟机加xmanager可以体验到2个系统无缝切 ...

  8. emacs Linux Java编程环境_Linux下搭建用emacs查看代码的开发环境

    在windows下面我们有source in sight可以方便的浏览大工程中的代码,切换到linux环境下开发时,我们也可以搭建一个这样的环境.下面的内容将介绍如何搭建这样一个开发环境(这里我们假设 ...

  9. shell linux教程,Shell入门基础知识

    Shell 简介 Shell作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 常常作为批处理命令来 ...

最新文章

  1. 怎么卸载云骑士装机大师
  2. AssetManager asset使用
  3. 混合SSVEP-P300 BCI生产双频SSVEP
  4. wxWidgets:多文档界面实例
  5. 【BZOJ1048】分割矩阵(记忆化搜索,动态规划)
  6. c语言程序设计现代方法快速排序,C语言实现快速排序改进版
  7. Asp.Net WebApi swagger使用教程
  8. 【元胞自动机】基于matlab元胞自动机模拟交通事故道路通行量【含Matlab源码 356期】
  9. 【项目管理】在IDEA中使用MyBatis_Generator生成Dto、Dao、Mapping
  10. 关于wineQQ8.9.19983deepin23版本提升不能在使用请升级,Linux偷懒升级方法
  11. Protel99SE教程(一)——原理图封装
  12. 渝粤题库 陕西师范大学 《教育社会学》作业
  13. CSDN各产品线月度NPS分析报告新鲜出炉【2021年7月】
  14. flash 火狐总是崩溃_火狐浏览器Adobe Flash崩溃怎么办?最终解决方法
  15. win服务器系统设置休眠时间,win7系统电脑设置休眠时间的操作方法
  16. 软件项目管理考试指南—By XJTUSE【YJQ】
  17. 特征工程与表示学习:人工 vs 自动
  18. 求最大连续区间和的几种方法
  19. ps制作台式计算机图标,PS软件制作计算机图标教程
  20. windows环境下anaconda-navigaotr出现adding featured channels一直打不开的情况

热门文章

  1. array.map循环,使用return或者break都不能退出循环
  2. 前端面试题(四方伟业)
  3. 九、Mysql数据备份与恢复
  4. Nginx入门3:Nginx常用命令;(启动nginx;启动时,指定配置文件;测试配置文件,查看当前使用的哪个配置文件;显示nginx版本;停止nginx;修改配置文件后,重载配置文件;)
  5. 张首晟生前最著名演讲:这几句话可以总结人类所有知识
  6. 项目质量管理---实施质量保证
  7. 图片无损放大软件哪个好?快把这些软件收好
  8. MacBook, MacBook Air以及MacBook Pro区别
  9. 做一个单纯的男生,走一段幸福的路
  10. JAVA错误: 找不到或无法加载主类