The binary systemLinux_vi1 简介 (4)2 使用帮助 (4)3 模式和命令 (4)3.1 输入模式和命令模式 (4)3.2 vi和ex命令 (5)4 启动与编辑vi-vim (5)4.1编辑一个文件 (5)4.2编辑多个文件 (5)5 系统意外时数据的恢复 (5)6 搜索 (6)6.1搜索常用命令 (6)6.2查找字符串便捷方式 (6)6.3 查找整个字符串 (6)7 移动和跳转 (6)7.1获取光标当前位置 (6)7.2 缓冲区移动 (7)7.3 光标移动 (7)7.4 行号跳转 (8)7.5 跳转到前一位置 (9)7.6 使用名称标示任意行,进行跳转 (9)8 插入 (9)9 写入与退出 (10)9.1 写入文件 (10)9.2 退出文件、停止vi (10)10 文本改动 (10)10.1替换之vi命令 (10)10.2替换之ex命令_常用方法 (10)11 删除 (11)11.1 删除命令 (11)11.2 常用的删除组合命令 (12)11.3 撤销或重复改变 (12)11.4 恢复删除 (12)11.5 复制上一次删除 (12)12 复制 (13)12.1 接出(复制单词、句子、段落) (13)12.2 复制与移动行 (13)13 使用缩写 (14)14 shell命令 (14)14.1 执行shell命令 (14)14.2 使用shell命令处理数据 (14)15 显示与设置选项 (14)15.1 显示选项 (14)15.2 设置选项 (15)15.3常用设置命令 (15)16 初始化文件与配置文件 (15)16.1初始化文件 (15)16.2配置文件 (15)17 vi术语 (15)18 在线资料 (16)1 简介在UNIX系统中,创建和修改配置文件、shell脚本、初始化文件、编写程序都离不开VI。
1 vi1属于两个主要的UNIX规范:POSIX和单一UNIX规范。
2 vi编辑器由Bill Joy于1976年创建。
3 vi是一种面向屏幕的编辑器。
4 vi来源于另一个编辑器ex。
5 vim是vi的增强版。
2 使用帮助学习vi,学会使用联机手册或帮助命令是非常重要的。
Unix有两个最重要的文档资料系统:Unix手册和Info(GNU项目的官方文档资料系统)。
常用命令:1 man vi2 vi --help3 info vi对于较长的说明页,可使用分页程序分页显示。
常用的分页程序有:less、more、pg。
例如:man cp | less查找说明书页的其它方法(基于web):1 使用google搜索:(一定要确保包含双引号)○“man vi ”○“man pages” vi2 另外一种基于web的说明书页的方法是xman,xman是一个基于GUI的程序,它充当说明书页浏览器。
在命令行启动xman:xman&。
Vi的帮助命令::help3 模式和命令3.1 输入模式和命令模式命令模式2(command mode):所键入的键都被解释成命令。
1 vi的发音:vee-eye2了解vi所处的模式:输入:set showmode输入模式(input mode):键入的任何内容都直接插入到编辑缓冲区中。
当离开输入模式时,使用Esc键切换到命令模式。
了解所处模式的方法::set showmode3.2 vi和ex命令vi和ex是同一个程序的两种不同的表现形式。
也就是说可以同时使用vi和ex命令。
vi:①大多数vi命令都是单字母或双字母的表现形式。
②vi键入时命令不回显。
ex:①ex命令比vi命令长。
②所有的ex命令都以一个:(冒号)开头。
键入:后,vi就将光标移动到命令行上(屏幕最底部)。
③ex命令的每个字符都将回显。
④ex命令结束,必须按下<Return>键盘。
4 启动与编辑vi-vim4.1编辑一个文件语法:vi 【-rR】【file……】常用命令:1 vi file 启动vi,编辑指定的文件2 vi -R file 以只读模式启动vi3 view file 以只读模式启动vi (vi -R file等同于view file)4 vim file 启动vim,编辑指定的文件5 vim -C file 以兼容模式启动vi4.2编辑多个文件语法:vi a.txt b.txt c.txt切换文件: :next5 系统意外时数据的恢复在编辑文件的过程中,如果遭遇系统意外,vi通常可以将数据恢复出来。
命令:vi -r file (-r 即recover,恢复)如:vi -r test.txt6 搜索6.1搜索常用命令向前搜索: /向后搜索:?常用命令:1 / 向前重复搜索2 ?向后重复搜索3 /regex 向前搜索指定的正则表达式4 ?regex 向后搜索指定的正则表达式5 n 重复上一条/或?命令,搜索方向相同6 N 重复上一条/或?命令,搜索方向相反附:命令历史记录:用上下箭头来查找用过的搜索6.2查找字符串便捷方式*命令: 将光标定位于字符串,按下*键,vi将会取当前光标所在的字符串并将它作用目标字符串进行搜索。
#命令: 与*相反。
6.3 查找整个字符串方法:使用\< \>进行匹配。
例子:/\<word\>7 移动和跳转7.1获取光标当前位置获取方式:^G7.2 缓冲区移动操作键说明^F 向下移动一屏^B 向上移动一屏n^F 向下移动n屏n^B 向上移动n屏^D 向下移动半屏^U 向上移动半屏n^D 向下移动n行n^U 向上移动n行7.3 光标移动操作键说明h <Left> 将光标向左移动一个位置j <Down> 将光标向下移动一个位置k <Up> 将光标向上移动一个位置l <Right> 将光标向右移动一个位置- 将光标移动到上一行的开头+ <Return> 将光标移动到下一行的开头^ 将光标移动到当前行的第一个非空格/制表符的字符上数字0 将光标移动到当前行的开始$ 将光标移动到当前行的末尾w W 将光标移动到下一个单词的词首(大写字母,略过空格)e E 将光标移动到下一个单词的词尾(大写字母,略过空格)b B 将光标移动到上一个单词的词首(大写字母,略过空格))向前移动到下一个句子(向后移动到上一个句子{ 向前移动到下一个段落} 向后移动到上一个段落H 将光标移动到屏幕顶部M 将光标移动到屏幕中间L 将光标移动到屏幕的最后一行f character 单字符搜索移动(f为搜索命令,character为要搜索的字符)F character单字符左方向搜索移动% 已匹配一个括号为目的的移动说明:1.命令计数:在移动命令前加数字,如3j,可实现向下移动三行。
语法:n command (n为数字,command为移动命令)2. 规律:一个命令的大写字母形式会做同样的事情,但是方向相反。
7.4 行号跳转显示行号::set number关闭行号::set nonumber命令说明nG 、 :n 跳转到第n行1G 、 gg 、 :1 跳转到编辑缓冲区的第一行G 、 :$ 跳转到编辑缓冲区最后一行附加:另一个移动到某行的办法是:在命令% 前加一个命令计数,如 50% 会把光标定位在文件中间。
7.5 跳转到前一位置返回前一位置:a)``(两个反引号)b)‘’(两个单引号)7.6 使用名称标示任意行,进行跳转用不可见的名称标识任意行,当需要时使用此名称跳转到这一行。
可以键入m标示这一行,后跟一个字母,这个字母就是这一行的名称。
例如:用”b“标示这一行,可以键入mb。
为了跳转到这一行,可以键入一个反引号或单引号,后面跟这一行的名称。
如:`b 或’b8 插入输入模式:操作键说明i 在当前光标位置前插入数据a 在当前光标位置后插入数据I 在当前行开头处插入数据A 在当前行末尾处插入数据o 在当前行下面出入一行O 在当前行上面插入一行9 写入与退出9.1 写入文件常用命令:1 :w 将数据写入到原始文件2 :w file 将数据写入到指定文件3 :w >> file 将数据追加到指定文件9.2 退出文件、停止vi常用命令:1 :q 退出文件2 :q! 不保存数据,强制退出3 :wq 保存退出文件4 shift+ZZ 停止vi5 ZQ 无条件退出10 文本改动10.1替换之vi命令r:精确替换一个字符(不进入输入模式)。
R:替换多个字符(以覆盖方式替换)。
(先将光标移动到希望开始替换的位置,然后输入R。
切换到输入模式,随后键入的每个字符都将替换当前行上的一个字符。
)s:允许使用多个字符替换一个单个的字符(以插入方式替换)。
C:允许替换从当前光标位置到本行末尾的所有字符。
S 或 cc:以插入方式替换当前整行。
c move:以插入方式从当前光标处替换到move所给出的位置处。
10.2替换之ex命令_常用方法ex命令:语法::s/pattern/replace/ 其中,pattern是替换的模式,replace是替换的文本。
使用方法总结:1 :s/pattern/replace/ 替换当前行2 s/pattern/replace/g 替换当前行所有3 :line s/pattern/raplace/ 替换指定行4 :line,line s/pattern/replace/ 替换指定范围内的行5 :%s/pattern/replace/ 替换所有行6 :.,$s/pattern/replace/g 从当前行末尾至编辑缓冲区的末尾进行相同的替换7 :line,.s/pattern/replace/g 从编辑缓冲区的指定位置到当前行进行相同的替换说明:1 所有的ex命令都以:开头。
2 :s只替换当前行上该模式的第一个匹配项。
3 为了替换所有匹配项,需在该命令的末尾键入字母g。
例如::s/UNIX/linux/g4 替换前进行确认,可在命令末尾添加c。
例如::s/UNIX/linux/cg5 .点号代表当前行。
$代表缓冲区最后一行。
%代表编辑缓冲区内所有的行。
11 删除11.1 删除命令vi命令操作键x 删除当前光标处的字符X 删除光标左边的字符D 删除从当前光标到本行末尾的字符J删除两行之间的换行符 (亦可用于合并两行)d move 删除从当前光标到move所给位置的字符dd 删除当前行ex命令:line d删除指定行:line,line d删除指定范围内的行11.2 常用的删除组合命令说明:操作符命令+位移命令1 nx 删除多个字符(n为删除的字符个数)2 dw 删除1个单词3 d10w 删除10个单词4 d10W 删除10个单词,忽略标点符号。