在Linux中,对文件内容的编辑莫过去vi命令了,它是每个发布版本中的标配。并且功能强大。

在vi中一共有三种模式,一般模式(命令参照),编辑模式(命令参照)与命令模式(命令参照)。

◇一般模式:当我们用vi打开一个文档的时候,就是一般模式了,这个时候,我们可以删除字符,删除行,也可以用上下左右来操作光标。也可以复制粘贴。

◇编辑模式:当在一般模式下按下【i, I, o, O, a, A, r, R】的时候,就进入编辑模式了。这个时候屏幕的最下方会出现【-- 插入 --】【-- 替换 --】(语言根据系统的设置可能会不一样)的提示信息。这个时候就可以编辑文本的内容了。按下[Esc]键即可以退出编辑模式。

◇命令模式:在一般模式下按下【:/?】三个字符中的任意一个,光标就会移动到最后一行,这就进入了命令模式。可以进行一些保存,退出,搜索,替换等等功能。

三种关系可以用下图来表示:

          (图片来自鸟哥的私房菜)

接下来就是体验一番吧。

通过 vi 文件名 的方式我们可以进入编辑该文件。如果该文件存在,则打开编辑,如果不存在则新建一个。

进入后,在最后一行提示,新文件表示,这是在新建一个文件。这个时候,我们就是处于一般模式。

但是由于文件中暂时还没有内容,所以,我们还不能移动光标到别的地方,或者删除行或者删除字符。

那,我们就先按[i],进入编辑模式。

可以看到,进入编辑模式后,最下面一行显示了[-- 插入 --]的提示信息。接下来就输入信息。(按回车键可以换行)。

输入完成之后,我们按[Esc]键回到一般模式。

这样我们就回到了一般模式,我们可以通过上下左右来移动光标,也可以试着用[x]键来删除字符。或者双击[d]键来删除行。

编辑完之后,接下来我们就应该要保存退出了。

这个时候我们就需要进入到命令模式,使用[:wq]来进入命令模式,并保存退出。

然后,回车,我们就可以保存退出了。

退出之后,我们用[ll]命令来查看,发现改文档已经建立起来了。

经过上面的一番体验之后,相信你是不是对vi的编辑已经略懂了呢,

是不是迫切的想知道还有什么命令呢?

别急,听我慢慢道来。

◇一般模式

[h]或[←]:光标向左移动一个字符

[j]或[↓]:光标向下移动一个字符

[k]或[↑]:光标向上移动一个字符

[l]或[→]:光标向右移动一个字符

但是一个一个的移动貌似有点效率非常的低,这时候我们可以使用【数字加命令】的方式来移动。

比如:30j:向下移动30行   10→:向右移动10个字符

[Ctrl] + [f] :屏幕向下移动一页,相当于[Page Down]

[Ctrl] + [b]:屏幕上移动一页,相当于[Page UP]

[Ctrl] + [d]:屏幕向下移动半页

[Ctrl] + [u]:屏幕向上移动半页

[+]:光标移动到非空格符的下一列

[-]:光标移动到非空格符的上一列

n<space>:n代表数字,按下数字后,在按空格,光标会向右移动到这一行的n个字符。

0或[home]:这个是数字0,表示移动到这一行的最前面字符处。

$或[End]:移动到这一行的最后面字符处。

[H]:光标移动到这个屏幕的最上方那一行的第一个字符。

[M]:光标移动到这个屏幕的中央那一行的第一个字符

[L]:光标移动到这个屏幕的最下方那一行的第一个字符。

[G]:移动光标到这个文件的最后一行。

[nG]:你表示数字,移动到这个文档的第n行

[gg]:移动到这个当好的第一行,相当于[1G]

[n<Enter>]:n表示数字,光标向下移动n行

□检索与替换命令

[/word]:向光标之下寻找一个名称为world的字符串

[?word]:向光标智商寻找一个名称为word的字符串

[n]:这个n是英文按键,代表重复前一个搜寻的动作,假如说你用[/name]来搜寻name之后,可以按[n]来继续查找下一个

[N]:这个和[n]相反,是用来查找上一个

[:n1,n2s/word1/word2/g]:n1和n2为两个数字,表示在n1和n2行之间寻找word1这个字符串,并将该字符串替换为word2

[:1,$s/word1/word2/g]:从第一行到最后一行寻找word1字符串,并替换为word2

[:1,$s/word1/word2/gc]:从第一行到最后一行寻找word1字符串,并替换为word2,且在替换之前显示提示字符,让用户来确认是否要替换。

□删除复制命令

[x,X]:在一行当中,[x]表示向后删除一个字符,相当于[del],[X]表示向前删除一个字符,相当于[backspace]

[nx]:n为数字,表示向后连续删除n个字符

[nX]:n为数字,表示向前连续删除n个字符

[dd]:删除游标所在的那一整行。

[ndd]:n为数字,删除光标所在的行向下n行

[d1G]:删除光标所在的行到第一行的所有数据(1G表示第一行)

[dG]:删除光标所在行到最后一行的所有数据

[d$]:删除光标所在处到改行的最后一个字符

[d0]:这个是数字0,删除光标所在处到该行的最前面一个字符

[yy]:复制游标所在的那一行

[nyy]:n为数字。复制光标所在行向下n行

[y1G]:复制游标所在行到第一行的所有数据

[yG]:复制游标所在行到最后一行的所有数据

[y0]:复制光标所在字符到行首的所有数据

[y$]:复制光标所在字符到行尾的所有数据

[p,P]:p为将已复制的数据在光标下一行贴上,P为贴在光标的上一行,

[J]:将光标所在行与下一行的数据结合成一行

[c]:重复删除多个数据,例如乡下删除10行[10cj]

[u]:复原前一个动作

[Ctrl + r]:重复上一个动作

[.]:这是个小数点,表示重复前一个动作  

◇编辑模式

在一般模式下按下面这些键就可以进入编辑模式。

[i,I]:进入插入模式,[i]为从光标所在处插入。[I]为在目前所在行的第一个非空格处开始插入

[a,A]:进入插入模式,[a]为从光标所在的下一个字符处开始插入,[A]为从光标所在行的最后一个字符处开始插入。

[o,O]:进入插入模式,[o]表示在目前光标所在的下一行处插入新的一行,[O]表示在目前光标所在处的上一行插入新的一行

[r,R]:进入替换模式,[r]表示取代光标所在的那一个字符一次,[R]会一直取代光标所在的文字,知道按下[Esc]为止。

[Esc]:退出编辑模式

◇命令模式

[:w]:保存,不退出

[:w!]:强制保存,即使权限是只读的时候,也写入

[:q]:退出vi

[:q!]:强制退出,比如有时我们修改了文档,又不想保存

[:wq]:保存并退出,[:wq!]表示强制保存并退出

[ZZ]:表似乎档案没有变动,则不储存离开,变动了,则存储离开

[:w filename]:将编辑的数据储存为另一个新的文档

[:r filename]:在编辑的数据中,读入另一个文档的数据,内容加到游标所在行的后面

[:n1,n2 w filename]:将n1到n2的内容储存到filename这个档案

[:! command]:暂时离开vi到指令列模式下执行command的显示结果。例如:[:! ls /home] 即可在vi中查看/home地下 ls的输出结果

[:set nu]:显示行号

[:set nonu]:取消显示行号

Centos常用命令之:VI的更多相关文章

  1. CentOS 常用命令大全

    下面,就给大家介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep &qu ...

  2. CentOS常用命令备忘

    1. 查看进程 ps -a 杀掉进程 kill PID 2. 添加计划任务crontab -e 例如:30 21 * * * service httpd restart 每天21:30重启apache ...

  3. 第3章 CentOS常用命令

    一.CentOS常用命令 1.1 文件和目录 # cd /home                        进入 '/home' 目录 # cd ..                       ...

  4. centos常用命令

    应用程序->附件->终端 一:使用CentOS常用命令查看cpumore /proc/cpuinfo | grep "model name"   grep " ...

  5. CentOS常用命令大全

    一:使用CentOS常用命令查看cpumore /proc/cpuinfo | grep "model name" grep "model name" /pro ...

  6. CentOS 常用命令及快捷键整理

    常用命令: 文件和目录: # cd /home                        进入 '/home' 目录 # cd ..                                ...

  7. CentOS常用命令、快照、克隆大揭秘

    不多说,直接上干货! cat是查看文件内容, cp –cp是连目录及件文件都拷贝 cp是拷贝文件 a.txt里的内容是,   abc   def   ghi cat a.txt |grep –v gh ...

  8. Centos 常用命令[持续积累中...]

    CentOS常用到的查看系统命令 uname -a cat /etc/issue /sbin/ifconfig # 查看内核/操作系统/CPU信息 head -n 1 /etc/issue # 查看操 ...

  9. CentOS 常用命令大全(2)

    系统 # uname -a               # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue   # 查看操作系统版本 # cat /proc/cpuinf ...

随机推荐

  1. 程序员的入门 简单的编程HelloWord

    那么在上一章章节 http://www.cnblogs.com/Goraidh/p/8674329.html 我们简单的俩了解了一下什么是java和配置编写java的环境,本章呢我们学习如何编写一个简 ...

  2. Java基础学习笔记七 Java基础语法之继承和抽象类

    继承 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 例如公司中的研发部员工和维护部员工都属于员工, ...

  3. 『备注』&#x; 格式 的编码转换

    在很多 网站(或者很多 WebService), 我们总能看到 Ӓ &#A22A;  这种格式 的编码. 如何将这种编码 转换成 实际文本,C#代码如下: //各种 幺蛾子网页图标 请参见: ...

  4. 铜齿铁牙UP计划

    铜齿铁牙UP计划 我在""做教练"之好声音训练"给出了老师.播音主持学习者,声乐学习者科学用声三要点: 用气发声 共鸣发声 虚实结合 用气发声首先要学会腹式呼吸 ...

  5. 第一周C语言作业

    一.PTA实验作业 题目1.温度转换 1.实验代码 int main() { int fahr = 150,celsius; celsius = 5 * (fahr - 32) / 9; printf ...

  6. 20162311 实验二 Java面向对象程序设计 实验报告

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  7. 项目Alpha冲刺Day2

    一.会议照片 二.项目进展 1.今日安排 初步搭建后台框架,根据昨天的最终设计再修改原型,成功使用powerDesigner导出sql. 2.问题困难 使用了比较多的框架,而且是首次尝试纯java配置 ...

  8. 在Eclipse中调用Algs4库

    首先下载Eclipse,我选择的是Eclipse IDE for Java Developers64位版本,下载下来之后解压缩到喜欢的位置然后双击Eclipse.exe启动 然后开始新建项目,File ...

  9. 201421123042 《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰 ...

  10. java 二维码解析和生成

    package ykxw.web.qrcode.utils; import java.awt.Color; import java.awt.Graphics2D; import java.awt.im ...