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. 查看mssql死锁的详细信息(存储过程)

    CREATE  procedure [dbo].[sp_who_lock]asbegindeclare @spid int,@bl int,        @intTransactionCountOn ...

  2. btr_pcur_t

    /** Persistent cursor */ typedef struct btr_pcur_struct btr_pcur_t; /* The persistent B-tree cursor ...

  3. hMailserver设置外部反病毒扫描程序

    刚在5dmail上发现有人提出一个问题,他在hmailserver的外部病毒扫描程序中使用了瑞星那个娱乐货,结果呢,说瑞星太勇猛了,所有附件都认为病毒了,这是怎么个情况呢? 先从hmailadmin里 ...

  4. WebApp开发之Cordova安装教程

    1 安装Cordova (Cordova开发环境的安装,包括所涉及的Node.js.Cordova CLI.JDK及Android SDK等,然后创建一个HelloWord项目.) 1.1 安装Nod ...

  5. apache开源项目-- Turbine

    1.缘起 Jetspeed是Apache Jakarta小组的开放源码门户系统.它使得最终用户可以通过WAP手机.浏览器.PDA等各种设备来使用各种各样的网络资源(比如应用程序.数据以及这之外的任何网 ...

  6. CCapture directshow 视频捕获类

    // Capture.h for class CCapture #include <dshow.h> #include <qedit.h> #include <atlba ...

  7. 【应聘】阿里巴巴Java面试题目

    原文地址:http://blog.csdn.net/free0sky/article/details/7927275   一.String,StringBuffer, StringBuilder 的区 ...

  8. TCP/IP详解学习笔记(9)-TCP协议概述

    终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输 ...

  9. MySQL数据库分布式事务XA优缺点与改进方案

    1 MySQL 外部XA分析 1.1 作用分析 MySQL数据库外部XA可以用在分布式数据库代理层,实现对MySQL数据库的分布式事务支持,例如开源的代理工具:ameoba[4],网易的DDB,淘宝的 ...

  10. LAMP网站架构分析

    转自:http://www.williamlong.info/archives/1908.html LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包 ...