Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86219
  • 博文数量: 10
  • 博客积分: 264
  • 博客等级: 入伍新兵
  • 技术积分: 196
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-06 17:21
文章分类
文章存档

2012年(10)

分类: 系统运维

2012-09-03 23:18:38

第七章 vi的相关命令
7.1 光标控制命令 
 命令                           光标移动
 h                      向左移一个字符
 j                   向下移一行
 k                      向上移一行
 l                   向右移一个字符
 G                         移到文件的最后一行
 nG                        移到文件的第n行
 L                         移到屏幕的最后一行
 M                         移到屏幕的中间一行
 H                         移到屏幕的第一行
 e                         移到下一个字的结尾
 E                         移到下一个字的结尾,忽略标点符号
 ^                         移到当前行的第一个非空字符
 $                         移到当前行的最后一个字符
7.2 在vi中添加文本
 命令                            插入动作
 a                          在光标后插入文本
 i                          在光标前插入文本
 o                          在当前行的下边插入新行
 :r file                    读入文件file内容,并插在当前行后
 :nr file                  读入文件file内容,并插在第n行后
 escape                     回到命令模式
7.3 在vi中删除文本
 命令                           删除操作
 x                          删除光标处的字符,可以在x前加上需要删除的字符数目
 nx                         从当前光标处往后删除n个字符
 dw                         删至下一个字的开头
 ndw                        从当前光标处往后删除n个字
 dG                         删除行,直到文件结束
 dd                         删除整行
 ndd                        从当前行开始往后删除
 :n,md                      从第n行开始往后删除到m行
7.4 在vi中查找与替换
 命令                           查找与替换操作
 /text                       在文件中向前查找text
 ?text                       在文件中向后查找text
 n                         在同一方向重复查找
 N                          在相反方向重复查找
 :set ic                     查找时忽略大小写
 :set noic                  查找时对大小写敏感
 :s/oldtext/newtext         用newtext替换oldtext
 :m,ns/oldtext/newtext       在m行通过n,用newtext替换oldtext
 &                          重复最后的:s命令
 :g/text1/s/text2/text3      查找包含text1的行,用text3替换text2
 :g/text/command             在所有包含text的行运行command所表示的命令
 :v/text/command             在所有不包含text的行运行command所表示的命令
7.5 在vi中复制文本
 命令                           复制操作
 yw             将该单词复制
 yy                         将当前行的内容复制
 nyy                         将n行的内容复制
 p                          在当前行下粘贴
7.6 在vi中撤消与重复
 命令                           撤消操作
 u                          撤消最后一次修改
 U                          撤消当前行的所有修改
 "np                        取回最后第n次的删除(缓冲区中存有一定次数的删除内容,一般为9)
 n                          重复前面的/或?查找命令
7.7 保存文本和退出vi
 命令                           保存和/或退出操作
 :w                         保存文件但不退出vi
 :w file                    将修改保存在file中但不退出vi
 :wq或ZZ或:x                 保存文件并退出vi
 :q!                         不保存文件,退出vi
 :e!                         放弃所有修改,从上次保存文件开始再编辑
7.8 vi中的选项
 选项                           作用
 :set all                  打印所有选项
 :set nooption               关闭option选项
 :set nu                     每行前打印行号
 :set showmode               显示是输入模式还是替换模式
 :set noic                  查找时忽略大小写
 :set list                  显示制表符(^I)和行尾符号
 :set ts=8                  为文本输入设置tab stops
 :set window=n               设置文本窗口显示n行
7.9 在vi中连接行
 选项                           作用
 J                          将下一行连接到当前行的末尾
 nJ                         连接后面n行
7.10 在vi中缩进文本
 选项                           作用
 tab                   插入文本时,插入移动的宽度,移动宽度是事先定义好的
 :set ai                     打开自动缩进
 :set sw=n                  将移动宽度设置为n个字符
 n<<                         使n行都向左移动一个宽度
 n>>                         使n行都向右移动一个宽度,例如3>>就将接下来的三行每行都向右移动一个移动宽度
7.11 vi中的shell转义命令
 选项                           作用
 :!command                  执行shell的command命令,如:!ls
 :!!                         执行前一个shell命令
 :r!command                 读取command命令的输入并插入,如:r!ls会先执行ls,然后读入内容
 :w!command                 将当前已编辑文件作为command命令的标准输入并执行command命令,如:w!grep all
 :cd directory               将当前工作目录更改为directory所表示的目录
 :sh                         将启动一个子shell,使用^d(ctrl+d)返回vi
 :so file                  在shell程序file中读入和执行命令


 

阅读(2161) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~