Emacs月月积累(一):文本编辑命令

Emacs月月积累(一):文本编辑命令

Emacs的门槛低,入门容易,但要熟练使用却很难。虽然在用,但总是没系统没计划,所以用了几年还总是原地踏步。要熟练Emacs应该没那么难,主要就是忘掉老习惯培养新习惯,所以决定每月从Emacs的manual中翻译出一些,慢慢养成Emacs的键盘习惯。
第一个月内容多些,但很多都已经在用了,再系统的整理一下并深入点了解,应该对提高工作效率有好处。

一、光标移动

C类命令

用于以字符、行、列等物理单位度量的光标移动

  • C-f:向右(前,forward)移动一字符
  • C-b:向左(后,backward)移动一字符
  • C-p:移动到上一行(previous)
  • C-n:移动到下一行(next)
  • C-a:到行首
  • C-e:到行尾

M类命令

用于以词、句、段落等文本单位度量的光标移动

  • M-f:向前(forward)移动一词
  • M-b:向后(backward)移动一词
  • M-a:到句首
  • M-e:到句尾
  • M-{:到上一段落 (注意大括号符号要用SHIFT键)
  • M-}:到下一段落

其他命令

  • M-r:循环使用可以把光标依次放在窗口中间、最上面和最下面一行的左边;窗口内文本不动。
  • M-<:卷屏到文档开头 (注意要用SHIFT键)
  • M->:卷屏到文档最后
  • C-v:相当于PAGEDOWN,向下翻一屏,但与前一屏的内容留两行
  • M-v:相当于PAGEUP,向上翻一屏,但与前一屏的内容留两行
  • M-x-goto-char n:光标定位到字符n的位置,n是从文档开始算起的字符数
  • M-g M-g n:光标定位到第n行

二、删除、撤销(恢复)和重复操作

字符、词和行删除

  • C-d:删除光标后一个字符,相当于DELETE键
  • C-k:删除光标到行尾的字符(不包括换行符);如果光标位于行尾则只删除换行符
  • M-d:删除从光标到下一个词的开始间的字符(删除词)
  • M-DEL:删除从光标到上一个词结束间的字符

空格和空行删除

  • M-\:删除光标前后所有空格和制表符
  • M-SPC:删除光标前后空格和制表符到仅剩一个
  • C-x C-o:删除光标前后的空行到仅余1行
  • M-^:删除行缩进、连接两行文本(从后向前合并)

撤销操作

  • C-/:撤销前一个命令的操作,不能撤销仅有光标移动的动作(或者用C-x C-u)

重复操作

  • C-x z:该命令简单重复前面一次操作(不管是鼠标点击还是键盘输入),连续几个z就重复几次,直到输入的不是z或者鼠标点击或者C-g取消
  • C-u n:重复随后的命令n次

三、文本块标记(选择)

任意位置间标记

  • C-@:在光标处设置标记,光标位置不动。
  • M-@:在光标处设置标记,光标位置不动,光标后的一个词被加亮
  • C-x C-x:在光标处设置标记,并把光标移到上一次设置标记的位置,两个标记之间的文本被选择。(可连续使用在标记文本的前后切换光标)

选择和标记一行或多行:

C-A, C-E, C-N 或 C-P:在当前位置设置标记点,光标移动和C-a, C-e, C-n 或 C-p相同,加亮标记点和光标之间的文本。搜狗输入法会拦截C-N命令,在输入法设置中去掉即可。

整块标记:

  • M-h:选择光标所在段落(段落间一般以空行间隔),光标移到段首,标记点在段末。
  • C-x C-p:选择当前页面(屏),光标移到屏首,标记点在屏尾。
  • C-x h:选择整个文档(buffer),光标移到文档起始点,标记点在文档最后。

使用体会:(1)标记和选择在Emacs被合并成了一个概念,而颜色加亮倒成了一种表面形式:不管有没有颜色加亮,标记点和光标之间的内容都已经被选择;(2)多用、善用 C-x C-x 命令

四、拷贝、剪切和粘贴/召回

  • C-w:剪切(还不习惯Emacs的kill概念)
  • M-w:复制。如果你开着QQ,复制的键盘命令就变成了M-W
  • C-y:粘贴。Yanking,像招魂一样,有意思。

使用体会:在其他软件中,一般被选择(颜色加亮)的内容才称为块,才能进行拷贝和剪切。但Emacs只要设置了标记点,就可以对光标和标记点间的内容进行复制、剪切等操作;如果是复制操作,Emacs会在光标所在位置和标记点之间切换一下光标,可以让用户进行确认。

五、搜索与替换

相关命令很多,但如果嫌麻烦,记住两个即可:

  • M-%:即M-S-5,询问替换
  • C-M-%:正则表达式询问替换
  • 以上两个命令回车后按提示分别输入搜索和替换字符串,替换用空格键,如果不替换(仅搜索)用n(下一个)或p(上一个)。

其他搜索和替换命令:

  • C-s:向前搜索(增量,输入即开始搜索)
  • C-r:向后搜索(增量,…)
  • M-x search-forward:向前搜索
  • M-x search-backward:向后搜索
  • M-x search-forward-regexp:向前正则表达式搜索
  • M-x search-backward-regexp:向后正则表达式搜索
  • M-x replace-string:替换
  • M-x replace-regexp:正则表达式替换

你可能感兴趣的:(Emacs月月积累(一):文本编辑命令)