vi是在Unix/Linux命令行下常用的文本编辑工具,在日常配置和管理过程中经常用到,是一个非常强大又实用的好工具;这里就我自己在使用过程中通常用到的一些命令,当然很多也是从网上找到的,使用过后觉得很不错,总结下,与大家分享
本文中“s”为表示替换动作,“%”表示所有行,“g”表示全文,“^”表示行首,“$”表示行尾
vi文本编辑器
Vi编辑器的基本使用
1、vi编辑器的启动与退出
# vi 新建一个空白的文档。
2、退出vi编辑环境
# q! 强制退出编辑器(不保存当前的修改)。
3、进入编辑环境并打开文件
# vi file 指定打开某文档。
文件操作
1、打开新文件
: e filename 打开文件(请确认当前正编辑文件已经保存,不然无法执行)。
: e! filename 强制关闭当前文件(不保存)并打开指定文件。
2、读取文件内容到当前文件
:r filename 读取参数中的文件,并将文件粘贴到光标所在行的下面(类似插入)。
3、保存文件
: w 常规保存文件。若当前文件没有文件名执行命令时会提示输入文件名。
: w filename 另存为文件,使用指定另存为的文件名作为参数。
: w! 对于没有写入权限的文件强行写入。只限于root帐户!
4、退出vi编辑器
: q 适用于已经保存或没有修改过的文件。
: wq 保存并退出。
: q! 强行退出,不保存当前的修改。
光标移动操作
1、光标方向移动
h 左 、l右、k上、j下
2、翻页移动
ctrl+f:向前翻整页、ctrl+b向后翻整页、ctrl+u向前翻半页、ctrl+d向后翻半页
3、行内快速跳转
shift+^ 将光标快速跳转到本行的行首。
shift+$ 将光标快速跳转到本行的行尾。
shift+W 将光标快速跳转到当前位置的后一个单词的首字母。
shift+b 将光标快速跳转到当前位置的前一个单词的首字母。
shift+e 将光标快速跳转到当前位置的后一个单词的尾字母。
4、文件内行间快速跳转
: set nu 显示行号。
: set nonu 取消显示行号。
编辑操作
1、进入输入模式
i 在当前光标处进入插入状态。
a 在当前光标后进入插入状态。
A 将光标移动到当前行的行末,并进入插入状态。
o 在当前行的下面插入新行,光标移动到新行的行首,进入插入状态。
O 将当前行的上面插入新行,光标移动到新航的行首,进入插入状态。
cw 删除当前光标到所在单词的尾部的字符,并进入插入状态。
c$ 删除当前光标到行尾的字符,并进入插入状态。
c^ 删除当前光标之前到行首的字符,并进入 插入状态。
2、输入模式的操作
使用上下左右方向键进行光标的移动。
home和end 键快速定位光标到行首和行尾。
pageup pagedown 健进行文本的上下翻页。
backspace (退格)键进行光标左侧字符的删除。
delete 键删除光标位置的字符。
3、删除操作(命令模式)
x 删除光标处的单个字符。
dd 删除光标所在行。
dw 删除当前字符到单词尾(包括空格)的所有字符。
de 删除当前字符到单词尾(不包括单词尾部的空格)的所有字符。
d$ 删除当前字符到行尾的所有字符。
d^ 删除当前字符到行首的所有字符。
J 删除光标所在行行尾的换行符,相当于合并当前行和下一行的内容。
4、撤销操作(命令模式)
u 撤销最近一次的操作,并恢复操作结果,可多次使用u来恢复已经进行了多步操作。
U 撤销当前进行的所有的操作。(文件自上次保存到现在的操作)。
ctrl+R 对使用u命令撤销的操作进行恢复。
5、复制操作(命令模式)
yy 复制当前行整行的内容到vi缓冲区。
yw 复制当前光标到单词尾字符的内容到vi缓冲区。
y$ 复制当前光标到行尾的内容到vi缓冲区。
y^ 复制当前光标到行首的内容到vi缓冲区。
v 进入visual模式,选择要复制的文本
#yy例如:5yy就是复制5行
#yw例如:2yw就是复制两个单词
如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。
6、粘贴操作(命令模式)
p 使用p命令读取缓冲区的内容并粘贴到光标当前的位置(不覆盖文件已有的内容)。
7、查找与替换操作:(末行模式)
/word 自上而下的查找操作,
?word 自下而上的查找操作,
输入n命令查找下一个匹配的字符串。
输入N命令查找(由下而上)下一个字符串。
添加替换操作:
在行首尾添加字符串
从文本的第3行至20行的行首全部插入字符串“NewString”:
:3,20s/^/NewString/
从文本的每行行首全部插入字符串“NewString”:
:1,$s/^/NewString/
:%s/^/NewString/g
用下列命令在文本每行的行首添加字符串“NewString”,请注意空格的存在。
:g/^/s//NewString/g
从文本的每行行首全部插入字符串“NewString”:
:%s/$/newstring/
在1到20行的行尾添加 “newstring"
:1,20s/$/newstring/
在整个文件中替换
在整个文件中替换特定字符串,所用的命令如下:
:%s/old_string/new_string/g
如果仅将文件中的第1行到第10行中的“old_string”替换成“new_string”,那么使用下列命令:
:1,10s/old_string/new_string/
编辑器的多文件操作
1、多文件操作的vi启动
#vi passwd fstab inittab
vi编辑器将在当前的编辑屏幕中显示vi命令参数中的第一个文件,其他文件处于后台运行不显
示的!vi编辑器在同一时刻只能编辑当前屏幕中的文件,如要编辑他文件需要进行文件切换!
2、多文件切换
显示多文件信息
:args 察看多文件的排序。
前后切换多文件
:next 对vi中打开的多个文件进行向后切换。
:prev 对vi中打开的多个文件进行向前切换。
后面接上"!"可以在前后切换文件的同时丢弃对当前文件的修改内容。
定位首文件和尾文件
:first 对vi中打开的多个文件进行当前文件和首文件切换。
:last 对vi中打开的多个文件进行当前文件和尾文件切换。
快速文件切换
ctrl+^ 在两个文件之间进行切换,适用于参考对照进行的文本修改的环境下应用。
分屏显示多个文件
# vi -o xxx yyy zzz 水平分屏显示xxx yyy zzz 3个文件。
# vi -O xxx yyy zzz 垂直分屏显示xxx yyy zzz 3个文件。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24668589/viewspace-702000/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24668589/viewspace-702000/