:!command 执行Linux命令
:set expandtab 将编辑器中的tab改为空格
:set noexpandtab 将编辑器中的空格改为tab输出
:set tabstop=4 设定tab宽度为4个字符
:set shiftwidth=4 设定自动缩进为4个字符
:set list 显示文件中的tab、末尾制表符号
:sp [filename] 在同一编辑窗打开第二个文件[水平方向]
:vsp [filename] 在同一编辑窗打开第二个文件[垂直方向]
:set encoding=utf8 文件编码
shift + # 向上查找函数或单词
shift + * 向下查找函数或单词
:set mouse= 清除鼠标剪贴板中的内容,可以在vim编辑中执行鼠标选中复制内容
设置书签
m{a-zA-Z},如ma
删除书签
delm {marks},如delm a
跳转书签,两种方式:
使用 backtick 键(数字 1 键左边),跳转到设置书签时光标所在的行和列,如 ``a`
使用单引号
',跳转到书签所在行的第一个非空字符处(不包含列信息),如'a
``回到到上次修改的位置
列出所有书签
:marks
:!ctags -R . 生成ctag目录文件,使ctag插件在该目录下生效
ctrl + ] 查找函数
ctrl + t 返回原来编辑位置
:e filename
:e! filename
:r filename
:w
:w myfile
:args
显示多文件信息
:next
向后切换文件
:prev
向前切换文件
:first
定位首文件
:last
定位尾文件
Ctrl + ^
快速切换到编辑器中切换前的文件
1). 光标定位到要操作的地方。
2).
CTRL+v进入“可视 块”模式,选取这一列操作多少行。
3).
d删除。
1). 光标定位到要操作的地方。
2).
CTRL+v进入“可视 块”模式,选取这一列操作多少行。
3).
SHIFT+i(I)输入要插入的内容。
4).
ESC按两次,会在每行的选定的区域出现插入的内容。
h 方向左键
j 方向下键
k 方向上键
l 方向下键
ctrl+f 向前翻动一页
ctrl+b 前后翻动一页
0 移动到此行的一个字符处
$ 移动到此行的最后一个字符
n《enter》 光标下移n行
/word 在光标之后查找一个word的字符串
? word 在光标之前查找一个word的字符串
:n1,n2s/word1/word2/g 在第n1行和n2行之间查找word1,并将word1替换为word2
:1,$s/word1/word2/g 从第一行到最后一行查找word1并替换为word2
:1,$s/word1/word2/gc 从第一行到最后一行查找word1并替换为word2,在替换前显示提示符,让用户确认
x , X x向后删除一个字符 X向前删除一个字符
nx 向后删除n个字符
dd 删除光标所在的整列
ndd 删除光标所在列的向下n列
yy 复制光标所在行
nyy 复制光标所在行的向下n行
p , P p复制的数据粘贴在光标下一行,P上一行
u 恢复上一个动作
i , I 插入:在当前光标所在处插入输入的文字,已存在的字符会向后退
a , A 添加 :由当前光标所在处的下一个字符开始输入,已存在的字符向后退
o , O 插入新的一行,从光标所在处的下一行行首开始输入
r , R 替换:r会替换光标所指的那一个字符,R会一直替换光标所指的文字,知道案下esc
esc 返回一般模式
:w 保存
:w! 若文件为只读,强制写入
:q 推出vi
:wq 保存推出
:w [filename] 保存为另一文件