和我一起学习Linux编程(三)------------------工具篇
来源:互联网 发布:安居客经纪人端口 编辑:程序博客网 时间:2024/03/29 23:46
这次我要说的是剩下的两个工具。
emacs这是linux下的重量级的编辑器,其实它不只是一个编辑器,你可以把它当成一个集成式开发环境来看待,这在文章的最后会提到。emacs的设计理念就是一切以编辑为中心,它提供了对shell和其它一些工具的支持,但都是在其编辑环境下来完成的。对于一个字符型的编辑环境来说首先就是很多快捷键,这与windows的习惯有很大不同,但要说明的一点是,在emacs中所有的操作都可以通过快捷键来完成,而且当你完全让它成为你生活的一部分的时候,它的效率是很高,当然,在这里我也要感谢对gnu世界作出杰也贡献的人们,呵呵,不多说了。
我练习这些快捷键花了两天时间,然后我扔掉windows下的记事本,装了一个windows版本的记事本。
在emacs里有两种快捷键,一种是Ctrl的简称C,表示的是简写的快捷键,一种是ESC的,在xemacs(emacs的一种变体)中可以用alt来代替,表示完全版本的快捷键形式,常用的快捷键有以下几个:
C-x C-f 打开文件
C-x C-s 保存文件
C-x s 保存所有打开的缓冲区
C-x o 到另一个窗口中
C-x 1 将当前窗口最大化
C-x 2 将当前窗口分割为纵向二个窗口
C-x 3 将当前窜口分割为横向二个窗口
ESC-x c-set-style 可以设定c模式下的习惯比如说缩进方式啊什么的
简单吧,呵呵,后面还会提到其它的,还是那句话,你对工具了解的越多,你的工作效率也就会越高。外国人把emacs当成一种文件来看待,可见它的影响,国内也一个本关于它的书好象叫什么什么(第二版),名字忘了,不错,我就是看那个学的。最后再说一点,还有很多人在用另外一种编辑器vi,它也是一个功能很强大的工具,不过我没使用过,所以没法比较。
最后一个就是gdb,字符模式下的程序调试工具。为什么要用字符模式下的而不用图形模式下的呢,还是那句话,不是所有的linux都能支持图形模式,但是所有的linux都支持这个。虽然也有一些图形模式下的调试工具,但是当你看完本文最后的说明时,也许你会知道,什么才是你最需要的。记得有个人说过一句话,如果你没快乐过,你就不知道怎么找乐,呵呵。好了,说一个gdb吧。首先打开gdb,然后用open命令打开要调试的可执行程序,前提是你的程序在编译时使用了-g参数来加入调试信息。然后用run来运行程序;用kill来终止程序;用watch来设查看;用break设断点,这里要说明一下,你可以用 文件:行号 的形式,也可以用 文件:函数 的形式,对于c++来说,你可以用 类名:成员函数 的形式;用continue继续运行;用step单步进入;用next单步执行而不进入到函数的内部。还有很多其它的命令,这是最常用的,好了就这些。
看到这里你也许会说,这和windows下的开发环境看上去差了很多,我们需要在不同的应用程序之间来回切换吗?不,不是这样的,这四个工具在linux下面组合在一起组成了一个功能强大的集成式开发环境,可以让你在一个程序里执行所有的操作,对了,它们的粘合剂就是emacs,使用ESC-x compile,对当前工作目录下的文件进行编译,程序会自动打开窗口来显示编译结果,如果有错误的话用C-x `(~不用shift那个字)就可以指定错误的位置;使用ESC-x gdb就可以对程序进行调试,要说的是,当你用它进行调试时,打上断点中断时,emacs就是自动查找文件,并指向当前行,就和vc作的一样,呵呵,如果你要执行shell,你可以用ESC-x shell来作这个,当然它也可以打开别的shell,如果你要版本工具emacs来可以集成一个叫rvs的工具,没用过,不好意思,我都是用cvs的。有了这样一个强大的工具,你还需要什么集成式的开发环境吗,我想还是需要的,比如cbx,呵呵,那为什么我们还要会这些呢,因为不是所有的linux都有cbx,呵呵,我不想再说第三遍了。今天就到这吧,呵呵,下面还讲什么啊,有需要的告诉我一下。
- 和我一起学习Linux编程(三)------------------工具篇
- 【和我一起学习Unity3D】初识脚本编程
- 和我一起学习OC吧
- 【和我一起学习Unity3D】初识Unity3D
- 跟我一起学习windows驱动编程(对象和句柄)
- Linux编程学习三
- linux编程 makefile “跟我一起写 Makefile” 陈皓
- 和我一起学C++之list<三>
- 我对编程语言的理解,适应新手一起学习。
- 一起学习fusioncharts 三
- linux编程学习笔记(四) 编译工具和动态库
- 跟我一起走进WPF的世界之三开发WPF用什么工具呢?
- 跟我一起走进WPF的世界之三开发WPF用什么工具呢?
- 【和我一起学习Unity3D】Unity3D的坐标控制
- 【和我一起学习Unity3D】初识物理系统
- 和我一起学习avalon(持续更新)
- 没错,我准备和你一起学习人工智能
- Linux学习(三)Shell编程
- 没有人可以改变我的命运,除了我自己
- 用PHP函数解决SQL injection 作者:lm92 来源:CSDN
- 怎么去做
- ProgressBar 实现自定义显示进度值
- 二次开发MAP2000是遇到的问题
- 和我一起学习Linux编程(三)------------------工具篇
- 为什么我拒绝流行!
- 实例说明java中覆盖静态方法和非静态方法的不同
- 如果你在寻找投资人……
- Project Dairy -2
- 在这做个记号,这个blog系统做的并不好,但是比较快
- Happy birthday!
- JAVA中的集合类(1)
- JAVA中的集合类(2)