学习Emacs系列教程(三):编辑(1)

转载 2012年03月23日 13:07:32

原文  http://www.cnblogs.com/robertzml/archive/2009/09/23/1571942.html

上回说到怎么在Emacs中移动光标,这回将介绍如何在Emacs中编辑文本。
任何一款文本编辑软件的核心功能当然就是编辑文本,Emacs也不例外,虽然它也有许多其它强大的本领,但都离不开文本编辑。闹,文本编辑说白了也就是打字,专业点说我们需要实现一种所见即所得输入方式。在Emacs中打字和Notepad中没什么区别,一样也是打开一个文件直接往里面敲字符就可以了,中文也行。这个和Vim区别比较大,我们还需要知道自己是在哪个模式下,不然乱敲一气也不见屏幕有什么反应。

一、文件操作
  刚才我们说到编辑文本就是打开一个文件往里面敲字符,所以我们第一件事就是打开一个文件。
  C-x C-f 输入这个命令后在回显区会看到一个提示“Find file: ”,然后是我的文档的路径,这时需要输入你编辑的文件的名称。注意,这里的输入的文件名可以包含路径,比如 D:\text.txt,或者是相对路径。还有就是在Windows中我们可以使用Windows风格的反斜杠"\",当然了也可以使用正斜杠"/"。如果输入了一个新的路径,Emacs的当前路径会跳转到你输入的地方,(实际上是新开了一个buffer)。如果Emacs没找到你输入的文件,它会以你输入的名字自动新建一个文件。另外Emacs还支持拖拽,就是说可以把文件图标拖到Emacs中来打开它。
  当你不小心错打开一个文件时,可以使用C-x C-v 来换一个,操作和C-x C-f 一样,这个区别嘛是Emacs在buffer中处理有些不同。
  C-x C-s 这个命令是用来保存文件的,另存是C-x C-w ,这两个都比较简单,一看就会。

二、输入文本
  除了一些基本的输入方式,Emacs还可以输入非打印字符,就是ASCII表中前面的那些字符。
  使用C-q (n), 这里的n代表一个八进制数,就能打出n对应的ASCII表中的符号。
  还有就是Unicode字符比如日文啊韩文啊,使用C-x 8 后面接Unicode标准中字符的名字或者编码就可以输出这个乱七八糟的东西了。这我相信不会有谁闲的无聊来记这种一长串数字的,而且我们有更为先进的方案,(广告时间)当。。当。。当。。,现在隆重推出Unicode字符超级输入工具——搜狗软键盘,省去了你记忆一大堆16进制数的烦恼,还能输入中文,实在是居家旅行必备良品。

三、删除文本
  相比输入,Emacs删除文本的花样就比较多了。
  Backspace,退格键,这个比较传统就不说了。
  Del键,删除光标处的字符,虽然这个也很常见,但它违背了Emacs的原则,“你的手不用离开主键盘区”,所以我们用C-d来代替。
  M-d ,这个用来删除一个单词(记住在中文中单词表示两个相邻标点符号中的句子,所以如果你是打中文这个键还是少用,稍不留神多长一截句子就不见了)。而且它删除的是从光标当前位置到单词结束,还会把单词前半截留给你。
  相对应,删除单词前半截可以用,M-Backspace。
  M-k, 删除一段句子,这个在中英文有些不同。中文里面它只会删除到句号为止,包括句号。而英文中,它不认'.', '!‘,这些东西,而是把整段都删了(英文的分段用两个回车表示)。和M-d一样,它也是从光标处开始删。对应删回去是C-x Backspace。
  C-k, 从光标起删除当前行。
  一个比较详细的例子见下图:(宽线覆盖的文字就是使用箭头指向的命令删除的部分,注意中英文的区别)


四、撤销命令
  操作难免有失误之处,Windows里面Ctrl + z 命令使用频率也是蛮高的,不过在Emacs中按Ctrl + z 会发现窗口最小化了。Emacs中要达到撤销效果使用的是 C-/ ,同样还可以使用 C-_ 或者 C-x u ,这三个都对应的是Undo命令。
  和Vim 类似,Emacs中删除的内容也保存在一个缓冲中,相当于一个剪贴板,我们可以很方便的调出某一次放进去的东西,这个地方我还没仔细看,放到以后再讲。
  上面说的是撤销文本上的操作,还有个比较常用的命令C-g ,这个是用来撤销命令的,当你输了一半命令发现不对就可以用它了。

五、一些杂项命令
  有些比较零碎的命令又比较常用,呃,其实应该放到第一章的,先搁在这儿吧。
  帮助命令:
  C-h t 调出Emacs Tutorial。
  C-h 调出Emacs Manual。
  C-h k (command) ,调出对应command的帮助,比如C-h k C-n 就是查看C-n的帮助。
  空白行:
  插入空行,C-o 。删除空行C-x C-o ,注意,如果有许多空行时,这个命令会删的只剩一个空行,只有一个就直接删了。这两个命令并不是完全对应,插入空行实际是插入一个回车换行符,而删除空行的标准是这一行什么文字都没有才删了,如果我们在一行文字中间按C-o,光标后面的内容会移到下一行,再按C-x C-o 却没有反应,因为这行前面还有内容。
  重复命令:
  上章介绍两个数字参数的重复命令,这儿还有一个不带数字参数的。C-x z ,这个命令的对象是它前面输的命令,比如,先按C-n ,再按C-x z,就会重复一次C-n,然后我们每按一次 z, 就再往下走一行,相当方便。

小结:

按键

命令

作用

C-x C-f
find-file
打开文件
C-x C-v
find-alternate-file
打开另一个文件
C-x C-s
save-buffer
保存文件
C-x C-w
write-file
另存文件
C-q (n)
quoted-insert
插入字符,n表示字符的八进制ASCII码
C-x 8
ucs-insert
插入Unicode字符

C-d

delete-char

删除光标处字符

Backspace

delete-backward-char

删除光标前字符

M-d

kill-word

删除光标起单词

M-Backspace

backward-kill-word

删除光标前单词

C-k

kill-line

删除光标起当前行

M-k

kill-sentence

删除光标起句子

C-x Backspace

backward-kill-sentence

删除光标前句子

(none)
kill-paragraph
删除光标起段落
(none)
backward-kill-paragraph
删除光标前段落

C-/ 

undo

撤销

C-_
undo
撤销
C-x u
undo
撤销
C-g
keyboard-quit
撤销命令
C-h t
help-with-tutorial
调出Emacs Tutorial
C-h r
info-emacs-manual 调出Emacs Manual
C-h k (command)
describe-key
查看对应command帮助
C-o
open-line
插入空行
C-x C-o
delete-blank-line
删除空行
C-x z
repeat
重复前个命令


学习Emacs系列教程(三):编辑(1)

上回说到怎么在Emacs中移动光标,这回将介绍如何在Emacs中编辑文本。 任何一款文本编辑软件的核心功能当然就是编辑文本,Emacs也不例外,虽然它也有许多其它强大的本领,但都离不开文本编辑。闹,...
  • ruglcc
  • ruglcc
  • 2012年08月02日 09:18
  • 905

学习Emacs系列教程(六):编辑(3)

这次介绍编辑中关于粘贴复制的部分,不过在Emacs中称粘贴复制为Killing和Yanking,而不是通常说的Cutting和Pasting,当然差别不会太多。   一、Killing   Ki...
  • ruglcc
  • ruglcc
  • 2012年08月02日 09:39
  • 990

学习Emacs系列教程(五):编辑(2)—— 标记

http://www.cnblogs.com/robertzml/archive/2010/02/15/1668592.html 学习Emacs系列教程(五):编辑(2)—— 标记  学习Em...

学习Emacs系列教程(五):编辑(2)—— 标记

有段时间没写这个教程了,自己险些放弃,不过回头想想看个小说都讨厌太监,自己写更不能太监,还是要坚持下去。闲话不多说,进入这次的正题,关于编辑文本的另一些内容。 一、标记和区域   所谓区域...
  • ruglcc
  • ruglcc
  • 2012年08月02日 09:32
  • 740

学习Emacs系列教程(一):基本使用

前言的前言:本人也是初学Emacs,之前对Vim也只接触了一点,所以也谈不上对哪个更喜欢,也分不出哪个更好。写这个教程的目的一是方便自己更好的学习Emacs, 二是没事找事。如果有专家路过还望多指点...
  • ruglcc
  • ruglcc
  • 2012年08月02日 08:18
  • 736

学习Emacs系列教程(八):查找替换

http://www.cnblogs.com/robertzml/archive/2010/03/03/1675870.html 查找替换是任何编辑器都不可能缺少的功能,就连小小的Notepad都有...
  • kezhen
  • kezhen
  • 2015年02月02日 17:15
  • 970

学习Emacs系列教程(九):缓冲管理 (十):多窗口

学习Emacs系列教程(九):缓冲管理   首先提及一点,这里的缓冲就是Emacs中的buffer。闹,所谓的缓冲就是当前你正在编辑的东东。比如,你打开一个文件Emacs会建立一...

学习Emacs系列教程(四):Minibuffer

上回介绍了在Emacs中如何插入删除文本的简单操作,以及一些杂七杂八的命令,都还是蛮容易的。这回先跳过编辑这部分,介绍Emacs中的Minibuffer,呃,翻译过来叫迷你缓冲,听着比较难受,后面还是...
  • ruglcc
  • ruglcc
  • 2012年08月02日 09:21
  • 916

学习Emacs系列教程(九):缓冲管理

首先提及一点,这里的缓冲就是Emacs中的buffer。闹,所谓的缓冲就是当前你正在编辑的东东。比如,你打开一个文件Emacs会建立一个缓冲来装载这个文件,当你调用帮助时Emacs会建立一个叫"*He...
  • ruglcc
  • ruglcc
  • 2012年08月02日 10:14
  • 921

学习Emacs系列教程(十):多窗口

原文地址:http://blog.sina.com.cn/s/blog_96b8a15401012yug.html
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习Emacs系列教程(三):编辑(1)
举报原因:
原因补充:

(最多只允许输入30个字)