1.     
进入vi

l vi filename: 打开或新建文件,并将光标置于第一行首

l vi +n filename:打开文件,并将光标置于第n行首

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

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

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

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

2.      保存退出

l w:保存当前文件

l w /tmp1:另存为/tmp1

l 20,59w /tmp1:仅将20-59行之间的内存另存为/tmp1

l x 或 wq:保存退出

l q:退出vi

l q!:退出不保存

l !command:执行shell命令command

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

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

l w !sudo tee %:保存没权限时,可获取权限再保存

3.      光标移动

l h:光标左移一个字符

l l:光标右移一个字符

l space:光标右移一个字符

l Backspace:光标左移一个字符

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

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

l Enter:光标下移一行

l w或W:光标右移一个字至字首

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

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

l ):光标移至句尾

l (:光标移至句首

l }:光标移至段落开头

l {:光标移至段落结尾

l nG:光标移至第n行首

l n+:光标下移n行

l n-:光标上移n行

l n$:光标移至第n行尾

l H:光标移至屏幕顶行

l M:光标移至屏幕中间行

l L:光标移至屏幕最后行

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

l $:光标移至当前行尾

4.      屏幕翻滚

l Ctrl+u:向文件首翻半屏

l Ctrl+d:向文件尾翻半屏

l Ctrl+f:向文件尾翻一屏

l Ctrl+b:向文件首翻一屏

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

5.      插入

l i:在光标前

l I:在当前行首

l a:光标后

l A:在当前行尾

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

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

l r:替换当前字符

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

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

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

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

l nCC:修改指定数目的行

6.      删除

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

l do:删至行首

l d$:删至行尾

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

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

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

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

l %d:删除全部内容

l 1,$d:删除全部内容

7.      复制粘贴、剪切、移动

l yy:复制当前行

l nyy:复制当前行开始的n行

l 先按v,然后方向键选择区域,按y复制选中行

l dd:剪切当前行

l p(小):在当前光标处下面粘贴内容。

l P(大):在当前光标处上面粘贴内容

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

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

8.      搜索(查找)

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

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

l /\/abc:从光标开始处向文件尾搜索/abc,其中\/是转义

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

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

9.      替换

l s/vivian/sky/:替换当前行第一个 vivian 为 sky

l s/vivian/sky/g: 替换当前行所有 vivian 为 sky

l n,$s/vivian/sky/: 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky

l n,$s/vivian/sky/g: 替换第 n 行开始到最后一行中每一行所有 vivian 为sky

l %s/vivian/sky/g (等同于 g/vivian/s//sky/) 替换每一行的每一个 vivian 为 sky

l s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/(可以使用 #或+作为分隔符,此时中间出现的 / 不会作为分隔符)

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

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

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

10. 寄存器

l "?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字

l "?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字

l "?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字

l "?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字

l ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

11. 选项设置

l set number:显示行号

n set number!:不显示行号,其它选项同理加!号

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

l set term:设置终端类型

l set ignorance:在搜索中忽略大小写

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

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

l set terse:显示简短的警告信息

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

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

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

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

vi命令示例大全的更多相关文章

  1. vim 命令大全 / vi 命令大全

    vim 命令大全 光标控制命令: 命令 光标移动 h 向左移一个字符 j 向下移一行 k 向上移一行 l 向右移一个字符 G 移到文件的最后一行 w 移到下一个字的开头 W 移到下一个字的开头,忽略标 ...

  2. linux vi 命令大全

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

  3. linux下vi命令大全

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

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

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

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

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

  6. linux下vi命令大全(转载)

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

  7. (转)Linux vi 命令大全

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

  8. linux下 vi 命令大全

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

  9. 【Linux】linux下vi命令大全

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

随机推荐

  1. 解决TextView最后一行显示不全

    public class MultilineTextView extends TextView { private boolean calculatedLines = false; public Mu ...

  2. HTTP 头部

      通用头域(即通用头) 通用头域包含请求和响应消息都支持的头域,通用头域包含Cache-Control. Connection.Date.Pragma.Transfer-Encoding.Upgra ...

  3. 基于ticket的rw锁

    代码: wiredtiger-2.8.0/src/os_posix/os_mtx_rw.c rw锁结构 struct { uint16_t writers; // Now serving for wr ...

  4. WPF之 DataGrid数据绑定

    DataGrid控件是显示数据的控件,从一个对象集合获取信息并在具有行和单元格的网格中显示信息.每行和一个单独的对象相对应,并且每列和该对象中的一个属性相对应. DataGrid控件添加了许多在WPF ...

  5. keil 的头文件 .

    许多初学者使用网上下载的程序时都会遇到这样一个问题,就是头文件找不到.我想就这个问题说明一下./·首先,我们用到的KEIL有几种版本的,头文件也不同.有reg51.h和at89x51.h两种比较常见. ...

  6. 6.5 为什么Android用Java不用c实现?

    C/C++过于底层,开发者要花很多的经历对C/C++的语言研究清楚,例如C/C++的内存机制,如果稍不注意,就会忘了开启或者释放.而Java的GC会自动处理这些,省去了很多的时间让开发者专注于自己的业 ...

  7. 总结一下一般游戏中3D模型各种勾边方法遇到的工程性问题

    以前做过简单的rim light勾边,几何勾边,这次又做了后处理的勾边,工程化的时候,都遇到很多问题,简单总结一下. 首先是火炬之光勾边效果,类似轮廓光的实现,简单的卡通渲染也是通过类似的算法加采样色 ...

  8. sqlplus实现上下翻页设置

    环境: 操作系统:red hat 5.8 OS 数据库:oracle 11g 11.2.0.1 安装软件:IO-Tty-1.07.tar. Term-ReadLine-Gnu-1.16.tar.uni ...

  9. ubuntn下 nginx+phpstorm 中配置xdebug调试

    xdebug安装和配置说明,主要用于个人学习记录. 一.echo phpinfo(); 搜素xdebug,若未搜素到,则标识未安装或安装失败. 二.拷贝步骤1中输出的所有结果.访问http://xde ...

  10. 用msbuild跑xunit单元测试

    用了Visual Studio 2015之后,发现没法跑xUnit单元测试,xUnit.net runner不支持VS2015,TestDriven.Net也不支持VS2015. 等它们支持VS201 ...