第六章:Vi 编辑器的高级用法
一、更多有关vi编辑器的知识
vi编辑器与ex编辑器的相互切换 命令模式下:Q进入ex编辑器
? ex编辑器下,输入vi返回vi编辑器
?
启动Vi编辑器 1、基本命令的扩充
shell下直接输入vi,启动vi编辑器,不提供文件名 ? 保存,命令模式下:w保存文件
o 此命令不退出vi,如若需退出,键入:wq
o 如果是新建的文件,则vi警告没有当前文件名的文件,需要附加文件名参数如:w(q) filename
o 如果上述方法保存文件存在文件名冲突,则需要使用:w(1)!
?
2、vi的启动选项
只读模式:vi -R filename,shell下亦可使用view命令通过vi查看文件 ? 退出只读模式:命令模式下:q 或者:q!(强退) ? 命令选项: vi -c [command] filename
?
3、编辑多个文件
vi 启动的时候可以使用多个文件名作为参数,启动后按n(!)即可启动下一个编辑文件。
编辑另一个文件:在vi的命令模式下,:e filename 即打开新的一个文件(类比word)
? 读取另一个文件:在vi的命令模式下,:r filename 即读取一个新的文件,并将其引入到党建编辑的文件中
? 写入另一个文件:在vi的命令模式下,:[指定行号] w(!)写入的指定文件(覆盖性写入)
?
二、重排文本
按键 d y P(大写) p c dd(p) dd(P) (v)yy(p,P) 功能 删除指定位置的文本,并将其保存在缓冲区里 复制指定位置的文本到缓冲区 将缓冲区的内容放到当前光标的位置之上 将缓冲区的内容放到当前光标的位置之下 删除文件并使vi进入文本输入模式 删除当前行,(再按p,将前面被删除的行放到当前的行下) (再按P,将前面被删除的行放在当前的行上) (v选择指定的行)复制当前的(被选定的)行 三、vi操作符的域
许多的vi命令只能在一个文本块(字符,字,行,句)上操作 ? 命令的表示:命令=操作符+域
? vi没有具体的域控制键表示整行,如果需要将一行作为一个命令的域,可以按两次操作符按键。 ? 部分的与控制键
?
域 $ 0 e或w b 使用删除操作符和域控制键
? ? ? ? ? ?
功能 标识域为光标位置开始到行尾 标识域为光标位置开始到行首 标识域为光标位置开始到当前字尾 标识域为光标位置到当前字首 删除从光标位置开始到当前行尾的文本: 命令模式下按:d$ 删除从光标位置开始到当前行首的文本: 命令模式下按:d0 删除从光标位置后的一个字: 命令模式下按:dw 删除从光标位置后的n个字: 命令模式下按:(n)d$ 删除到字尾:命令模式下按:de
删除到前一个字符的字首: 命令模式下按:db
使用复制操作符和域控制键
复制当前光标位置开始到当前行尾的文本:命令模式下按:y$ ? 复制当前光标位置开始到当前行首的文本:命令模式下按:y0
?
四、在vi中使用缓冲区
vi中有多个临时存储的缓冲区。用于保存用户副本的临时文件。 缓冲区类型 数字编号缓冲区 ? 命名缓冲区
?
数字编号缓冲区
vi编辑器使用的9个临时缓冲区 ? 1-9从上至下,构成一个缓冲区栈 ? 缓冲区可以保存任意大小的文本
? 缓冲区的访问:\缓冲区编号)p,将指定缓冲区的内容复制到光标处
?
字母编号缓冲区
使用26和字母命名的缓冲区
? vi不会默认使用,故可以提供给用户自由操作 ? 使用方式同数字编号缓冲区
? \缓冲区编号)来指定当前操作所关联的缓冲区(vi会默认使用数字缓冲区的1)
?
五、光标定位键
?
vi的翻页操作符
按键 Ctrl + d Ctrl + u Ctrl + f Ctrl + b 功能 将光标向下移动到文件尾,通常每次移动12行 将光标向上移动到文件头,通常每次移动12行 将光标向下移动到文件尾,通常每次移动24行 将光标向上移动到文件头,通常每次移动24行 ?
显示当前行号:命令模式下 Crl + g
六、定制vi编辑器