- 编辑模式
- 进入输入:
- a/i:在字符后/前转输入模式
- o:在广标下方重新开启一行
- I:行首插入 A:行尾插入
- O:在光标上方重开一行
- 移动光标:
- 单词
- e下一个单词词尾
- b上一个单词词尾 支持次数
- 行
- O行首
- ^非空白行首
- $绝对行尾
- 50G,跳到50行
- :50直接在末行模式给出行号回车。
- 翻屏
- ctrl F向下翻页
- ctrl B向上翻页
- ctrl D下半页
- ctrl U 上半页
- 删除单个字符
- #x删除光标所在的字符,#代表重复次数
- dw
- de
- db
- dd
- 粘帖:
- p:如删除的是整行,则贴在光标下方,否则贴在字符前面
- P:如删除的是整行,则贴在光标上方,否则贴在字符后面
- 复制命令y:用法如同d
- 先删除再转换为输入模式:
- c:同d命令, = d + 输入模式
- 替换:
- r 要替换的字符
- R进入替换模式
- 撤销编辑操作
- u 撤销最近一次操作
- 撤销撤销:ctrl r
- 重复此前操作
- .
- 可视化模式
- v:按字符选取
- V:按矩形块选取
- ctrl v:视觉块操作
- 查找:
- /模式 :往下查找
- ?模式:往上查找
- 末行模式
- 末行变量
- . 表示当前行
- $ 表示最后一行
- +#表示向下#行
- 存盘
- :wq保存退出
- :w!强制保存
- :w存盘
- :q退出系统
- :q!不保存退出
- :x保存退出
- 删除:
- :1,8d删除1-8行
- :50跳转到50行
- 查找替换:
- :#,#s@pattern@string/g
- :%s@pattern@string/g
- #代表行; @是分割符号; %=^,$;g是指替换行内所有匹配点。
- vi编辑多文件:
- vi file1 file2
- 切换:next,prev,first,last
- 分屏幕显示文件
- ctrl +w,s:上下分
- ctrl +w,v:左右
- ctrl +w,c:合并窗口
- ctrl +w,箭头:窗口切换
- 将文件的一部分存为另一个文件:
- :1,100 w /path/to/file
- 将另一个文件内容填充到当前文件:
- :r /path/to/file
- 到shell中执行命令
- :!cmd
- 环境设置:
- :set number= set nu : set nonu
- set ic; set noic忽略大小写与否
- set autoindent= set ai; set noai
- syntax on syntax off
- 配置文件:
- 全局 : /etc/vimrc
- 用户:.vimrc
- 输入模式:
VIM
vi有三种模式:编辑模式-输入模式(退出ESC)/编辑模式-末行模式(退出ESC)