vi命令示例大全
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命令示例大全的更多相关文章
- vim 命令大全 / vi 命令大全
vim 命令大全 光标控制命令: 命令 光标移动 h 向左移一个字符 j 向下移一行 k 向上移一行 l 向右移一个字符 G 移到文件的最后一行 w 移到下一个字的开头 W 移到下一个字的开头,忽略标 ...
- linux vi 命令大全
进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...
- linux下vi命令大全
进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首 ...
- (转)linux下vi命令大全
http://www.cnblogs.com/88999660/articles/1581524.html 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n ...
- linux下vi命令大全[转]
进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...
- linux下vi命令大全(转载)
进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...
- (转)Linux vi 命令大全
进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...
- linux下 vi 命令大全
引用:http://www.cnblogs.com/88999660/articles/1581524.html 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi ...
- 【Linux】linux下vi命令大全
进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...
随机推荐
- 传值 属性 block 单例 协议
界面传值 四种传值的方式 1.属性传值(从前往后) 步骤: 1.属性传值用于第一个界面向第二个界面传值 2.明确二者联系的桥梁,也就是触发跳转的地方 3.明确传输的值,类型是什么 4.在第二个视图控制 ...
- ubuntu工具积累
1.sudo apt-get install terminator一款可以切分终端窗口的工具 a.在系统>键盘>快捷键修该ctrl+alt+t快捷应用为terminator,其他的快捷键同 ...
- android studio view.setId报错
自定义控件设置id的时候会报错,如:view.setId(100); 解决方法: 方案一:通过调用View.generateViewId()作为setId的参数,但此方案不是最佳方案,因为View.g ...
- Memcached监听多个端口_同一台Windows机器中启动多个Memcached服务
下载Memcached服务器 假设你解压在"C:\Program Files\memcached\memcached.exe" 那么可以如下创建多个服务监听不同的端口啦 监听第一个 ...
- java线程详解(三)
java线程间通信 首先看一段代码 class Res { String name; String sex; } class Input implements Runnable { private R ...
- ubuntu 14.04 unity 管理工具 unity-tweak-tool
安装方式: sudo apt-get update sudo apt-get install unity-tweak-tool 用于更改字体,修改状态,disable 亚马逊的搜索等 功能.很好用
- 关于X锁的问题--由select+X锁是否持有到事务结束的误区
前言:看了宋桑的文章<一次意外的X锁不阻塞问题>,结合本人的测试,说明一下我对select中使用X锁是否会持有到事务结束产生的误区: 详情不多说了,详见宋桑的<一次意外的X锁不阻塞问 ...
- NuGet v3 feed带来的惊喜
估计有1个月了,在mac上编译dnx从来没有成功过,因为在安装nuget packages时连接myget.org总是超时. 今天在 ASP.NET 5 Beta5 Now Available 中得知 ...
- [Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍
前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更 ...
- LINQ-to-SQL那点事~利用反射在LINQ-to-SQL环境中实现Ado.net的CURD操作
回到目录 对于linq to sql提供的CURD操作,给我们的感觉就是简单,容易使用,更加面向对象,不用拼SQL语句了,这些好处都表示在处理单条实体或者集合长度小的情况下,如果有一个1000条的集合 ...