Emacs 学习笔记[1]

来源:互联网 发布:关注滚球用什么软件 编辑:程序博客网 时间:2024/05/08 09:00

为何要学习Emacs

因为配置vim的Ruby on Rails配置欲仙欲死,在网上的各种安利下入了Spacemacs的坑,在此要感谢一下子龙山人大神的Spacemacs Rocks系列视频,我辈小白的福音。但是用了一阵后想自己配置又觉得Spacemacs的封装太好了,并没有自己DIY的快感,同时也感觉自己的基础特别不牢固,刚好自己对lisp也有一些兴趣。所以就想自己从头学起Emacs,还是侯捷老师那句话:
勿在浮沙筑高塔
讲真…….好几次都感觉自己坚持不下来了,但是想起陈斌大神的话,还是觉得无论如何都要坚持下来。这个博客也是记录自己的学习和进步吧。

Emacs的Mode

Emacs与Vim最大的不用,就是在Mode之上(大神发现说错了勿喷=。=,小白接触没多久来着),很多人都是因为org-mode而接触emacs的。没有配置过的vim,除了编辑文本,其他的功能什么也没有,但是Emacs的各种mode却能让大家能开箱即用,虽然比较简陋,但是基本的缩进之类的玩意儿还是毫无压力的。模式分为Major Mode 和 Minor Mode。下面挑着几个主要模式列了一个表。

Mode Function Fundamental mode 默认模式 Text mode Text模式 Shell mode 在Emacs中写Shell Picture mode 利用键盘画ASCII图 HTML mode 看名字就懂 **语言 mode 看名字就懂 Compilation mode 编译程序用 cc mode 特别说出来因为它支持C,Cpp,Java Org mode 最好的文档编辑利器

Emacs会根据的你文档后缀名进入相应的模式,如果无法分辨,则会进入Fundamental mode,同时可以对其进行设置,如果你想吧*.c文件用lisp模式编辑,理论上也是可以的。

Mode Function auto-fill mode 字换行模式 overwrite mode 打字时为替换而不是插入 auto-save mode 文件按一定周期自动保存道一个临时文件里 line-number mode 显示文本行编号 transient-mark mode 对被选需的文本区做高亮反显 abbrev mode 允许使用单词简写模式 VC mode 在emacs上使用各种版本控制系统 Artist mode 用鼠标画ASCII图,和前面对应- -,真是多才多艺的编辑器呀。

其中Outline mode(大纲模式)既是一个主模式,又是一个副模式,表示它可以作为一种主模式使用,也可以作为一种副模式使用。
同时还有一些小众语言的模式,比如Scheme,好吧,其实我最初还是因为这个才想着入坑的。

Start Emacs

Emacs可以用命令行或者是直接点图标打开,打开后会出现如下界面:
这里写图片描述

其中的Emacs Tutorial里的指南为英文。十分值得大家一看。
下面我把快捷键摘要列一个表格,方便之后查询,注意,这只是最基础的入门快捷键。

常用命令

首先介绍一些约定俗称的东西
C- 输入字符chr时按住control键
M- 输入字符chr时按住META(or EDIT or ALT)按键。
无需赘述。
Enter键。

快捷键 作用 C-x C-c 退出 C-x C-s 保存 C-g 退出一个正在运行中的命令 C-v 查看下一个屏幕的文字 M-v 查看上一个屏幕的文字 C-l 重绘屏幕,语言不太好描述,用几次就懂了 C-p 上一行(previous) C-n 下一行(next) C-b 左移(backward) M-b 左移一个词(中文移动到上一个标点符号) C-f 右移(forward) M-f 右移一个词(中文移动到下一个标点符号) C-a 移动到行头 C-e 移动到行尾 M-a 移动到句头 M-e 移动到句尾 M-< 移动到文档开头 M-> 移动到文档结尾 Del 删除光标前一个字符 C-d 删除光标后一个字符 M-Del 移除光标前一个字符 M-d 移除光标后的一个词 C-k 移除从光标到行尾的字符 M-k 移除从光标到句尾的字符 C-SPC C-w 移除选定的文字 C-s C-f 寻找一个文件 C-x C-b 列出缓冲区 C-x 字符扩展 M-x 命令名扩展 C-z 挂起Emacs,可使用%emacs或者fg返回Emacs

以上是一些比较常用的编辑命令,必须要记下来!!

带参数的命令

大部分的Emacs命令支持数字参数。
先输入C-u,再输入数字作为参数,最后再输入命令。
比如:C-u 100 C-n,既是向后移动100行。
如果我C-u 100 然后发现不是我想要的,此时可以C-g退出这个正在运行的命令。
但是有些命令有例外,只要有前缀参数,它就会改变命令的功能。而C-v M-v则是另一种例外,当给定一个参数时,它将滚动你指定的行数而不是屏数。

被禁用的命令

一些命令被禁用了,以避免初学者在了解其确切功能的情况下误用而造成麻烦。

Windows

Emacs可以有多个窗口。
C-x 1
只保留存在的这一个窗口
这里写图片描述

C-x 2
上下分割成两个窗口
这里写图片描述

C-x 3
左右分割成两个窗口
这里写图片描述

C-x o可以在数个窗口之间跳转。

剪切与复制

在前面的表格中出现了移除与删除的区别:
移除和删除的不同在于移除的东西可以被重新插入,而删除的就不能被重新插入,但是可以被撤销(C-/)。重新插入被移除的文字被称为召回(yank,C-y)。

替换

M-x repl s RET changed-string RET altered-string
完全版的命令因该是
M-x replce-string RET changed-string RET altered-string
但是Emacs进行了智能补全。

自动保存

Emacs会定期将正在编辑的文件写入一个自动保存的文件中。自动保存的文件头尾各有一个#字符。
如果因为断电等原因,导致非正常退出。可以打开原文件,然后M-x recover file RET来回复文件。

回显区

这里写图片描述

%55表示处在文章55%的位置。
L646表示第646行
*表示已经对文字做出来了改动
Fundamental表示处在Fundamental模式下
可以使用M-x来改变模式。
C-h m可以查看当前主模式的文档。
这里写图片描述

搜索

Key Fuction C-s 向前搜索 C-r 向后搜索

跳转到下一个命中位置,可以再按C-s 或者C-r即可。

帮助命令

Key Function C-h c command 命令说明 C-h f function-name 函数说明 C-h v 变量说明 C-h i 阅读手册
原创粉丝点击