Vi简介

  1. Vi是一种广泛存在于各种UNIX和Linux系统中的文本编辑程序。
  2. Vi不是排版程序,只是一个纯粹的文本编辑程序。
  3. Vi是全屏幕文本编辑器,它没有菜单,只有命令。
  4. Vi不是基于窗口的,所以,这个多用途编辑程序可以用于在任何类型的终端上编辑各式各样的文件。
  5. Vi的功能十分强大,但是命令繁多,熟练掌握起来有一定难度。
  6. Vi的发明者:bill joy

Vi的启动

$ Vi  filename  或者$ Vi
如果filename已经存在,Vi会打开现存文件
如果是一个新文件,Vi会创建它

Vi的退出

在命令行模式下输入:q,:q!,:wq或者:x,可以退出Vi
:w                  保存
:w filename         另存为filename
:wq!                保存并退出
:wq! filename       以filename为文件名保存后退出
:q!                 不保存退出
:x                  保存并退出,功能和:wq!相同

Vi的工作模式

Vi有三种工作模式,分别为:命令模式、插入模式(编辑模式)和末行模式,三种模式分别进行不同的操作,它们之间可以进行切换。

  1. 命令模式:进入Vi后,首先进入的就是命令模式,等待用户输入编辑命令,此时输入的字母将作为编辑命令来解释。
  2. 插入模式:在命令模式下输入插入命令i、附加命令a、打开命令o等命令可以进入插入模式,在插入模式下,用户输入可以对文本进行编辑,输入的任何字符都被当作文件内容保存起来。【Esc】键可以返回命令模式。
  3. 末行模式:在命令模式下,按【:】键可以进入末行模式,Vi光标会显示在窗口的最后一行,以“:”作为末行模式的提示符,等待用户输入命令。末行命令执行后,Vi自动回到命令模式。

Vi命令大全

1、移动光标
h或者向左方向键:光标向左移动一个字符
l或者向右方向键:光标向右移动一个字符
k或者向上方向键:光标向上移动一个字符
j或者向下方向键:光标向下移动一个字符
【Ctrl】+f:         屏幕“向下”移动一页,相当于【PageDown】
【Ctrl】+b:         屏幕“向上”移动一页,相当于【PageUp】
0:                  数字0,移动到这一行的最前面一个字符处
$:                  移动到这一行的最后一个字符处
G:                  移动到这个文件的最后一行
gg:                 移动到这个文件的第一行
n【Enter】:         n是一个数字,光标向下移动n行

2、搜索与替换
/str:从光标开始,向下寻找一个名为str的字符串。
?str:从光标开始,向上寻找一个名为str的字符串。
:n1,n2s/str1/str2/g:n1与n2为数字,在第n1行与n2行之间寻找str1         这个字符串,并将该字符串替换成str2

:1,$s/str1/str2/g:从第一行到最后一行寻找str1字符串,并将该字符             串替换为str2

:1,$s/str1/str2/gc:从第一行到最后一行寻找str1字符串,并将该字                 符串替换为str2,且在替换前提示符给用户确认   是否需要替换

3、删除、复制与粘贴
x,X:x为向后删除一个字符,X为向前删除一个字符
nx:n为数字,为连续向后删除n个字符
dd:删除光标所在的那一整行
ndd:n为数字,从光标位置开始,删除向下n列,如20dd则是删除20列。
yy:复制光标所在的那一行
nyy:n为数字,复制光标所在的向下n行,如20yy则是复制20行
p,P:p为将复制的数据粘贴到光标的下一行,P则为粘在光标的上一行。
u:复原前一个操作
【Ctrl】+r:重做上一个操作
.:小数点,重复前一个动作,常用在重复删除、重复粘贴。

4、插入模式
i,I:插入:在当前光标所在处插入输入文字,已存在的文字会向后    退,其中i为从当前光标所在位置前开始插入,I将光标移到当前 行的行首,然后开始插入。

a,A:a为从当前光标所在的下一个字符开始插入,A为从光标所在行的 最后一个字符处开始插入

o,O:这是英文字母o的大小写,o为在当前光标所在的下一行插入新的 一行,O为在当前光标所在处的上一行插入新的一行。

r,R:替换:r为替换光标所在的那一个字符;R会一直替换光标所在的 文字,直到安下【Esc】键为止。

5、文件操作相关
:w:保存文件
:w filename:另存为filename
:n1,n2 w filename!:将n1行到n2行的内容保存到filename中
:n w filename:将第n行保存到filename中
:l,. w filename:将从第一行起到光标当前位置的内容保存到        filename中
:.,$ w filename:将从光标当前位置到文件结束的内容保存到                 filename中
:r filename:打开另外一个文件filename
:e filename:编辑新文件filename代替原有内容
:f filename:把当前文件改名为filename

Vi文档的更多相关文章

  1. Linux vi文档操作

    使用操作 a 在光标后插入    A 插入行末   i 在光标前插入   I 插入行首 o 向下切换一行 O 向上开一行 dd 删除一整行 x 删除光标后一个字符   X 删除光标前一个字符 shif ...

  2. 【转】vi编辑只读文档无法保存的解决办法

    vi编辑只读文档无法保存的解决办法 使用普通用户编辑nginx.conf 等配置文件: 保存的时 候会提示:没有Root Permission 可以用如下方法解决:保存时加上::w !sudo tee ...

  3. Oracle 11g 单实例安装文档

    这里介绍在Red Hat Enterprise Linux Server release 5.7 (Tikanga)下安装ORACLE 11.2.0.1.0的过程,本文仅仅是为了写这样安装指导文档而整 ...

  4. NVelocity介绍,NVelocity中文手册文档及实例下载

    NVelocity是什么velocity英音:[vi'lɔsiti]美音:[və'lɑsətɪ]近在做一个项目,客户要求有网站模板功能,能够自主编辑网站的风格,因为这个系统是为政府部门做子站系统,举个 ...

  5. linkedin开源的kafka-monitor安装文档

    linkedin开源的kafka-monitor安装文档 linkedin 开源的kafka-monitor的安装使用可以参考官方的readme:流程介绍的已经比较清楚,但是还是有一些地方需要修正.让 ...

  6. Hibernate配置文档详解

    Hibernate配置文档有框架总部署文档hibernate.cfg.xml 和映射类的配置文档 ***.hbm.xml hibernate.cfg.xml(文件位置直接放在src源文件夹即可) (在 ...

  7. linux文档常见后缀名

    echo "Start bakup mdsoss Source code ..."_Name="templatecdr_src_"`date +%Y%m%d%H ...

  8. [转]支付宝接口程序、文档及解读(ASP.NET)

    本文转自:http://www.cnblogs.com/blodfox777/archive/2009/11/03/1595223.html 最近需要为网站加入支付宝的充值接口,而目前关于支付宝接口开 ...

  9. Linux_文档编辑器_简介

    1. vi 2. vim 3. ubuntu 有一个 自己的图形化的 文档编辑器,用起来比较方便: gedit 4. 5.

随机推荐

  1. 如何禁用wordpress的RSS Feed

    RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,早期使用RSS订阅能更快地获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新.但随着采集技术的 ...

  2. Sublim text2 的注册码

    1. Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 6C0EEB94 BC99798F 942194A6 02396E9 ...

  3. Unix/Linux 用户 nobody

    1.Windows系统在安装后会自动建立一些用户帐户,在Linux系统中同样有一些用户帐户是在系统安装后就有的,就像Windows系统中的内置帐户一样. 2.它们是用来完成特定任务的,比如nobody ...

  4. C#爬虫之~苏飞万能框架使用教程

    苏飞的框架帮助类,很多人应该都知道,不知道可以百度,此处直接说用法. //引入命名空间 using CsharpHttpHelper; //创建Httphelper对象 HttpHelper http ...

  5. sql执行顺序

    SQL 不同于与其他编程语言的最明显特征是处理代码的顺序.在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后 ...

  6. VirtualBox CentOS安装增强功能与设置共享文件夹

    如果安装的是CentOS minimal版无网络的可以看这篇文章. 一.安装依赖环境 依次执行如下命令 yum install update yum install kernel-headers yu ...

  7. Git-it字典翻译

    Git-it字典翻译 下面的内容翻译自git-it/dictionary 水平有限,翻译欠佳. Git准备工作 创建一个新的文件夹(目录) $ mkdir <目录名称> 切换到这个目录 ( ...

  8. windows下C语言编程获取磁盘(分区)使用情况

    windows下编程获取磁盘(分区)使用情况 windows下编程获取磁盘(分区)使用情况 GetLogicalDriveStrings函数 使用示例 获取需要的缓冲区长度示例 获取所有驱动器号示例 ...

  9. VS无法启动调试:“生成下面的模块时,启用了优化或没有调试信息“

    调试项目遇到错误提示,Visual Studio 2010(或VS2008或VS2005)启动调试的时候,弹出提示信息: 生成下面的模块时,启用了优化或没有调试信息: C:\WINDOWS\Micro ...

  10. 借助 SublimeLinter 编写高质量的 JavaScript & CSS 代码

    SublimeLinter 是前端编码利器——Sublime Text 的一款插件,用于高亮提示用户编写的代码中存在的不规范和错误的写法,支持 JavaScript.CSS.HTML.Java.PHP ...