Emacs之魂(二):一分钟学会人界用法

Emacs之魂(一):开篇
Emacs之魂(二):一分钟学会人界用法
Emacs之魂(三):列表,引用和求值策略
Emacs之魂(四):标识符,符号和变量
Emacs之魂(五):变量的“指针”语义
Emacs之魂(六):宏与元编程
Emacs之魂(七):变量捕获与卫生宏
Emacs之魂(八):反引用与嵌套反引用
Emacs之魂(九):读取器宏



上文提到了编辑器之战
据江湖传说,Emacs被称为“神的编辑器”,
Emacs有着无与伦比的可扩展性和可定制性,简直变成了一个“操作系统”。

使用Emacs你可以收发电子邮件,
编辑远程档案,登录远程主机,登录IRC和朋友聊天,
当做计算器,管理目录,进行文件比较合并,浏览网站,
甚至还可以模拟其他编辑器,玩游戏,煮咖啡,等等,
最不济的话,用它还可以写代码,编辑文本文件。

Emacs有这么强大的功能,是因为用户可以无限制的扩展它,
我们可以用elisp写代码,然后让Emacs做任何事情,
Emacs有多强大,完全取决于它的使用者有多强大,
像这样使用Emacs,我们称之为“神界用法”。

然而,在没有学会elisp之前,用它默认提供的功能就够了,我们可以称之为“人界用法”。
本文我们会发现,用一分钟学会人界用法,并不困难。
下面我们先下载安装Emacs吧,我想,这不应该记入在那一分钟之内。

Mac用户可以到这里下载安装,Emacs For Mac OS X
Windows用户可以到这里下载,Emacs For Windows
也可以通过命令行来安装,GNU Emacs: Download & installation

安装完打开后,终于可以看到它的庐山真面目了,

一分钟学会

如图所示,一个Emacs编辑器可以包含多个frame,默认只打开一个,
一个frame包含了tool bar,buffer,mode line和each area,
其中,buffer+mode line合称一个window,一个frame可以包含多个window。

buffer类似于其他编辑器中的标签,我们可以在一个window里面编辑不同的buffer,
按住Ctrl键,在buffer中点击鼠标左键,就可以看到默认情况下Emacs加载了哪些buffer,
我们可以选择一个buffer切换过去,然后使用同样的办法再切换回来。

tool bar中包含了一些常用的功能,
打开文件,新建文件,打开文件夹,关掉当前buffer,保存,撤销,剪切,复制,粘贴,查找。

结合tool bar,以及切换buffer,我们已经在一分钟之内学会使用Emacs了。

快捷键

很多初学Emacs的同学被它的快捷键吓倒了,因为有些Emacs教程不喜欢人们使用鼠标,
其实有些场景,用鼠标可能会更快或者更直观,何乐而不为呢?
Emacs有多强大,完全取决于它的使用者有多强大,因此不必让快捷键束缚自己
例如,切换buffer,点击buffer中的某个链接,等等。

然而,学会使用快捷键在大多数情况下都是高效的,
保存文件,上下左右移动光标,跳转到行首或者行尾,删除光标右边的一个字符,
这些都是平时用的最多的命令操作,总是通过点击tool bar或者把手移动到方向键上是很不方便的。

Emacs的快捷键非常之多,还可以自定义快捷键,
大部分Emacs教程,喜欢这样罗列它们。

C-f 后一个字符
C-b 前一个字符
C-p 上一行
C-n 下一行
M-f 后一个单词
M-b 前一个单词
C-a 行首
C-e 行尾
C-v 向下翻一页
M-v 向上翻一页
M-< 到文件开头
M-> 到文件末尾

C-x C-f "find"文件, 即在缓冲区打开/新建一个文件
C-x C-s 保存文件
C-x C-w 使用其他文件名另存为文件
C-x C-v 关闭当前缓冲区文件并打开新文件
C-x i 在当前光标处插入文件
C-x b 新建/切换缓冲区
C-x C-b 显示缓冲区列表
C-x k 关闭当前缓冲区
C-z 挂起emacs
C-x C-c 关闭emacs

其中,C表示Ctrl键,M表示Alt键,C-f表示按住Ctrl然后按f,
C-x C-s表示先按Ctrl+x,再按Ctrl+s,
C-x b表示先按Ctrl+x,再按b。

如何记快捷键

如果你和我一样,仅仅看到上面那些快捷键就已经懵逼了,不妨按下面的方法试一试,

(1)只记那些自己经常用到的快捷键,练熟变成手指的条件反射
(2)把快捷键的功能写在前面,键位写在后面,按逻辑功能分类
(3)不知道用什么快捷键时,去网上搜一下

有了这些经验之后,就不用记那么多快捷键了,
相信我,不用快捷键也慢不了多少,因为编程的瓶颈不在打字速度上。

此外,把功能写在前面有助于按逻辑功能分类,查找时也更方便,
有些快捷键基本上不会被用到,那还是忘了它吧,省得占用大脑内存。
以下是我总结的常用快捷键,

剪切: C-w
复制: M-w
粘贴: C-y

上一行: C-p
下一行: C-n
左移一个字符: C-b
右移一个字符: C-f
行首: C-a
行尾: C-e

文章开头: M-S-,
文章结尾: M-S-.

向上搜索: C-r
向下搜索: C-s
替换:M-S-5

撤销: C-x u
保存: C-x s
保存,不提示: C-x C-s

全选: C-x h
退出: C-x C-c

取消命令: C-g

切分成两个窗口: C-x 2
关闭其他窗口: C-x 1
切换窗口: C-x o

剪切光标到行尾: C-k
删除下一个字符: C-d

显示所有buffer:C-mouse
关闭当前buffer:C-x k

总结

本文介绍了Emacs的安装和“人界用法”,最后分享了一个记快捷键的小窍门。
我们也实在没有必要因为在幼儿园中记不住座位的摆放位置而放弃学业。

Emacs有多强大,完全取决于它的使用者有多强大,因此,努力锻炼自己才是Emacs用户的精髓,
从下文开始,我们开始开始学习elisp,逐步探讨这门语言作为可编程的编程语言(programmable programming language)的真谛。


参考

Emacs 入门
Emacs 教程
Emacs 快捷键

时间: 2024-08-03 19:48:39

Emacs之魂(二):一分钟学会人界用法的相关文章

Emacs之魂(一):开篇

Emacs之魂(一):开篇Emacs之魂(二):一分钟学会人界用法Emacs之魂(三):列表,引用和求值策略Emacs之魂(四):标识符,符号和变量Emacs之魂(五):变量的"指针"语义Emacs之魂(六):宏与元编程Emacs之魂(七):变量捕获与卫生宏Emacs之魂(八):反引用与嵌套反引用Emacs之魂(九):读取器宏 程序员大部分的时间都是在和代码打交道,因此,对于文本编辑器一定不会陌生了. 编辑器是处理文本的工具. 就像趁手的兵器对武林高手的辅助作用一样, 强大的编辑器也会

Emacs之魂(四):标识符,符号和变量

Emacs之魂(一):开篇Emacs之魂(二):一分钟学会人界用法Emacs之魂(三):列表,引用和求值策略Emacs之魂(四):标识符,符号和变量Emacs之魂(五):变量的"指针"语义Emacs之魂(六):宏与元编程Emacs之魂(七):变量捕获与卫生宏Emacs之魂(八):反引用与嵌套反引用Emacs之魂(九):读取器宏 1. 符号 上文我们提到了Emacs Lisp是一种Lisp-2, 即同一个符号(symbol)在不同的上下文中,可以分别表示两种不同的值(value): 变量

Emacs之魂(五):变量的“指针”语义

Emacs之魂(一):开篇Emacs之魂(二):一分钟学会人界用法Emacs之魂(三):列表,引用和求值策略Emacs之魂(四):标识符,符号和变量Emacs之魂(五):变量的"指针"语义Emacs之魂(六):宏与元编程Emacs之魂(七):变量捕获与卫生宏Emacs之魂(八):反引用与嵌套反引用Emacs之魂(九):读取器宏 1. 语义学 在计算理论中,形式语义学是关注计算模式和程序设计语言含义的严格的数学研究领域. 语言的形式语义是用数学模型去表达该语言描述的可能计算来给出的. 提

Emacs之魂(六):宏与元编程

Emacs之魂(一):开篇Emacs之魂(二):一分钟学会人界用法Emacs之魂(三):列表,引用和求值策略Emacs之魂(四):标识符,符号和变量Emacs之魂(五):变量的"指针"语义Emacs之魂(六):宏与元编程Emacs之魂(七):变量捕获与卫生宏Emacs之魂(八):反引用与嵌套反引用Emacs之魂(九):读取器宏 数据和代码 如果说Lisp语言有一个特性最能使人津津乐道的话,我想应该是它的宏系统(macro system)了吧, 在Lisp语言中,程序和代码的表现形式(t

Emacs之魂(七):变量捕获与卫生宏

Emacs之魂(一):开篇Emacs之魂(二):一分钟学会人界用法Emacs之魂(三):列表,引用和求值策略Emacs之魂(四):标识符,符号和变量Emacs之魂(五):变量的"指针"语义Emacs之魂(六):宏与元编程Emacs之魂(七):变量捕获与卫生宏Emacs之魂(八):反引用与嵌套反引用Emacs之魂(九):读取器宏 回顾 上文我们介绍了宏,它与函数是不同的,函数调用发生在程序执行期间,函数在调用之前,会先对它所有的实参进行求值,然后将形参绑定到这些实参的求值结果上,函数的返

Emacs之魂(八):反引用与嵌套反引用

Emacs之魂(一):开篇Emacs之魂(二):一分钟学会人界用法Emacs之魂(三):列表,引用和求值策略Emacs之魂(四):标识符,符号和变量Emacs之魂(五):变量的"指针"语义Emacs之魂(六):宏与元编程Emacs之魂(七):变量捕获与卫生宏Emacs之魂(八):反引用与嵌套反引用Emacs之魂(九):读取器宏 1. 反引用 上文我们介绍了如何使用defmacro定义宏, (defmacro inc (var) (list 'setq var (list '1+ var

Emacs之魂(九):读取器宏

Emacs之魂(一):开篇Emacs之魂(二):一分钟学会人界用法Emacs之魂(三):列表,引用和求值策略Emacs之魂(四):标识符,符号和变量Emacs之魂(五):变量的"指针"语义Emacs之魂(六):宏与元编程Emacs之魂(七):变量捕获与卫生宏Emacs之魂(八):反引用与嵌套反引用Emacs之魂(九):读取器宏 1. 编译器宏 Lisp源代码文本,首先经过读取器,得到了一系列语法对象, 这些语法对象,在宏展开阶段进行变换,最终由编译器/解释器继续处理. 以下我们使用de

10分钟学会理解和解决MySQL乱码问题

原文:10分钟学会理解和解决MySQL乱码问题 在阅读本文之前,强烈建议对字符集编码概念还比较模糊的同学 阅读下博主之前对相关概念的一篇科普:十分钟搞清字符集和字符编码 本博客已经迁移至: http://cenalulu.github.io/ 为了更好的体验,请通过此链接阅读: http://cenalulu.github.io/mysql/mysql-mojibake/ MySQL出现乱码的原因 要了解为什么会出现乱码,我们就先要了解从客户端发起请求,到MySQL存储数据,再到下次从表取回客户

五分钟学会部署OpenStack

问题描述 大家好!我是小鸥,刚刚上手学习OpenStack,今天和大家一起分享一下最近的学习心得,欢迎和我一起交流.第一讲『小鸥』教你5分钟学会部署OpenStack今天先来一个5分钟教你学会部署OpenStack,通过本次学习仅需大概1个小时就可以在VirtualBox环境中部署好一个OpenStack集群.准备环境本实验建议主机最少配置8G内存(最好16G),可以在MacOS10.7.x/10.8.x.CentOS6.4或Ubuntu12.04中运行本教程.为了在VitualBox中成功安装