设为首页 加入收藏

TOP

从C语言实战谈编程:vi(编辑源程序)上(二)
2014-11-24 00:11:56 来源: 作者: 【 】 浏览:40
Tags:语言 实战 编程 编辑 源程序

你可以试着编辑一个b.c 内容是hello myself!看看行吗?

第三步,学习修改、删除。

我们在编辑程序的时候,不可能一次增加就能完成。总是要修改,删除,增加。接上面的例子,我们要将a.c中的hello world!改成hello myself。

第一种方法:

1、vi a.c

2、dd

3、i

4、hello myself。

5、Esc

6、:

7、x

这种方法是同过dd命令将原来一行删掉,再通过i命令录入hello myself。来完成的。这种方法重点是dd命令,记住删除一行要用dd(delete,delete,我是这样记忆的)。

第二种方法:

1、vi a.c

2、将光标移到world

3、xxxxxx

4、i

5、myself。

6、Esc

7、:

8、x

这种方法重点是x命令,删除当前字符,这也是最常用的命令之一。

第三种方法:

1、vi a.c

2、将光标移到world

3、xxxxx

4、i

5、myself

6、Esc

7、移动光标到!

8、r

9、。

10、:

11、x

这种方法重点是r命令(replace),替换当前字符,这也是最常用的命令之一。

第四种方法:

1、vi a.c

2、将光标移到world

3、cw

4、myself。

6、Esc

10、:

11、x

这种方法重点是cw命令(change word),替换当前单词,注意它也需要Esc结束修改状态,这也是最常用的命令之一。

大家都看到了吧,所有以上方法都是用:x来保存编辑内容的。:x也是最常用命令之一。

如果发现这次编辑错了,乱了,想放弃这次对文件的编辑,不想对原程序进行任何修改。则可以用:q!命令放弃修改退出vi。!可以记忆为强制,q!可以理解为强制退出。同理x!理解为强制保存。

通过以上三步的学习和练习,我们基本上可以接触到vi的基本操作过程和操作命令了。这些基本的操作可以说能够编制程序了。

你们可以试着用以上方法,编辑一下我前几篇博客中的a.c。文件名可改为helloworld.c

#include “stdio.h”

main()

{

fprintf(stdout,”hello world!\n”);

exit(0);

}

感觉一下vi操作,看看自己对以上最基本命令的掌握程度。对基础的东西要反复练习,认真记住,这样才会对后面的操作命令有更好的理解和配合。学会以上操作可以说你vi已经入门了。

第四步,学习复制、查询、取消

我们在编辑程序的时候,一般情况下都是增删改操作,这时候我们的视野仅仅局限在单字符、单词、单行。在很多情况下,需要行操作,例如我们需要新增行,我们需要复制,需要先复制再修改。

我们还是举前面一个例子。现在a.c内容为hello myself。

现在要求最终的内容为三行:

hello myself

hello world

hello c

第一种方法,先复制,后修改。

1、vi a.c

2、yy

3、p

4、p

5、向上移动一行

6、移动到myself(第二行)

7、cw

8、world

9、Esc

10、移动到下一行

11、移动到myself(第三行)

12、cw

13、c

14、Esc

15、:x

这种方法的重点是复制,粘贴。yy是复制当前行,p是粘贴复制的行。这是我认为vi最经典的命令设计之一,它可能是我们Ctrl-c ,Ctrl-v的鼻祖。

第二种方法:直接插入法

1、vi a.c

2、o

3、hello word

4、hello c

5、Esc

6、:x

这种方法的重点是在当前行下插入。o是插入命令,表示在当前行下插入,Esc插入结束。如果要在当前行上面插入行输入大写O则可以了,退出插入也是Esc。

第三种方法:复制查询修改法。

1、vi a.c

2、yy

3、p

4、p

5、:1

6、/

7、myself

8、n

9、cw

10、world

11、Esc

12、n

13、cw

14、c

15、Esc

16、:x

这种方法的重点是先复制了2行hello myself,然后通过:1命令让光标移到文件头(这个命令非常有用),然后用/命令进行查找myself,用n(next)命令移到第二个myself单词上,用cw进行修改,然后再用n命令,移到第三个myself上,用cw修改。/命令是查找命令,n是下一个。现在一些开发语言中也有同样的查询命令,估计也借鉴了vi。

我们在进行操作时候,往往会操作出错,这时候,vi提供了一个u(undo吧)命令,用于取消前次操作。

例如,当你复制2行时候,发现复制了3行的时候,你键入u,则

1、vi a.c

2、yy

3、p

4、p

5、p

6、u

这个时候,你最后一次,粘贴将会被取消。

这个例子的重点是介绍取消操作u,这个命令可以用于很多种操作,比如,i、I、O、o、A、x、r、dd、cw、s等等。在这些操作之后,键入u,前面的操作将被取消。

另外,介绍一个G命令,这个命令可以让光标定位到文件的最后一行。

例如:文件内容为:

Hello world

Hello myself

Hello c

当前光标在第一行

键入G,光标就定位在最后一行hello c上了。这个命令对于建立一个程序的时候,特别有用。比如,今天编了一段程序,明天再接着编,就可以用G命令一下子到最后一行,然后,用o命令继续你的新程序的插入。

待续!


作者 n216
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇【知其所以然】语义"陷阱&qu.. 下一篇从C语言实战谈编程:vi(编辑源程..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: