http://blog.csdn.net/wangloveall/article/details/22649331

摘要:vi是类UNIX命令行接口的标准文字处理软件,也是进行shell脚本程序编写与服务器设置的非常重要的工具。本文介绍vi文字处理器,包括vi简介、vi怎么使用、vi的加强版vim。

关键词:vi    文字处理器    vim

vi是一种计算机文本编辑器,由美国计算机科学家比尔.乔伊(Bill Joy)完成编写于1976年发表,并以BSD授权发布。

Linux世界里,为什么要学习和掌握好vi呢?原因如下。

第一:所有的类Unix系统(Linux)都会内建vi文字处理器,其他文字处理器不一定存在。也就是说,vi具有极大的通用性。

第二:Linux绝大部分配置文件都是ASCII纯文本文件,因此利用vi就可以进行方便地修改和设定。也就是说,vi具有很广的应用域。

第三:很多个别软件的编辑接口会主动呼叫vi(例如crontab,visudo,edquota等指令)。也就说,vi具有很多支持者。

第四:vi简单易学,功能强大,内容丰富,编辑程序的速度快。也就说,vi具有“简单主义”的设计哲学。

第五:vim是vi的进阶版,学好vi,可以更好地使用vim。也就是说,vi具有“根基”的内涵。

我想,为什么要学好vi?简而言之,为了更好地使用Linux系统,包括Linux系统的管理和Linux系统的编程等。

vi是什么清楚了,为什么要使用vi也有理由了,那怎么使用vi呢?

vi包含三种工作模式,分别是【一般模式】、【编辑模式】和【命令模式】,关于三种模式各自的作用说明如下。

1 一般模式:它是vi的默认模式,使用vi打开文件就进入一般模式。该模式下,可以使用上下左右方向键移动光标,可以使用删除字符或删除整行或复制或粘贴来处理文件内容。

2 编辑模式:一般模式无法编辑文件内容。按下【i,I,o,O,a,A,r,R】等任何一个字母之后才会进入编辑模式。通常在Linux下,按下这些键后,在画面的左下方会出现【INSERT或者REPLACE】的字样,此时才可以进行编辑。如果要回到一般模式,按下【Esc】这个按键即可退出编辑模式。

3 命令模式:在一般模式中,当输入【:  /  ?】三个中的任何一个按钮,即可将光标移到画面最底下一行,即进入到命令模式。该模式下,可完成读取、存盘、大量取代字符、离开vi、显示行号等等动作。

vi三种工作模式关联图见图1所示。

图1 vi三种工作模式关联图

温馨提示:由图可知,一般模式可以与编辑模式或者命令模式切换,但是编辑模式与命令模式之间不能切换,必须依赖于一般模式。

关于vi文字处理器在不同工作模式下的具体使用,请参阅Resource中鸟哥的Linux私房菜的第十章《vim程序编辑器》内容。关于怎样使用vi,除了掌握不同模式下的具体使用方法外,需要多使用vi来处理与Linux系统相关的事情。时间长了,用得多了,也就成为一种优秀的习惯了。

我们在Linux系统下写源代码,需要一个程序编辑器,vim是一个很好的选择。我们已经知道,它不仅是vi的进阶与提升,更是一款很好的程序编辑器。使用它写代码,可以主动地以字体颜色辨别语法的正确性,极力地方便程序的设计。举例来说,当你使用vim编辑一个Java源程序,vim会依据源程序的扩展名或者源程序内的开始信息,判断该源程序的内容并且自动地启用该程序的语法判别式,再以颜色显示源程序内容和一般信息。

使用vim编写的HelloWord.java如图2所示。

图2 vim 写的HelloWorld.java效果图

关于vim程序编辑器相对vi文字处理器所增加的额外功能,请参阅Resource中鸟哥的Linux私房菜的第十章《vim程序编辑器》内容。

Resource:

http://www.wangluqing.com/2014/03/vi-word-operate/

http://zh.wikipedia.org/wiki/Vi

鸟哥的Linux私房菜的第十章《vim程序编辑器》

vi文字处理器的更多相关文章

  1. vi 文字处理器

    vi 的使用 基本上 vi 共分为三种模式,分别是『一般模式』. 『编辑模式』与『指令列命令模式』三种! 这三种模式的作用是: 一般模式: 以 vi 处理一个档案的时后,一进入该档案就是一般模式了.在 ...

  2. Word文字处理器发展演变

    随着信息技术的不断发展,以前书面化的信笺,笔记,书籍以及作业演变成现在不断更新的电子化Word文档. Word是目前世界上最流行.最常用的文字编辑,排版软件,使用它不仅可以提高文档的编辑效率,在修改时 ...

  3. python实现一个加密的文字处理器

    这是一个类似于记事本的文字处理器.与正常的记事本不同的是,它会将文本文档进行加密,确保无法被常规的程序打开. 由于本人是一位业余编程爱好者,对于"python之禅"之类的规则比较不 ...

  4. vi/vim 文字处理器常用命令

    目录 vi 与vim vi 的三种模式 vi 光标移动 vi 搜索与替换 vi 删除 vi 复制 vi 粘贴 vi 其他 vi 进入编辑模式 vi 命令行命令 vim 附加功能 vi 与vim vi是 ...

  5. 鸟哥的Linux私房菜-----9、vi文本处理器

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVrZXdhbmd6aQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  6. linux(4) vi编辑/删除、复制、粘贴 /bash shell 环境变量设置/数据流重定向 | 的用法

    一.vi文字处理器1.vi与vimvi:文字处理器vim:程序开发工具2.vi介绍三种模式:一般模式(vi刚进入的,不可编辑),编辑模式(按i后,左下方是insert)和命令行模式(按esc退出,:w ...

  7. linux vim,vi编辑器的基础

    在之前我也不知道为什么要学vim和vi编辑器,仅仅是听过别人说这个对与linux非常重要. 先说一下为什么要学习这个编辑器.个人的看书理解. 系统管理员的重要工作就是參与与设置某些重要软件的配置文件, ...

  8. Linux常用命令速查备忘

    Linux常用命令速查备忘   PS:备忘而已,详细的命令参数说明自己man 一. 启动,关机,登入,登出相关命令 [login] 登录 [logout] 登出 [exit] 登出 [shutdown ...

  9. Vim入门学习之Vim解析

    Vim解析... ----------------------- 首先你要会从官网上下载你想要的Vim版本:   官网: http://www.vim.org/==================== ...

随机推荐

  1. python打印cookies获取cookie

    def test_002_buy_ticket(self): data = [{"}] print(data) data = json.dumps(data) cookies = self. ...

  2. 20170708xlVBA添加新产品修改公式

    Sub ControlInsertProduct() Dim Wb As Workbook Dim OneSht As Worksheet Dim Arr As Variant Dim i As Lo ...

  3. 20170503xlVBA房地产数据分类连接

    Sub NextSeven_CodeFrame4() Application.ScreenUpdating = False Application.DisplayAlerts = False Appl ...

  4. codeforces 1041d// Glider// Codeforces Round #509(Div. 2)

    题意:给出,n和飞行员高度h,n是区间数.在区间里飞行员高度不变,其它地方每秒高度-1,x坐标+1.问在高度变为0以前,x坐标最多加多少? 用数组gap记录本区间右端到下一个区间左端的距离.用sum记 ...

  5. IOS UI-Button按钮

    #import "ViewController.h" @interface ViewController () { UILabel *lable; BOOL moveFlag; N ...

  6. vEthernet(默认交换机) 无法访问网络

    VMware 开启虚拟机 最近公司由无线网转为有线时,我用VMware Workstation Pro装的几个系统,其中一个 ubuntu无法访问网页,在ubuntu运行ifconfig -a ,直接 ...

  7. JavaScript学习总结(六)——JavaScript判断数据类型总结

    最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断,在此做一个总结吧! 一.JS中的数据类型 1.数值型(Number):包括整数.浮 ...

  8. [转载]JS浏览器兼容性问题

    from:http://dada-fangfang.iteye.com/blog/811749 做BS开发就难免会用到javascript,而每个浏览器对javascript的支持有不同.这就需要我们 ...

  9. C语言strrev()函数:字符串逆置(倒序、逆序)

    头文件:#include<string.h> strrev()函数将字符串逆置,其原型为:    char *strrev(char *str); [参数说明]str为要逆置的字符串. s ...

  10. Java——线程同步

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...