计算机‎ > ‎软件‎ > ‎Linux‎ > ‎

国瑞学用 emacs 续三

发布者:guo rue,发布时间:2016年3月27日 下午10:53   [ 更新时间:2016年3月27日 下午10:55 ]
移动光标
在 GUI 环境中运行 Emacs 意味着您可以使用鼠标或方向键(例如向上和向下的箭头以及 Home 和 End 键)在文档中移动光标。然而,我将回顾 Emacs 自身的移动方式,因为这是唯一保证能用的方法,不管您是在拨号线上的终端,还是通过控制台或 SSH 连接访问一台机器,还是任何其它方法。

它自身的键移动方式还有其它好处,那就是使您的手总放在键盘上,在属于它们的地方,不仅为了效率,也为了人体工学。当我在 GUI 模式中使用工具时,我发现键盘和鼠标间的环境切换使我失去 10% 的效率。

象前面那样启动 Emacs(输入 emacs filename.txt),接着在呈现在您面前的初试窗口中输入几行(或复制这屏)。

Emacs 光标移动 ― 字符
Emacs 有时用字符助记符来帮助您,使您的手指学会这些命令而无需有意识的努力。只要记住 Previous(向上)、Next(向下)、Forward(向前) 和 Back(向后)。每个的第一个字母是您的移动键。

C-f 使光标向前移动一个字符,而 C-b 使光标向后移动一个字符。注意这包括换行。C-n 移到下一行,而 C-p 使光标向上移动一行。可能的话,垂直移动保持列不变。然而,如果下一行或上一行比当前光标所在的列短,光标将自动移到新行的末尾。如果您继续移到更长一行,光标将回到新行中的“原来”那列。

Emacs 光标移动 ― 词、行和句
从词移到词时,Forward 和 Back 仍然指引您,但要用 Meta 键而不是 Ctrl 键。注意词的定义是连续的字母和数字。在词与词之间移动时,标点符号被算作空格。在我们学习它们时,每个命令都试用几次。M-f 使光标向前移动一个词,而 M-b 向后移动一个词。

当我们学习更多行操作时,助记符的帮助不再那么有用:“a”和“e”键分别表示头和尾。C-a 把您带到当前行的第一列而 C-e 把您带到行末。

在一句句移动时,我们至少仍能用同样的字符。输入 M-a 把我们带回当前句子的开头(或前一句,如果光标开始时就在句首)。M-e 以同样的方式相对于句末向前移动。

句子由标点和回车或两个空格来定义。根据文本,结果并不总是真的一句句地移动,但有点象段落。

Emacs 光标移动 ― 屏幕
一次移动一个屏幕是很有用的操作,下面是完成它的命令。C-v 使文本向前滚动一个屏幕而 M-v 则相反。为了方便,有两行重叠,使您更容易记住上下文。另外,输入 C-l(这是小写“L”)可以移动窗口,使当前光标位置处于窗口的中央。

最后,移到缓冲区的开头和末尾的击键如下:M-< 把您带到开头,而 M-> 把您带到末尾。它们确实是 < 和 >,所以您需用 Shift 键。

光标移动注解
键绑定 操作(命令)
C-f forward-char
C-b backward-char
C-n next-line
C-p previous-line
M-f forward-word
M-b backward-word
C-a beginning-of-line
C-e end-of-line
M-a backward-sentence
M-e forward-sentence
C-v scroll-up
M-v scroll-down
C-l re-center

在测试文档中练习这些击键并一直用下去。我发现我必须在一段时间内强迫自己不用光标键和鼠标。通过把我的手指总是放在键盘的中央一行(asdf jkl;)并有意识地使用这些命令,我很快能容易地浏览每个文件的缓冲区。