分享
 
 
 

VI的竞争对手Emacs快速入门

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

Emacs 启动:

直接打emacs, 如果有X-windows就会开视窗. 如果不想用X 的版本, 就用 emacs -nw

(No windows)起动.

符号说明

C-X 表示按住CTRL键, 然后按X, 再把CTRL, X一起放开.

M-X

META

META

在没有META键的电脑上, M-X 等于先按 ESC键, 接著按 X键.

Sun上面META键就是菱形的那个键.

有些系统META键就是ALT键.(或者某一边的ALT键)

C-X或 M-X的X没有大小写分别.

Emacs按键命令基本上是一串C-<chr和M-<chr组成的.

超过两个以上的按键命令, Emacs会在萤幕最下面一行显示你按过什么.

这一行叫作mini buffer

结束Emacs按 C-x C-c

取消执行 C-g

有些Emacs命令会跑很久, 可以用C-g中断之. 按错键也可以按C-g取消.

上下移动

C-p 向上 (previous line) C-n 向下(next line)

左右移动

C-f 向右 (forward)

C-b 向左 (backward)

其实Emacs内部没有行的概念, 把一篇文章放在一个大buffer

里面, 所以C-f (forward)就是向档尾移动, C-b (backward)

是移回去的意思, 一次一个字.

翻页

下一页 C-v (view next screen)

上一页 M-v

翻页时,上一页末尾会留一点在萤幕最上面,以维持连续性.

Emacs在游标接近萤幕最下方时会自动跳半页, 把档案往前挪一点, 方便阅读.

重画萤幕 C-L

Emacs里面游标的专有名词叫point. point == 游标目前的 点 游标一次跳一个字(word) M-f

往后跳 M-b

注意 C-f 与 M-f, C-b 与 M-b的对称性.

移到行头 C-a

行尾 C-e

移到句首 M-a

到句尾 M-e

(M-a 到上一个句点后面,一个句子的起头.

M-e 到句点后面)

移到档头 M-< 档尾 M-

删除游标目前指的/后面的字 C-d

前面的字 DEL

(Delete键)

DEL的正名叫Rubout (Rub out)

M-DEL 往回删一个字(word)

M-d

往前删 (游标后面)

C-k

删至行尾 (kill)

M-k

删到一句子结尾(删到句点) (kill)

注意Backspace = C-h 在Emacs下是help的意思

后面有(kill)的, 表示此删除的动作是kill, 不太等于delete.

emacs会把kill掉的东西放到kill ring去, 算是一种暂存的地方, 以后可以叫出来.见 yank说明.

Undo: C-x u

C-_ 等于 C-x u

有些DEC终端机, C-/就是C-_

有时等于C-Shift- -

重复执行

举例, 向右移 8个字, C-u 8 C-f

C-u 在Emacs里是蛮特别的,用来设定一些引数(argument/repeat count)

给其后的命令.

C-u 2 0 C-n 向下移 20行

有一个特别的例外, C-u 3 C-v 不是翻三页, 而是整个萤幕向上移三行.

据说这比较有意义.

C-u 1 0 C-x u

UNDO 10次

给C-L一个引数会怎么样:

C-u 0 C-l 会重画萤幕,并且把目前的行移到萤幕第一行.

另外, C-u 100

等于 M-100

C-u 数字

等于 M-数字

X windows 下,

C-left C-right 一次移一个字(word).

C-up C-down 移动一段 (paragraphs/C语言的话是block)

Home = C-a

End = C-e

C-Home = M-<

C-end = M-

PgUp PgDn = M-v C-v

设定重覆次数更加简单,

比如要向右移10个字 C-1 C-0 right-arrow

就是按住CTRL, 然后打10就对了, 比 C-u 1 0 简单.

Mouse中键用来选取有hi-light的地方.

右键是menu-button

如果不小心按两次ESC, 等于 M-ESC,

会有一个讯息跑出来说你按到一个被disable的命令. 这是高级指令, 作者认为 初学者用不道,所以会问你要不要启动它, 一般回答no.

如果某一行太长, 萤幕显示不下, Emacs会在萤幕最右边打个$,

表示此行未完,右边还有.

把一行拆成两行: 在想拆处按Enter即可.

合并两行为一行: 在行尾按C-d (或行首按DEL)

Yank: 吐出被删掉的(killed)东西.

只要用kill (C-k, M-k等) 删除, 超过一个字的资料, emacs就会把它存起来, 然后C-y 可以把它叫出来. 功能跟Cut & Paste一样. Kill 和delete不一样, 只有被 kill掉的东西才能用yank吐回来.

游标在同一地方不动, 连续kill掉的资料会被当成一次kill掉的, yank时会一起回来.

被Kill掉的资料是放在称作 kill ring的资料结构上面, ring就是个圆圈, 被kill掉的东西会依序摆在圆圈上. yank 会放回最近一次kill掉的资料. 如果不是你想要的话, 用M-y 可以换.

(M-y就是告诉emacs, 不对不对, 我不是要这一个,换前一个给我).

M-y 要紧接在C-y之后.

拷贝文字的方法== 连续 C-k 几次,

把要拷贝的行全部删掉, 然后按 C-y 弄回来. 再到想复制的地方按一次C-y, 就成了.

把要拷贝的资料kill掉在yank回来好像很笨. 是有比较文明的 方法, 那就是M-w, 不过较麻烦.

首先,要先设标记. Mark 用 C-SPC 或 C-@ 设. 然候把游标移到另一端, 按 M-w 就可以把 mark 到 point间的字存到kill ring上. point 就是游标的意思.

Emacs不会把Mark起来的地方用highlight表示, 除非在X下. 在X下, 可以用M-w 来拷贝用滑鼠反白的文字.

kill & yank 就是 cut & paste的意思.

以上大部份指令对Bash的命令列编辑也有效

档案操作

读档: Emacs术语叫 finding a file.

C-x C-f 然后在mini-buffer输入档名. 输入档名时, SPC键有auto-complete的功能,或者会秀出到目前为止档名前几个字和输入一样的. (TAB键也有类似功能)

C-x C-f 叫 find-file

C-x C-s 存档 (save current file, save current buffer)

C-x s

存所有的档

C-x i

插入档案

把另外的档案的内容读入目前编辑区内

视窗

Emacs把档案读进来,存在buffer中.

我们透过window来看/编辑buffer.

两个视窗会把萤幕切成两部份, 他们可以同时显示相同的, 或不同的档案.

对初学者而言, 最需要的是记住怎样让不想要的视窗消失:

C-x 0 关掉目前的视窗

C-x 1 会让目前的视窗占满整个萤幕 (One Window), 取消/关掉其他的视窗.

Emacs里面有许多功能都会开一个小视窗来和使用者沟通, 显示讯息.

有时候不会自动消失很讨厌, C-x 1 就很有用.

另一个功能是如何跳到另一个视窗.

C-x o

(other-window)

C-x 2 把目前的视窗切成两个 (水平分割)

C-x 3

(垂直分割)

C-x 4 是一串与视窗有关的指令.

C-x 5 则是扩展到X的视窗, 称为frame.

C-x 5 2 就是再开另一个X视窗 (frame).

多档编辑

C-x C-b 看目前有那些buffer (buffer就是emacs放开起的档案的地方).

C-x b 然后在minibuffer输入buffer的名字,可以切换编辑buffer. TAB键也有作用. 有些内部的buffer (就是没有档案的buffer), 是用*开头和结束, 这个也要打, 如*scratch*

最后提醒:

C-x 1 可以把多余的视窗关掉.

Emacs扩充指令

前面介绍的emacs按键大部份都是C-<chr 或者 M-<chr的形式.

这是最简单的按法, 由一对按键构成一个指令.

Emacs的按键可以超过2个以上. 如 C-x 1 或 C-x C-b.

一般超过一个按键组合的命令都是用C-x 开头.

另外你也可以直接下命令. 按 M-x 之后就可以打一个Emacs命令来执行. 一般这些命令名字都很长, 不过都不常用. 等一下 我们会介绍一些. 还有介绍怎么把这些命令设成按键指令.

C-x C-c 就是结束Emacs. 不过一般Emacs很笨重, 一旦起动就不轻易退出. 所以比较常用的是C-z

C-z 把Emacs暂停, 回到命令列. 当你下次再需要编辑时,打fg %emacs或者fg就可以把Emacs唤醒.

在X下, C-z会把emacs缩成icon

mode line

emacs编辑画面由 编辑区(buffer) 状态列 (modeline) 和对话区 (minibuffer)构成. 这里解释 modeline 显示的讯息.

以下是个范例:

--**-XEmacs: xemacs.qs

(Fundamental)----74%-------

由后面往前解释, 74% 表示游标的位置.

(Fundamental)表示编辑模式.这是最原始的模式. 编辑不同种类的文章可能希望用不同的模式, 比如说C-mode, lisp-mode, tex-mode, text-mode等等. 在不同模式下可能多一些按键出来. 举例text-mode.

M-x text-mode

可以切入text-mode, 这是一般人编辑文字使用的模式. 和Fundamental mode没什么差异. 不过游标移动时, Emacs对一个字的定义就有所不同, 因而M-f M-b 等移动一个字, 一个段落的指令就可能会停在标点符号的前面. 此时状态列变为... (Text)----70%---

以上说的是Major mode. 另外还有minor mode, 其实就是一些额外的功能.

比如说, M-x auto-fill-mode 则状态列显示 (Text Fill).

auto-fill就是自动断行, 让文章每行固定有70个字.

M-X fundamental-mode 可以变回来.

这里要说明一下, emacs在 minibuffer下有auto-completion的功能,也就是打

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有