VI(visual)是一个标准UNIX文本编辑器, 可以在任何Unix系统上进行文本编辑. 在Mac OS操作系统下, 可以在终端中使用VI进行简单的文本编辑. 在主目录下的某些文件, 如果不是以root帐户登录, 有时不能用图形界面的文本编辑程序(如TextEdit.app)进行编辑,这时可以用VI文本编辑器在终端进行编辑.
VI有两种模式, 命令模式和插入模式. 当VI开始运行时, 默认是命令模式. 在命令模式下, 可以用箭头在文本之间移动光标, 删除文本, 插入文件, 显示行数等等. 在插入模式下, 可以插入新文本. 按"i"键可以从命令模式转换到插入模式. 要再回到命令模式, 按esc键.
"View"是以只读方式运行vi的一种方式. 在View下, 可以不进行任何更改的浏览整个文件.
开始vi:
要编辑文件, 键入: vi 文件名
要浏览文件, 键入: view 文件名
"文件名"是指要编辑或打开的文件的名称, 有时需要包含文件路径或扩展名, 比如: vi /etc/cups/****.conf. 它可以是一个现有文件或你想要生成的新文件.
有些系统配置文件需要用sudo vi命令才能编辑,比如 etc/cups下面的Printers.conf文件. sudo需要输入管理帐户密码.
命令简介:
以下是一些简单的vi命令:
光标移动:
k或者↑ 向上移动一行
j 或者↓ 向下移动一行
h或者← 向左移动一个字
l 或者→或空格键 向右移动一个字
回车 移动到下一行的开头
w 移动到下一个单词的开头
e 移动到下一个单词的结尾
b 移动到前一个单词的开头
$ 移动到当前行的末尾
0 (零) 移动到当前行的岂是
G 移动到文件的最后一行
1G 移动到文件第一行
:# 移动到第#行(#为数字)
^f (Ctrl-f) 向前移动一页
^b (Ctrl-b) 向后移动一页
^d (Ctrl-d) 向下滚动
^u (Ctrl-u) 向上滚动
添加文本
i 在光标前插入文本
a 在光标后添加文本
o 在当前行下面插入空行,插入模式启动
O 当前行上面插入空行, 插入模式启动
退格键(delete) 向前删除一字
删除文本
x 删除当前字(光标所在)
dd 删除当前行
d(回车) 删除当前行和下一行
d#(回车) 删除当前行及后面#行(#为数字)
dw 删除单个词
D 删除至当前行尾
:#d 删除第#行
:#,@d 删除第#到@行
移动及复制粘贴文本
yy 拷贝当前行到临时缓冲区
:y# 拷贝当前行开始的#行文本到临时缓冲区
p 在当前行下面粘贴缓冲区内文本
P 在当前行上面粘贴缓冲区内文本
:#,@m% 移动第#到@行至第%行下面
:#,@t% 复制第#到@行至第%行下面
文本查找
/aaaa 向前查找文字aaaa
?aaaa 向后查找文字aaaa
n 重复最后一次查找命令
:s/aaaa/bbb/ 把当前行的文本aaaa替换为bbb
杂项
esc 退出插入模式;转换到命令模式
u 取消最后一次更改
. 重复最后一次编辑命令
:w 保存当前文件
:w yyyy 保存当前文件,命名为yyyy
:r yyyy 读入yyyy文件, 插入到当前行下
ZZ 保存文件并退出vi
:q 退出vi
:q! 退出vi且不保存更改
^g (ctrl-g) 显示当前行行数
:set number 开启行数显示
:set nonumber 关闭行数显示
:set showmode 开启模式状态显示(插入或命令;默认为开启)
:set noshowmode 关闭模式装态显示