Vi共分三种模式,分别是“一般模式”、“编辑模式”与“命令行命令模式”。

l         一般模式:vi处理文件时,一进入该文件就是一般模式。在这个模式中,可以使用“上下左右”键来移动光标,可以使用“删除字符”或“删除整行”来处理文件内容,也可以用“复制、粘贴”来处理文件数据。

l         编辑模式:在一般模式中可以进行删除、复制、粘贴等操作,却无法进行编辑操作,要等到按下“i、I、o、O、a、A、r、R”等字母后才会进入编辑模式。注意,通常在Linux中,按下上述字母时,画面左下方会出现“INSERT或REPLACE”的字样,才可以输入字符到文件中。回到一般模式时,则按下ESC键即可退出编辑模式。

l         命令行命令模式:在一般模式中,输入“:或/或?”就可以将光标移到最下面的一行,在这个模式中,你可以搜索数据,而且读取、存盘、大量删除字符、离开vi、显示行号等操作都是在此模式中实现。

1、 使用vi进入一般模式

[root@linux]# vi test.txt

直接输入“vi+文件名”即可进入vi一般模式

2、 按下i进入编辑模式

在编辑模式中画面左下方会出现“INSERT”的字样。

3、按下【ESC】键回到一般模式

按下【ESC】键后马上就会发现画面左下角的—INSERT—不见了。

4、 退出vi编辑器

在一般模式中按下“:wq”为存储后离开vi,按下“:q”为不保存编辑离开vi。注退出时出现“只读”类的提醒时,可以在命令后加上“!”表示“强制”的意思。

常用命令

一、移动光标

1)        h 或 向左方向键(←) → 光标向左移动一个字元

2)        j 或 向下方向鍵(↓) → 光标向下移动一个字元

3)        k 或 向上方向鍵(↑) → 光标向上移动一个字元

4)        l 或 向右方向鍵(→) → 光标向右移动一个字元

5)        [Ctrl] + [f] → 屏幕『向下』移动一页,相当于 [Page Down]按键

6)        [Ctrl] + [b] → 屏幕『向上』移动一页,相当于 [Page Up] 按键

7)        n<space> → n 表示『数字』。按下数字后再按空白鍵,光标会向右移动这一行的 n 个字元

8)        0 → 数字『 0 』:移动到这一行的最前面字元处

9)        $ → 移动到这一行的最后面字元处

10)     G → 移动到这个文件的最后一行

11)     nG → n 为数字。移动到这个文件的第 n 行(可配合 :set nu)

12)     gg → 移动到这个文件的第一行,相当于 1G

13)     n<Enter> → n 为数字。光标向下移动 n 行

二、查找与替换

1)        /word → 向光标之下查找一个名称为 word 的字符串。如想查找 eric4ever 字符串,输入 /eric4ever 即可

2)        ?word → 向光标之上查找一个名称为 word 的字符串

3)        n → 『重复前一个查找的动作』

4)        N → 与 n 刚好相反,为『反向』进行前一个查找动作

5)        :n1,n2s/word1/word2/g → n1 与 n2 均为数字。在第 n1 与 n2 行之间查找 word1 字符串,并将该字符串替换为 word2。如:在 1 到 9 行之间查找 eric4ever 并替换为 ERIC4EVER 则:『:1,9s/eric4ever/ERIC4EVER/g』

6)        :1,$s/word1/word2/g → 从第一行到最后一行查找 word1 字符串,并将该字符串替换为 word2

7)        :1,$s/word1/word2/gc → 从第一行到最后一行查找 word1 字符串,并将该字符窗替换为 word2,替换前显示提示对话框是否确认替换

删除、复制与粘贴

1)        x, X → 在一行字当中,x 为向后刪除一个字元 (相当于 [del] 按键), X 为向前刪除一个字元(相当于 [backspace] 按键)

2)        dd → 刪除光标所在的那一整行

3)        ndd → n 为数字。刪除光标所在的向下 n 列

4)        yy → 复制光标所在的那一行

5)        nyy → n 为数字。复制光标所在的向下 n 列

6)        p, P → p 为将已复制的内容粘贴在光标下一行上,P 则为粘贴在光标的上一行

7)        u → 还原前一个动作

8)        [Ctrl]+r → 重做上一个动作

9)        . → 小数点,意思是重复前一个动作

★编辑模式

1)        i, I → 插入:在目前的光标所在处插入输入的文字,已存在的文字会向后退; 其中, i 为『从目前光标所在处插入』, I 为『在目前所在行的第一個非空白字元处开始插入』

2)        a, A → a 为『从目前光标所在的下一个字元处开始插入』, A 为『从光标所在行的最后一个字元处开始插入』

3)        o, O → o 为『在目前光标所在的下一行处插入新的一行』, O 为『在目前光标所在处的上一行插入新的一行』

4)        r, R → r 为『取代光标所在的那一个字元』, R 为『一直取代光标所在的文字,直到按下 ESC 为止』

5)        Esc → 退出编辑模式,回到一般模式中

★末行指令模式

1)        :w → 将编辑的文件写入到硬盘上

2)        :q → 退出 vi

3)        :wq → 保存后退出,若为 :wq! 则为强制保存为退出

4)        :set nu → 显示行号

5)        :set nonu → 取消显示行号

CentOS下VI命令整理的更多相关文章

  1. vi命令整理

    vi命令整理 u 撤销上一次操作 ctrl+r 恢复上一次操作 : 跳转至第1行 :$ 跳转至最后一行 ctrl+f 向文章末尾翻页 ctrl+b 向文章开始翻页 yy 复制一行 p 粘贴刚刚复制第一 ...

  2. CentOS下rpm命令详解

    CentOS下rpm命令详解 rpm,Redhat Package Manager,即为红帽公司为RHEL开发的专用包管理器,后来更改为RPM Package Manager,类似于GNU项目,使用递 ...

  3. CentOS下yum命令详解

    CentOS下yum命令详解 Yum: 即Yellowdog Update Modifier,是一种基于rpm的包管理工具 yum命令使用示例 显示yum仓库 显示所有仓库 yum repolist ...

  4. CentOS 下通过命令登录Mysql

    CentOS 下通过命令登录Mysql: mysql -uroot -p 按回车键后输入密码

  5. Centos下grep命令简介

    grep命令简介 grep 是一个最初用于Unix操作系统的命令行工具.在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配(或者不匹配)的行或文本. grep ...

  6. linux下vi命令大全

    进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首 ...

  7. Linux下VI命令详细介绍

       vi 是"Visual Interface" 的简称,它在Linux 上的地位就仿佛Edit 程序在DOS上一样.它可以执行输出.删除.查找.替换.块操作等众多文本操作,而且 ...

  8. (转)linux下vi命令大全

    http://www.cnblogs.com/88999660/articles/1581524.html 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n ...

  9. linux下vi命令大全[转]

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

随机推荐

  1. ceph集群

    ceph集群部署 ceph理解: Ceph是一个分布式存储,可以提供对象存储.块存储和文件存储,其中对象存储和块存储可以很好地和各大云平台集成.其他具体介绍可见官网简介:http://docs.cep ...

  2. python 通过句柄获取窗口内容

    -- enoding:utf-8 -- 生成 buffer 对象 import win32con from win32gui import PyMakeBuffer, SendMessage, PyG ...

  3. C++ 类 直接定义对象与new对象的区别

    new创建类对象与直接定义的区别 new创建对象的特点 new创建类对象需要指针接收,一处初始化,多处使用 new创建类对象使用完需delete销毁 new创建对象直接使用堆空间,而局部不用new定义 ...

  4. LeetCode 121. Best Time to Buy and Sell Stock (stock problem)

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  5. cadence中元件所在库

    DISCRETE(分立元件)中 开关: 其中可供选择的这几个比较好 SW PUSHBUTTON SW PUSHBUTTON-DPST 数码管: LDD(开头) LTD(开头) 版权声明:本文为博主原创 ...

  6. 【转】Asp.net MVC Comet推送

    原文链接:http://www.cnblogs.com/kissdodog/p/4283485.html 一.简介 在Asp.net MVC实现的Comet推送的原理很简单. 服务器端:接收到服务器发 ...

  7. 【转】WEB前端调优

    首先从一次完整的的请求说起:(以此为例get,www,baidu.com) 1,webbrower 发出request, 2,然后解析www.baidu.com为ip,找到ip的服务器, 3,服务器处 ...

  8. 九度oj 题目1180:对称矩阵

    题目1180:对称矩阵 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3092 解决:1607 题目描述: 输入一个N维矩阵,判断是否对称. 输入: 输入第一行包括一个数:N(1<= ...

  9. 视图 v$sql,v$sqlarea,$sqltext,v$sqltext_with_newlines 的差异

    http://blog.csdn.net/leshami/article/details/8658205 视图v$sql,v$sqlarea,v$sqltext,v$sqltext_with_newl ...

  10. [luoguP1972] [SDOI2009]HH的项链(莫队 || 树状数组 || 主席树)

    传送门 莫队基础题,适合我这种初学者. 莫队是离线算法,通常不带修改,时间复杂度为 O(n√n) 我们要先保证通过 [ l , r ] 求得 [ l , r + 1 ] , [ l , r - 1 ] ...