斯坦佛编程教程-Unix编程工具(四)
emacs
下面将会简单的介绍一个叫做emacs的文本编辑器,它是由GNU组织提供的自由软件。它是一个非常优秀的编译器,并且,它能很好地和其他UNIX工具整合在一起。很多编辑器都有着非常多的理由来说明他们多优秀,但是这里我们就不讨论这个问题了。
如果想开始用emacs编辑一个新文件或是已存在的文件,只要在UNIX的提示下输入以下的命令...
emacs filename
filemname 就是将要编辑的那个文件。X-Windows的emacs版本叫做xemacs,如果你要使用它的话...好的,来看一下菜单,命令基本是一样的,但是你并不需要去记住那些有趣的组合键。
所有的吸引人的编辑命令,比如查找-替换,都只需要输入一些命令就可以实现了。有两个重要的键你必须得记住:^x(按住ctrl键再按x),[esc]-x(按住esc再按x),它们都是用来开始键入一些重要的命令。由于一些历史原因,在大部分的emasc的手册中,esc键实际上指“Meta”或是“M-”键。因此,你可以发现[esc]-x等价于M-x。
存储当前编辑的文件,命令是^x^s.退出的命令是^x^c(会提示保存保存).打开另一个文件的命令是^x^f.这个命令可以用来打开文件或者是新建文件。如果你同时打开了很多个文件,那么emacs会将他们存放在不同的缓存中。为了从一个文件跳换到另一个文件(这在一边编写.h文件和一边编写.c文件时会非常有用。),命令是^x-b(注意没有ctrl),然后你就可以通过输入文件名跳转到对应的文件(有一个默认的文件名用于快速切换)。方向键通常类似于鼠标的功能。下面有一些组合命令。
运行emacs
emacs <filename> 运行emacs。确定你没有在后台运行emacs,如果是那样的话,用fg命令就可以唤醒它了。在命令的最后加上"&",这样emacs就不会占用shell 了。
^z 将emacs挂起—用%或者是fg命令来唤醒。
^x^c 退出。
^x^f 装载新的文件。
^x^v 装载新的文件,并卸载之前的文件。
^x^s 保存文件。
^x-k 结束一个缓冲区。
移动光标
^f 向前移动一个位置。
^b 向后移动一个位置。
^n 移动到下一行。
^p 移动到前一行。
^a 移动到启示行。
^e 移动到行末。
^v 向下翻页。
M-v 向上翻页。
M-< 移动到文件的开始。
^x-[ 移动到页首。
M-> 移动到文件的结束。
^x-] 移动到页尾。
^1 重新编辑光标所在的当前行。
^x-o 切换到另一个屏幕。
^x-b 转换到另一个缓存。
查找
^s 查找一个字符串
^r 向后查找一个字符串
M-% 查找替换
删除
^d 删除光标所在字符。
^k 剪切从光标处的到行末的所有字符。
^y 粘贴所有剪切的字符。利用^k,^y组合可以实现简单的剪切-复制。
区域
emacs将标记和点之间的空间定义为区域。用^-space(ctrl键加空格键)一个标记,点就是光标的位置。
M-w 复制区域。
^w 剪切区域。当然你也可以用^y来粘贴剪切的区域—这就是区域的剪切/复制/粘贴的方法。
分割屏幕
^x-2 水平分割屏幕。
^x-3 竖直分割屏幕。
^x-1 关闭除当前屏幕外的所有屏幕。
^x-0 将另一个屏幕作为唯一的屏幕。
其他的命令
M-$ 检查当前单词的拼写.
^g 在大部分的时候是取消,停止或是回到普通的状态。
M-x goto-line num 移动到对应的行
^x-u 撤销
M-x shell 在emacs中开启一个shell。
M-q 折行
编译
M-x compile 在窗口中编译代码,如果你设置好了makefile,一切将会更加简单。
^c^c 在编译窗口使用这个命令,它将移动到下一个编译错误。太棒了!
获取帮助
^h emacs的帮助。
^h t 运行emacs的教程。
emacs为你提供了命令补全功能,输入M-x space 将会列出所有的emacs的命令。emacs也有man帮助,在shell里运行man emacs就可以了。
打印你的源代码
这里有一个简单的打印源码的方法,用“enscript”命令。同常,它的代码格式如下:
enscript -2GrPsweet5 binky.c lassie.c *.h
这个例子用于打印binky.c和lassie.c还有它们的头文件,使用的打印机是sweet5.你可以改变这些参数在适应你的需求。