vi分为三种模式:
1. 命令模式
进入编辑:
AaIiOoSs进入编辑模式(记忆:啊ios),按ctrl+:进入末行模式
光标移动:
H前J下K上L后
行首0 行尾$ 文件开始gg 文件末尾G
行跳转ngg:比如500gg表示跳到500行处 (n表示数字,下面的类似)
删除操作:
删除光标前面字符nX,删除光标后面字符nx
删除光标前面部分d0,删除光标后面部分d$或者D
删除光标单词dw
删除光标所在行dd,删除几行ndd(删除实际是剪切)
其他:
撤销u,反撤销ctrl+r
%大括号之间切换
文本缩进gg=G(或者 =G)
剪切复制粘贴:
剪切几行ndd
复制几行nyy
粘贴p(粘贴到光标下一行)或者P(粘贴到光标当前行)
复制当前行接着粘贴操作yyp
可视模式:
按下v进入可视模式(可视模式没有赋值回车换行,p粘贴到光标后面,P粘贴到光标前面),进入可视模式后通过hjkl选择区域,复制y,删除d
查找方法:
1. /[搜索内容] 往下查找,下一个n,上一个N
2. ?[搜索内容] 往上查找,下一个n,上一个N
3. 光标放在要搜索的单词上,按下#
缩进:
>>向右缩进
<<向左缩进
man查看使用nK:
比如要查看printf函数的使用:
1. /printf搜索选定printf
2. 因为printf在第三章,所以按下3K,就会跳到第三章的printf的函数说明处,按q退出
2. 编辑模式
按下esc进入命令行模式,再按ctrl+:进入末行模式
a光标后面,A行尾
i光标前面,I行首
o新建新建下一行,O新建光标上一行
s删除光标后一个字符,S删除光标所在行
ctrl+p 编辑状态下的补全提示
3. 末行模式(:模式)
替换:(g表示全部)
s/[被替换字符串]/[目标字符串]/g替换当前行
%s/[被替换字符串]/[目标字符串]/g替换全部
10,20s/[被替换字符串]/[目标字符串]/g替换10-20行的范围
执行一个操作:
w保存,q退出,wq保存并退出,x保存并退出
q!强制退出
wq!强制保存并退出
按下两次esc进入命令模式
执行一个命令:
查看执行过的命令history
执行history里的命令:![命令]或者![序号],比如:!pwd
vi分屏
:sp <filename> 上下分屏,按下两次ctrl+w切换,:q退出光标所在屏,:qall退出所有屏幕,其他操作类似
:vsp <filename> 左右分屏,按下两次ctrl+w切换,:q退出光标所在屏,:qall退出所有屏幕,其他操作类似
附:命令行输入vimtutor可查看系统自动的vim教程