使用Emacs删除文本
对于一般的文本编辑器来说,编辑文本并不是一件本困难的事情,然而在Emacs中,删除文本的方式也可以有很多种。
撤销操作
在学习删除文本的命令之前,先把撤销操作写上。使用 C-x u 操作来进行撤销,持续进行这个操作可以一直操作,就像Notepad++里面的 Control + Z 一样。
使用时间长了发现不用再动鼠标就能完成撤销操作,是不是感觉有点方便呢?
最常见的删除操作
Emacs提供了多种方式来进行删除操作,最简单的一种操作方式就是使用del和backspace按键进行删除操作,但是这里我们不讨论这种操作。
对字和单词操作
使用 C - d 命令可以删除位于光标下的字符,然后位于光标厚民啊的字符会来填充空的光标里的字符。
对于 C 引导的命令来说,大多是对于短字符串的操作,而由 M引导的命令可以针对 更大块内容 的操作。
使用 M - d 命令可以实现对单词的删除操作,M - d 光标位置和命令执行效果是直接相关的,光标的位置直接决定命令的执行效果。下面用表格来表达一下光标位置和执行效果的关系:
光标位置 | 执行效果 |
---|---|
SiChuan University | SiChuan U |
SiChuan University | SiChuan |
SiChuan University | SiChuan |
对整行操作
使用 C - k 对整行进行删除,删除光标之后到该行末尾的文字,删除的文字中也包括光标内的字符。
当光标后面没有其他的字符的时候,再使用 C - k 命令之后将删除文本中的换行符。
当光标在一段文字的第一个字时候,连续两次使用该命令可以删除整个行。
原文:
So, it usually takes two C-k ‘s to delete a line: one to delete the text and one to delete the resulting blank line.
使用 ‘M - k’ 来 kill整句
使用 M - k 命令可以把位于光标后面的整句话(直到逗号)的文本删除掉,删除掉的东西也会进入 kill ring,后面会说道什么是 kill ring。
恢复删除的内容
你也许会发现上面 C - k 里面的 k 代表了kill的意思,但是这里的kill是可以 “复活” 的,使用命令 C - y 来恢复所有被 kill 的内容,比如说:连续用几个 C - k 命令删除了若干行,但是可以通过一个 C - y 命令进行恢复,使用该命令之后可以恢复刚才删除的所有的函数。
–> You got everything back with a single operation.
‘C - y’ 和 ‘kill ring’
原本 C - y 命令是 Paste 命令,在Edit菜单里面看到的。
于是发现了一个问题:为什么使用Paste命令能还原 kill 掉的文本呢?
这是因为一个叫 ‘kill ring’ 的东西:
–> *’What exactly goes into the kill ring? Everything you delete with C-k in addition to everything you

delete with C-w and everything you copy with ESC w (two commands that you’ll learn shortly) goes into the kill ring. Words, sentences, and paragraphs that you delete with ESC d , ESC DEL , and their relatives also go into the kill ring. In addition, text that you delete with C-u followed by either DEL or C-d goes into the kill ring. About the only thing that Emacs doesn’t save in the kill ring is single characters, deleted with DEL or C-d . (If you need to, you can get this type of deletion back using the undo command, C-x u .)’*
然而在 kill ring 中还是有一个主意事项,当你不使用带有 kill 的命令时,Emacs将不会把非kill命令的的数据快继续收集到 kill ring 中。