vi编辑器,通常称之为vi,是一种广泛存在于各种UNIX和Linux系 统中的文本编辑程序。它的功能十分强大,但是命令繁多,不容易掌握,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需 要对其进行定制,这是其他编辑程序所没有的。vi不是基于窗口的,所以,这个多用途编辑程序可以用于在任何类型的终端上编辑各式各样的文件。

vi编辑器的三种模式

  1、命令模式(command mode)—执行命令

  在该模式中,可以输入命令来执行许多种功能。控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

  2、输入模式(Insert mode)—输入文本

  vi被运行时,通常处在命令模式下,键入以下命令 可以使vi退出命令模式,进入输入模式:I(i)、A(a)、O(o)。

  3、末行模式(last line mode)—执行待定命令

  将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。不过一般我们在使用时把vi简化成两个模式,就是将末行模式(last line mode)也算入命令行模式command mode)。

vi编辑器的启动与退出

1. vi的启动

  输入vi命令后,便进入全屏幕编辑环境,此时的状态为命令模式。

  (1) vi

  进入vi的一个临时缓冲区,光标定位在该缓冲区第1行第1列的位置上。

  (2) vi file1

  如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在该缓冲区第1行第1列的位置上。

  (3) vi + file1

  如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在文件最后1行第1列的位置上。

  (4) vi +N file1(N:为数字)

  如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在文件第N行第1列的位置上。

  (5) vi +/string file1

  如果file1文件不存在将建立此文件;如该文件存在则将其拷贝到一个临时缓冲区。光标定位在文件中第一次出现字符串string的行首位置。

  2. 退出vi(末行模式(last line mode))

  建议在退出vi前,先按ESC键,以确保当前vi的状态为命令方式,然后再键入“:”(冒号),输入下列命令,退出vi。

  (1) :w

  将编辑缓冲区的内容写入文件,则新的内容就替代了原始文件。这时并没有退出vi,必须进一步输入下述命令才能退出vi:

  :w filename(存入指定文件)

  :q

  (2) :wq

  即将上面的两步操作可以合成一步来完成,先执行w,后执行q。

  (3) :x和ZZ(注意: ZZ前面没有“:”)

  功能与(2)等价。

  (4) :q!(或:quit)

  强行退出vi,使被更新的内容不写回文件中。仅键入命令:q时,如vi发现文本内容已被更改,将提示用户使用“:quit”命令退出。

vi编辑器常用命令

1、在文件中移动光标

  h:向左移动一个字符

  l:向右移动一个字符

  j:向下移动一行

  k:向上移动一行

  ^(即Shift+6):移动到当前行的开头处

  $(即Shift+4):移动到当前行的结尾处

  H(大写):使光标移动到屏幕的顶部

  M(大写):使光标移动到屏幕的中间

  L(大写):使光标移动到屏幕的底部

  Ctrl+b:上滚一屏。

  Ctrl+f:下滚一屏。

  Ctrl+d:下滚半屏。

  Ctrl+u: 上滚半屏。

  2、插入文本

  (1)添加:

  ●输入a后,在光标的右边插入文本

  ●输入A,在一行的结尾处添加文本

  (2)插入:

  ●通过在命令模式下输入i,在光标的左边插入文本

  ●通过在命令模式下输入I,在行首插入文本

  (3)插入新行:

  ●输入o,在当前光标位置下面打开一行

  ●输入O,在当前光标位置上面打开一行

  3、撤消更改

  (1)撤消前一个命令:在最后一个命令之后立即输入u来撤消该命令

  (2)重复某个命令:“.”

  (3)撤消对一行的更改:输入U来撤消你对一行所做的所有更改,这个命令只有在你没将光标移动到该行以外时才生效。

  4、删除文本

  (1)删除一个字符:

  ●为删除一个字符,需将光标放置在要删除的字符上并输入x

  ●为删除光标之前(其左边)的一个字符,需输入X

  (2)删除一个词或词的部分内容:

  ●为删除一个词,需将光标放置到该词的开头并输入dw

  ●为删除词的部分内容,需将光标放置到该词要保存部分的右边。输入dw来删除该词余下的部分

  (3)删除一行:将光标放置到该行的任意处并输入dd

  (4)删除多行:ndd

  (5)删除行的部分内容:将光标放置到该行要保存部分的右边,并输入D。为删除光标左边的所有内容,须将光标放置到该行要删除部分的右边,并输入d0(d-零)。

  (6)删除到文件的结尾:为删除从当前行到文件结尾的所有内容,需输入dG

  5、复制和移动文本

  ●复制一行命令:yy

  ●粘贴命令:p

  ●移动文本:先将要移动的部分用删除命令删除,然后再粘贴就可以了

  ●复制指定文件的内容

  : r filename

  6、查找一个字符串

  ●输入/,并在/后面输入要查找的串,然后按下回车

  ●输入“n”跳转到该串的下一个出现处

  ●输入“N”跳转到该串的上一个出现处

  7、替换一个字符串

  ●在一行内替换头一个字符串old为新的字符串new

  :s/old/new

  ●在一行内替换所有的字符串old为新的字符串new

  :s/old/new/g

  ●在两行内替换所有的字符串old为新的字符串new

  :#,#s/old/new/g

  ●在文件内替换所有的字符串old为新的字符串new

  :%s/old/new/g

  ●进行全文替换时询问用户确认每个替换需添加c选项

  :%s/old/new/gc

  8、设置vi

  ●显示行号

  :set number

  ●取消行号显示

  :set nonumber

  ●设置显示用户模式

  :set showmode

  ●设置文件只读

  :set readonly

linux中vi编辑器的更多相关文章

  1. Linux 中 Vi 编辑器的简单操作

    Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi  filename //打开或新 ...

  2. linux中vi编辑器的使用

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本 编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任 何版本,vi编辑器是完 ...

  3. linux中vi编辑器(转载)

    三种模式相互切换 在命令终端输入vi进入vi编辑器. 命令模式:进入编辑器即进入命令模式, 输入模式:在命令模式下输入“i ”进入输入模式: 末行模式:按“:”进入末行模式: 在输入模式切换至末行模式 ...

  4. Linux中vi编辑器的使用详解

    vi编辑器是Linux系统下标准的编辑器.而且不逊色于其他任何最新的编辑器.可是会用的有多少呢.下面介绍一下vi编辑器的简单用法和部分命令.让你在Linux系统中畅行无阻. 基本上vi可以分为三种状态 ...

  5. Linux中vi编辑器的用法

    实验一: vi编辑器的模式切换 1.       实验目标:熟练掌握vi编辑器的三种模式间切换及其特点 2.       实验操作步骤: 步骤一: 进入vi编辑器即命令模式 进入vi编辑器可以在命令终 ...

  6. linux中VI编辑器使用个人记录

    VI编辑器有三种编辑模式:命令模式.最后行模式.文本编辑模式 启动VI后进入的第一种模式是”命令模式“.从命令模式可进入最后行模式和编辑模式.而后两种模式之间不能直接切换.必须按ESC键退回到命令模式 ...

  7. linux中vi编辑器没有颜色

    vi是没有颜色的,vim是有颜色的.可是系统中没有安装vim. 我们可以通过 rpm -qa |grep vim 看看系统中是否安装了下面3个rpm包,如果有就是安装了vim. 点击(此处)折叠或打开 ...

  8. linux中Vi编辑器使用

    1.如需要编辑aaa.txt文件: vi  aaa.txt   就可以进入到   aaa.txt文件中, 输入  i   进入到编辑模式, 按 Esc 退出编辑模式  , :wq   保存退出编辑模式 ...

  9. Linux下vi编辑器粘贴复制剪切功能

    RedHat 9.0 Linux下vi编辑器实现简单的粘贴复制剪切功能": 如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到 ...

随机推荐

  1. perl基本语法

    标量 标量是 Perl 中最简单的数据类型.大多数的标量是数字(如 255 或 3.25e20)或者字符串(如 hello或者盖茨堡地址). 数字 perl中所有数字内部的格式都是双精度浮点数. 浮点 ...

  2. SFMPQ打包工具完后小结

    硬盘上没有,第一次创建Archive的时候用SFileOpenArchiveForUpdate, 当打开一个已经存在archive的时候用SFileOpenArchive. MpqDeleteFile ...

  3. HDU 1425 sort 【哈希入门】

    题意:给出n个数,输出前m大的数 和上一题一样,将输入的数加上一个极大地值作为地址 #include<iostream> #include<cstdio> #include&l ...

  4. BZOJ2482: [Spoj1557] Can you answer these queries II

    题解: 从没见过这么XXX的线段树啊... T_T 我们考虑离线做,按1-n一个一个插入,并且维护区间[ j,i](i为当前插入的数)j<i的最优值. 但这个最优值!!! 我们要保存历史的最优值 ...

  5. HDU 1233 还是畅通工程(最小生成树,prim)

    题意:中文题目 思路:prim实现,因为有n*(n-1)/2条边,已经是饱和的边了,prim比较合适. (1)将点1置为浏览过,点1可以到达其他每个点,所以用low[i]数组记录下目前到达i点的最小长 ...

  6. ffmpeg 从内存中读取数据(或将数据输出到内存)

    更新记录(2014.7.24): 1.为了使本文更通俗易懂,更新了部分内容,将例子改为从内存中打开. 2.增加了将数据输出到内存的方法. 从内存中读取数据 ffmpeg一般情况下支持打开一个本地文件, ...

  7. Struts2中通配符

    1.Struts2中通配符可通过请求的url路径来确定包.类.方法.返回值名. 如 <action name="*_*_*_*" class="cn.javass. ...

  8. TCP/IP详解学习笔记(7)-广播和多播,IGMP协议

    1.单播,多播,广播的介绍 1.1.单播(unicast) 单播是说,对特定的主机进行数据传送.例如给某一个主机发送IP数据包.这时候,数据链路层给出的数据头里面是非常具体的目的地址,对于以太网来 说 ...

  9. 向Window BCD 文件添加VHD开机启动项的相关笔记

    ******************************************************************************** * BCD_YE_MIN文件说明:(精 ...

  10. 修改Zabbix默认运行账户

    默认Zabbix运行的账户是Zabbix,但在自动部署的时候,Agent与Server的先后顺序不定,而且官方不建议两者使用同一个账户.   所以,解压压缩包后,进入目录: vi configure ...