vi:visual interface
打开文件
全屏编辑器、模式化编辑器
vi +num filename:打开filename文件,光标处于num行。
vi + filename :打开filename文件,光标处于文件最后一行的首字符
vi +/pattern :打开文件,光标处于第一次被模式匹配到的行首
关闭文件
末行模式关闭文件:
:q 不保存退出
:w 保存
:qw 保存并退出
:q!
:w! 管理员强行保存只读文件
命令模式下关闭文件
ZZ 保存并退出
移动光标
在命令模式下
1、逐字符移动
h、j、k、l:前面可以加数字,快速移动如3h
2、按单词移动
w 移至下一个单词的词首
e 移至当前单词词尾或下一个单词词尾 前面可加数字快速移动3w 3e
b 移至当前单词词首或前一个单词词首
3、行内跳转
0 绝对行首
^ 行首的第一个非空白字符
$ 绝对行尾
4、行间跳转
#G 跳转至第#行
G 最后一行
在末行模式下跳转,给出行号,回车
翻屏
ctrl+f 向下翻一屏
ctrl+b 向前翻以屏
ctrl+d 向下翻半屏
ctrl+u 向前翻半屏
删除单个字符
x: 删除光标所在处的单个字符
#x:删除光标所在处及后面的#个字符
删除命令 d
d命令和跳转命令组合使用
#dw 删除指定范围的#个
dd 删除当前光标所在行
#dd 删除包括光标所在行共#行
末行模式下
startadd,endadd d
.表示当前行
$表示最后一行
+#表示向下的#行
$-n表示倒数第n行
粘贴命令
p 如果粘贴或复制的为整行,则粘贴在光标所在行的下方,如非整行,则粘贴在光标所在字符后面
P如果粘贴或复制的为整行,则粘贴在光标所在行的上方,如非整行,则粘贴在光标所在字符前面
复制命令
y 用法同d
修改:先删除,再进入输入模式
c 用法同d
替换
r
R 直接进入替换模式
撤销编辑操作
u(undo) 撤销前一次操作
ctrl r 撤销最近一次撤销操作
重复前一次编辑操作
.
可视化模式
v 按字符选取
V 按矩形块选取
查找
/pattern 从上往下查找
?pattern 从下往上查找
查找并替换
s 用法同sed
startl,endls/pattern/string/
vi工作模式
1:命令模式(默认工作模式)
2:输入模式
3:末行模式
vi模式转换
命令-->输入
i:在当前光标所在字符的前面,转为输入模式。
a:在当前光标所在字符的后面,转为输入模式。
o:在当前光标所在行的下面,新建一行,转为输入模式。
I:在当前光标所在行的行首,转为输入模式。
A: 在当前光标所在行的行尾,转为输入模式。
O:在当前光标所在行的上方,新建一行转为输入模式。
输入-->命令
ESC键
命令-->末行
:
set nu:显示行号
10d :删除第10行
10,20d:删除10-20行
!bash命令,如!ls /etc
末行-->命令
ESC
vim编辑多个文件
vim filename1 filename2
:next切换到下一个文件
:prev切换到前一个文件
:first切换到第一个文件
:last切换到最后一个文件
将文件中的内容保存到另一个文件
末行模式w命令
statadd,endaddw /path/filename
将另一个文件中的内容填充到当前文件中
末行模式
r /path/filename
跟shell交互
:!command
分屏显示
ctrl+w s
切换
ctrl+w arrow
高级话题
1显示或不显示行号
set nu
set nonu
2设置自动缩进
set ai
配置文件
/etc/vimrc
~/.vimrc