vi编辑器入门
基本的vi编辑器命令
进入vi编辑器
启动vi
退出vi
// 使vi处于命令模式
[Esc]
// 保存并退出
:wq
// 退出
:q
// 强行退出
:q!
移动光标键
h或[←] 将光标向左移动一格
j或[↓] 将光标向下移动一格
k或[↑] 将光标向上移动一格
l或[→] 将光标向右移动一格
文本输入模式
i 在光标左侧输入正文
I 在光标所在行的开头输入正文
a 在光标右侧输入正文
A 在光标所在行的结尾输入正文
o 在光标所在行的下一行增添新行,并且光标位于新行的开头
O 在光标所在行的上一行增添新行,并且光标位于新行的开头
命令模式
光标移动键
h或[←] 将光标向左移动一格
j或[↓] 将光标向下移动一格
k或[↑] 将光标向上移动一格
l或[→] 将光标向右移动一格
$ 将光标移到当前行的行尾
w 将光标向右移动一个字
e 将光标移动到行尾
0 将光标移动到行首
[return] 将光标移动到下一行的行首
[spacebar] 将光标向右移动一格
[backspace]将光标向左移动一格
文本修改
x 删除光标位置指定的字符
dd 删除光标所在的行
u 撤销最近的修改
U 撤销对当前行所做的所有修改
r 替换光标位置上的一个字符
R 替换从光标位置开始的字符,同时改变vi到文本输入模式
. 重复上一次的修改
退出vi编辑器
wq 保存文件,退出vi编辑器
w 保存文件,但不退出vi编辑器
q 退出vi编辑器
q! 不保存文件,退出vi编辑器
ZZ 保存文件,退出vi编辑器
Linux:vi在线帮助
在命令模式下,输入:help[return]可以显式一个帮助文档
在帮助文档中,输入:q[return]退出帮助文档,回到文件内容
存储缓冲区
vi编辑器为用户所要创建和修改的文件建立一个临时的工作区
vi编辑器高级用法
vi编辑器的启动
启动vi编辑器
在不提供文件名而启动vi编辑器
输入vi和[return],进入文本编辑模式,此时编辑的内容全部在缓冲区中
输入:w <filename>将缓冲区的内容保存在文件<filename>中,不退出vi编辑器
输入:w! <filename>将缓冲区的内容保存在文件<filename>中,并覆盖原文件,不退出vi编辑器
输入:wq <filename>将缓冲区的内容保存在文件<filename>中,并退出vi编辑器
使用vi的启动选项
打开和退出只读文件
vi -r <filename>
view <filename> 通过只读的方式打开文件
:q 或者 :q! 强制退出只读文件
打开文件并执行命令
编辑多个文件
vi <file1> <file2> ... 同时打开多个文件列表
:n 立即打开文件列表中的下一个文件
:n! 强制打开文件列表中的下一个文件
ar:查看文件列表
//编辑另一个文件
:e <file>
//读另一个文件
:r <file>
//写入另一个文件
:start_line, end_line w <file>
重排文本
移动行
dd 删除当前行,并且把当前行复制到缓冲区
p 将被删除的行放到当前行下
P 将被删除的行放到当前行上
复制行
yy 将当前行复制到缓冲区
p 将被删除的行放到当前行下
P 将被删除的行放到当前行上
vi操作符的域
命令 = 操作符 + 域
$ 标识域为从光标位置开始到当前行尾
0 标识域为从光标位置开始到当前行首
e或w 标识域为从光标位置到当前字尾
b 标识域为从光标位置到当前字首
使用删除操作符和域控制键
d$ 删除从当前光标到行尾的文本
d0 删除从当前光标到行首的文本
dw 删除光标后的一个字,光标向后移
3dw 删除光标后的三个字
de 删除光标后的一个字,光标不向后移
db 删除到前一个字的自首
使用复制操作符和域控制键
y$ 将光标到行尾的字符赋值,光标位置不变
p 将复制的文本放到光标位置后
P 将复制的文本放到光标位置前
使用修改操作符和与控制键
cw 在当前字尾放置标记,然后转入文本输入模式
输入新的文本
[esc] 将新的文本替换旧文本
在vi中使用缓冲区
vi编辑器中有多个用于临时存储的缓冲区。有两类临时缓冲区:数字编号缓冲区和命名缓冲区
数字编号缓冲区
vi使用数字1~9为9个缓冲区进行编号,数字编号越小的缓冲区保存最新的内容
"9p 表示将编号为9的缓冲区的文本复制到光标区域
字母编号缓冲区
vi使用字母a~z来为26个缓冲区进行命名
这些缓冲区中的内容没有自动替换,而是用户对缓冲区进行操作
光标定位键
[ctrl-d] 光标向下移动,每次移动12行
[ctrl-u] 光标向上移动,每次移动12行
[ctrl-f] 光标向下移动,每次移动24行
[ctrl-b] 光标向上移动,每次移动24行
通过行号定位
1000G 定位到第1000行
G 定位到文件尾
定制vi编辑器
:set all 查看完整参数列表和它们在系统上的设置
选项的格式
布尔值
set X 打开
set noX 关闭
数字
set X=12 将数字选项赋值为12
串选项
set X=PPP
set命令
:set all 显示所有选项
:set 显示已修改过的项
:set X? 显示当前项的值
设置vi的环境
设置vi编辑器中的环境
行长和行回绕
屏幕终端通常只有80列,可指定vi编辑器在80-wrapmargin前自动换行
缩写与宏
缩写:为文本输入定义缩写
ab <缩写> <原句>
unab <缩写> <原句>
宏:为命令定义缩写
map <缩写> <原命令>
unmap <缩写> <原命令>
.exrc 文件
用户在vi编辑器中设置的参数是临时保存的,永久保存需要在.exrc文件中设置
当vi启动时,首先在当前目录下寻找.exrc文件,如果没有,则检查主目录,如果主目录中没有,则使用默认值
.exrc中的设置与vi编辑器中的命令一样
其他vi命令
运行shell命令
可以在命令模式输入shell命令:vi编辑器将清屏并执行shell命令,按任意键返回vi编辑器
行连接
使用J命令连接两行