vi基本概念既不介绍了,百度,wiki上都有.下面稍微总结下我所学的vi吧

1.vi分为三种状态:命令模式(command mode);插入模式(insert mode);底行模式(last line mode)

  (1).命令行模式-command mode

    就是控制屏幕光标的移动,主要是进入插入模式和底行模式的空档(就像手动档一样,换档都是先进入空档在到另一个档位)

  (2).插入模式(insert mode)

    名副其实的插入模式,在此模式下,你只能作文本的插入动作(这儿强调只能),也只有在此模式下,才能对文档进行文字输入

  (3).底行模式(last line mode)

    所见即所得,这就是在最底行操作的模式,一般是对当前编辑的文本进行保存或者退出.

-->tip1:用vi命令进入vi编辑器,处于命令模式.之后最基本以及常规的做法是:1.[i]字母进入插入模式;2.[:]则进入底行模式.3.任何模式按[ESC]键都会返回命令模式.

2.以下详细介绍各种模式中的命令的详细用法  

  (I.命令行模式:

    1). 插入模式

      按「i」切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置开始输入文件;        按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;   

      按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

    2). 从插入模式切换为命令行模式

      按「ESC」键。

    3). 移动光标   

      vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、        「l」,分别控制光标左、下、上、右移一格。   

      按「ctrl」+「b」:屏幕往"后"移动一页。   

      按「ctrl」+「f」:屏幕往"前"移动一页。   

      按「ctrl」+「u」:屏幕往"后"移动半页。   

按「ctrl」+「d」:屏幕往"前"移动半页。   

      按数字「0」:移到文章的开头。   

      按「G」:移动到文章的最后。   

      按「$」:移动到光标所在行的"行尾"。   

      按「^」:移动到光标所在行的"行首"   

      按「w」:光标跳到下个字的开头   

      按「e」:光标跳到下个字的字尾   

      按「b」:光标回到上个字的开头   

      按「#l」:光标移到该行的第#个位置,如:5l,56l。

    4). 删除文字   

      「x」:每按一次,删除光标所在位置的"后面"一个字符。   

      「#x」:例如,「6x」表示删除光标所在位置的"后面"6个字符。   

      「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符。   

      「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符。   

      「dd」:删除光标所在行。   

      「#dd」:从光标所在行开始删除#行

    5). 复制   

      「yw」:将光标所在之处到字尾的字符复制到缓冲区中。   

      「#yw」:复制#个字到缓冲区   

      「yy」:复制光标所在行到缓冲区。   

      「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。   

      「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。

    6). 替换   

      「r」:替换光标所在处的字符。   

      「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

    7). 回复上一次操作   

      「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复。

    8). 更改  

      「cw」:更改光标所在处的字到字尾处   

      「c#w」:例如,「c3w」表示更改3个字

    9). 跳至指定的行   

      「ctrl」+「g」列出光标所在行的行号。   

      「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

  (II.底行模式Last line mode下命令简介   

     在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「command mode」下后,再按「:」冒号即可进入「last line mode」。

    A) 列出行号  

      「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。

    B) 跳到文件中的某一行  

      「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

    C) 查找字符  

      「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。  

      「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

    D) 保存文件  

      「w」:在冒号输入字母「w」就可以将文件保存起来。

    E) 离开vi  

      「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi。  

      「qw」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

3.最后附上vi使用手册:

VI是unix上最常用的文本编辑工具,作为unix软件测试人员,有必要熟练掌握它。

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

vi + filename :打开文件,并将光标置于最后一行首

vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

vi filename....filename :打开多个文件,依次编辑

移动光标类命令

h :光标左移一个字符

l :光标右移一个字符

space:光标右移一个字符

Backspace:光标左移一个字符

k或Ctrl+p:光标上移一行

j或Ctrl+n :光标下移一行

Enter :光标下移一行 w或W :光标右移一个字至字首

b或B :光标左移一个字至字首

e或E :光标右移一个字j至字尾

) :光标移至句尾

( :光标移至句首

}:光标移至段落开头

{:光标移至段落结尾

nG:光标移至第n行首

n+:光标下移n行

n-:光标上移n行

n$:光标移至第n行尾

H :光标移至屏幕顶行

M :光标移至屏幕中间行

L :光标移至屏幕最后行

0:(注意是数字零)光标移至当前行首

$:光标移至当前行尾 屏幕翻滚类命令

Ctrl+u:向文件首翻半屏

Ctrl+d:向文件尾翻半屏

Ctrl+f:向文件尾翻一屏

Ctrl+b;向文件首翻一屏

nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令

i :在光标前

I :在当前行首

a:光标后

A:在当前行尾

o:在当前行之下新开一行

O:在当前行之上新开一行

r:替换当前字符

R:替换当前字符及其后的字符,直至按ESC键

s:从当前光标位置处开始,以输入的文本替代指定数目的字符

S:删除指定数目的行,并以所输入文本代替之

ncw或nCW:修改指定数目的字

nCC:修改指定数目的行

删除命令

ndw或ndW:删除光标处开始及其后的n-1个字

do:删至行首

d$:删至行尾

ndd:删除当前行及其后n-1行

x或X:删除一个字符,x删除光标后的,而X删除光标前的

Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令

/pattern:从光标开始处向文件尾搜索pattern

?pattern:从光标开始处向文件首搜索pattern

n:在同一方向重复上一次搜索命令

N:在反方向上重复上一次搜索命令 :

s/p1/p2/g:将当前行中所有p1均用p2替代 :

n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 :

g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置

all:列出所有选项设置情况

term:设置终端类型

ignorance:在搜索中忽略大小写

list:显示制表位(Ctrl+I)和行尾标志

($) number:显示行号

report:显示由面向行的命令修改过的数目

terse:显示简短的警告信息

warn:在转到别的文件时若没保存当前文件则显示NO

write信息

nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符

nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始

mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令

:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下

:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下

:n1,n2 d :将n1行到n2行之间的内容删除

:w :保存当前文件

:e filename:打开文件filename进行编辑

:x:保存当前文件并退出

:q:退出vi

:q!:不保存文件并退出vi

:!command:执行shell命令command

:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指 定n1,n2,则表示将整个文件内容作为command的输入

:r!command:将命令command的输出结果放到当前行 。

    

初识vi编辑器的更多相关文章

  1. Git笔记之初识vi编辑器

    1.vi编辑器 如同Windows下的记事本,vi编辑器是Linux下的标配,通过它我们可以创建.编辑文件.它是一个随系统一起安装的文本编辑软件. vi编辑器提供了3种模式,分别是命令模式.插入模式. ...

  2. vi编辑器使用

    显示行号 set nu 取消行号 set nonu 定位到某一行 gg 定位到首行 G 定位到最后一行 在VI编辑器中切换调用外部shell命令 :!ifconfig   在编辑过程中,看ip地址 插 ...

  3. vi编辑器命令

    Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配.注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Windows 下的 word 有排版功能.v ...

  4. Linux学习之一--VI编辑器的基本使用

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

  5. vi编辑器的常规使用

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

  6. vi编辑器 使用 命令

    vi编辑器 1)命令模式 打开文件后.默认处于命令模式,命令模式无法编辑文件 2)输入模式 在命令模式下 按 i 进入输入模式,便于编辑文件内容 3)末行模式 编辑内容后,按esc进入到命令模式,再按 ...

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

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

  8. 第三天 vi编辑器使用和软件安装

    [复习] 判断题: 查看某文件权限为rwxr-xr-- ,则其所属组权限为只读. 对一个目录有w权限,表示可以修改目录下文件内容. 3..tar.gz格式的压缩包可以使用tar -xjf解压缩 4.m ...

  9. linux基础-第九单元 利用vi编辑器创建和编辑正文文件

    vi编辑器简介 什么是vi vi编辑器的操作模式 vi编辑器的3种基本模式 在vi编辑器中光标的移动 移动光标位置的键与光标移动间的关系 进入插入模式 从命令行模式进入插入模式的命令 在命令行模式下删 ...

随机推荐

  1. Uploadify使用

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例时php版本的,本文将详细介绍Uploadify在Aspnet中的使用,您也可以点击下面的链接进行演示 ...

  2. CF 241E flights 最短路,重复迭代直到稳定 难度:3

    http://codeforces.com/problemset/problem/241/E 首先检测哪些点会出现在从起点到终点的路上,可以用dfs或者迭代, 然后,对于所有的边,设f为边起点,t为边 ...

  3. 使用ROS节点(五)

    先启动roscore roscore 为了获取节点信息,可以使用rosnode命令 $ rosnode 获取得一个可接受参数清单

  4. C++-函数模板特化如何避免重复定义

     我正在用一个基于模板的库源代码,该库包含一些针对特定类型的模板函数特化.类模板,函数模板和模板函数特化都在头文件中.我在我的.cpp文件中 #include 头文件并编译链接工程.但是为了在整个工程 ...

  5. WP8.1 Study5:Data binding数据绑定

    一.数据绑定 最简单的编程UI控件的方法是写自己的数据来获取和设置控件的属性,e.g. , textBox1.Text = "Hello, world"; 但在复杂的应用程序,这样 ...

  6. HDU 5451 广义斐波那契数列

    这道题目可以先转化: 令f(1) = 5+2√6 f(2) = f(1)*(5+2√6) ... f(n) = f(n-1)*(5+2√6) f(n) = f(n-1)*(10-(5-2√6)) = ...

  7. COJ 1287 求匹配串在模式串中出现的次数

    这里要在后缀自动机的节点中维护一个从到达当前位置出现的字符串总个数 这里新添加进来的节点的状态出现的次数必然为1 另外包含所能达到这个节点所能到达的状态一定是将它作为父亲的点 那么说明将它作为父亲的点 ...

  8. POJ 2187 求凸包上最长距离

    简单的旋转卡壳题目 以每一条边作为基础,找到那个最远的对踵点,计算所有对踵点的点对距离 这里求的是距离的平方,所有过程都是int即可 #include <iostream> #includ ...

  9. 虚拟机安装Centos版本的linux

    选择自定义安装,然后一路确定下去,对了,Centos的版本一定要高,比如centos 6,太低安装会出问题

  10. hdu1116 欧拉回路

    //Accepted 248 KB 125 ms //欧拉回路 //以26个字母为定点,一个单词为从首字母到末尾字母的一条边 //下面就是有向图判断欧拉回路 //连通+节点入度和==出度和 或者 存在 ...