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:

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

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

3 鸟哥的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. codeforces 55d//Beautiful numbers// Codeforces Beta Round #51

    题意:一个数能整除它所有的位上的数字(除了0),统计这样数的个数. 注意离散化,为了速度更快需存入数组查找. 不要每次memset,记录下已有的长度下符合条件的个数. 数位dp肯定是从高位到低位. 记 ...

  2. codeforces 547c// Mike and Foam// Codeforces Round #305(Div. 1)

    题意:给出数组arr和一个空数组dst.从arr中取出一个元素到dst为一次操作.问每次操作后dst数组中gcd等于1的组合数.由于数据都小于10^6,先将10^6以下的数分解质因数.具体来说从2开始 ...

  3. Confluence 6 LDAP 服务器配置

    名字(Name) 输入一个有意义的 LDAP 服务器名字,会让你更好的识别你的目录服务器.例如: Example Company Staff Directory Example Company Cor ...

  4. node搭建本地服务器

    随着前端不断发展,node基本已经成为必备,在调试的时候经常需要服务器,在之前的做法通常是去下载一个phpstudy 或者 xampp等启动一个服务,作为一个前端人虽然可以借助各种工具,但是怎么能不懂 ...

  5. Leetcode 73

    class Solution { public: void setZeroes(vector<vector<int>>& matrix) { vector<vec ...

  6. Elasticsearch在centos6中的安装

    一安装, 在你可以从 elasticsearch.org\/download 下载最新版本的Elasticsearch.tar文件. 一.用户设置 如果已经是普通用户登录可跳过此步骤. Elastic ...

  7. js数组与字符串之间的相互转换

    一.数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下 <!doctype html> <html> <head> <meta charset= ...

  8. 基于struts2和hibernate的登录和注册功能——完整实例

    1.该项目使用MySQL数据库,数据库名为test,表名info,如图所示: 2.配置web.xml(Struts2使用) <?xml version="1.0" encod ...

  9. 远程访问Centos6.5上的mysql或者mariadb(navicat)

    问题背景 1 环境 物理主机操作系统Centos6.5 虚拟主机KVM:centos6.5 64位min版本(虚拟机安装有台) 网络:桥接模式 2 问题 yum安装mariadb10/mysql6.5 ...

  10. MyEclipse移动开发教程:设置所需配置的iOS应用(一)

    MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] 一.iOS应用程序配置要求 这个进程需要四个需求数据文件: 证书签名请求(CSR)文件 证书签名请 ...