linux下的C开发4,使用vim编辑器

小编一直觉得,既然选择了入行嵌入式 linux,就应该逐步脱离图形界面,习惯 linux 的命令式操作方式。所以,虽然上一节我们一起搭建了 windows 和 虚拟机 linux 通信的通道,可以实现在 windows 下编写或者修改 linux 中的代码,但是希望大家只是过渡,而不是依赖。

脱离 IDE

大多数经常在 windows 下做开发的程序员都被各种 IDE 照顾的很好,甚至编写好代码,鼠标点击一下就能实现自动编译。可是,代码究竟是如何被编译的,又是如何链接成可执行程序的,可执行程序由哪些模块组成,是如何加载到内存中执行的,这些细节都被IDE 隐藏了。

可能对于前端程序员来说,他们不关心这些,只需要 IDE 能够方便工作就可以了。但是,我们选择的是嵌入式开发,恰恰是需要关心这些细节的人,因此,选择使用 IDE 做嵌入式 C语言程序开发,实在不是明智之举。

事实上,大多数比较厉害的 linux 程序员,都是 vim 或者 emacs 编辑器的使用者。例如,linux 之父 Linus 使用的是 micro emacs,微软的大牛Don Box,Com之父,一直用 emacs 编辑器,他曾说,“谁也不能夺走我的 emacs ”。

使用 vim 或者 emacs

在嵌入式界,vim 通常被称作“编辑器之神”,而 emacs 则更是被称为“神的编辑器”。vim 和 emacs 都是古老的编辑器,有几十年历史了,但是它们不但没有被时代抛弃,反而被越来越多的程序员皈依。究竟是什么原因,我想是可扩展性赋予了它们强大的生命力。

曾经,windows 用户对软件的扩展性没有任何概念,软件提供什么功能就使用什么功能,如果希望它能提供新功能,就只能寄希望于下一次软件开发商的更新。而有能力的人却不想等,为了自己想要的新功能,只能从头重新设计开发一款软件,所以 windows 上的软件快速的更新换代着。

不得不承认,windows 中的软件都很短命,它们或者被自己的新版本取代了,或者被别人家的软件取代了。

以 linux 为代表,各种各样的开源项目出现后,人们发现,软件只有具有扩展性,才能有强大的生命力。火狐浏览器(firefox)就是一个典型的例子,它提供了各种扩展接口给用户,用户也能按照自己的意愿开发各种功能的插件,而无需再等待软件开发商更新版本,因此 Firefox 逐步取代了长期霸占市场的 IE 浏览器。

vim 和 emacs 编辑器也正是因为有着强大的可扩展性,才能走过这几十年的岁月,吸引越来越多的程序员皈依。它们甚至提供了脚本语言,有人曾利用 vim 的脚本语言写出了游戏,也有人曾用 emacs 控制咖啡机煮咖啡,甚至在人工智能领域,也有相当一部分的人使用 vim 和 emacs 的脚本语言。

其实想一想也就明白为什么资历越久的程序员,越喜爱他的 vim 或者 emacs 了。一开始,我们为了扩展自己的 vim 或者 emacs 的功能,使用了别人做好的插件。但是慢慢的,发现自己已经不满足于别人的插件,于是开始制作自己的插件,vim 和 emacs 这把宝剑,也就被我们打造的越来越像神兵利器,而且这把神兵是完全按照我们自身的喜好打造的,这个世界上,再也找不到更适合自己的编辑器了。

vim 编辑器的使用

vim 和 emacs 的操作方式截然不同,小编更习惯使用 vim,所以这里简要的介绍一下 vim 的基本使用方式。在 linux 中使用 vim 相当的方便,以咱们再第一节中搭建的 ubuntu 环境为例。只需要输入在终端输入 vim,即可打开 vim:

vim 编辑器有三种模式,分别是命令模式输入模式,和底线命令模式。乍一看,挺复杂的,其实也没什么难的。vim 脱离了鼠标,一切操作都依靠键盘,例如如果我想复制一行,就可以输入 yy,但是 vim 怎么判断 yy 是复制命令还是我们想输入的字符呢?这就需要区分命令模式和输入模式了,底线命令模式则可以看做是对命令模式的补充。

如上图,刚刚打开 vim 时,它处于命令模式,此时:

  • 输入命令 i,即可进入“输入模式”。
  • 按 Esc 键,可以返回“命令模式”。
  • 在命令模式下,输入英文冒号 “:”,则可以进入“底线命令模式”。

我们逐一做实验,首先在 vim 的命令模式输入 i,进入插入模式:

可以看出左下角提示了 -- INSERT --,这时我们就可以在 vim 中输入字符了。输入完毕后,按 Esc 键回到命令模式,然后输入 yy,再输入 p

发现我们输入的字符,被复制了一行。此时,我们再输入英文冒号 ":",进入“底线命令模式”,输入

wq test.txt

会发现我们退出了本次编辑,输入的字符被保存在 test.txt 文件里了。

yy 和 p 分别是 vim 中的复制和粘贴命令,底线命令 w 则相当于保存命令,紧跟在最后的 test.txt 则表示将本次输入的内容保存在该文件中。w 命令后的 q 是退出命令。所以 wq test.txt 结合在一起,就表示将本次编辑的内容保存在 test.txt 中并退出。

现在,我们的 vim 编辑器还很单薄,而且可能有些朋友还是不适应它的操作方式,命令也根本就不知道几个。但是不用担心,技术都是从零开始积累的,在之后的学习中,我们会一点一点的将 vim 打造成神器的。

阅读更多:   Linux笔记
添加新评论

icon_redface.gificon_idea.gificon_cool.gif2016kuk.gificon_mrgreen.gif2016shuai.gif2016tp.gif2016db.gif2016ch.gificon_razz.gif2016zj.gificon_sad.gificon_cry.gif2016zhh.gificon_question.gif2016jk.gif2016bs.gificon_lol.gif2016qiao.gificon_surprised.gif2016fendou.gif2016ll.gif