vi的三种模式
vi有三种模式:命令模式,插入模式和末行模式,所谓末行模式就是可以在最后一行显示输入的命令,可以认为只区分命令和插入模式。(其他模式下按下ESC均可切换到命令模式。)
使用"vi filename"打开文件时,默认是命令模式,在该模式下可以进行光标移动,但是不能编辑。
如要编辑需要按下字符"i"进入插入模式,此时下方会出现INSERT字样。
编辑完成后,按下冒号":"进入末行模式,此时光标移到末尾一行,输入字符“wq”则可保存退出。
移动光标
命令模式下直接输入下面的命令可以进行下面的操作:
[n]G // 跳转到第n行,如按下5G,则跳转到第5行
G // 移动到文末尾
H // 光标移至屏幕顶行
M // 光标移至屏幕中间行
L // 光标移至屏幕最后行
nz // 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部
[n][enter] // 下移n行 如按下5再按回车,下移5行
enter // 光标下移一行
ctrl+f // 前一页 (下一页)
btrl+b // 后一页 (上一页)
删除
命令模式下直接输入下面的命令可以进行下面的操作:
dd // 删除光标所在行
[n]dd // 从光标所在行开始删除n行
查找替换
在命令模式下直接输入下面的命令,可以进行搜索替换操作
/pattern // 从光标开始处向文件尾搜索pattern
?pattern // 从光标开始处向文件首搜索pattern
n // 在同一方向重复上一次搜索命令
N // 在反方向上重复上一次搜索命令
:s/old/new // 用new替换首次出现的old
:s/old/new/g // 将当前行中所有old均用new替代
:g/old/s//new/g // 将文件中所有old均用new替换
:s/old/new/c 用new替换首次出现的old,用户需要确认。[/c]适用上面所有命令
退出
在命令模式下输入:进入末行模式,可以进行下面的操作:
w // 保存
q // 退出
q! // 不保存退出
wq // 保存并退出
x // 保存并退出
行号
在命令模式下输入:进入末行模式,可以进行下面的操作:
set nu // 列出行号
set nonu // 不列出行号