Vim 简单操作

移动跳转
按键 描述
fx 当前行移动光标到下一个字母 x 处
Fx 同上,反向
w 光标向后移动一个单词
b 光标向前移动一个单词
e 移动到单词结尾
0 跳转到行首
$ 跳转到行尾
^ 跳转至当前行第一个非空处
C-f 向下卷动一屏
C-b 向上卷动一屏
C-d 向下半屏
C-u 向上半屏
zt 将光标所在行卷动到屏幕顶端
zz 将光标所在行卷动到屏幕中间
zb 将光标所在行卷动到屏幕底端
gg 跳转到第一行
G 跳转到最后一行
:n 跳转到n行
保存
按键 描述
:w 保存当前编辑的文件
:wa 保存全部文件
:wq | ZZ 保存并退出
:q! 不保存而强制退出
:saveas <filename> 文件另存为
进入 insert 模式
按键 描述
i 当前字符前插入
a 当前字符后插入
I 行首插入
A 行尾插入
o 下一行插入
O 上一行插入
删除复制相关
按键 描述
x 删除光标处的单个字符
dd 剪切光标所在的行
dw 剪切当前字符到单词尾包括空格的所有字符
daw 剪切光标所在单词
yy 复制当前整行的内容到vi缓冲区
yw 复制当前光标所在位置到单词尾字符的内容到vi缓存区
yaw 复制当前光标所在单词
y$ 复制光标所在位置到行尾内容到缓存区
p 在光标位置后粘贴
P 在光标位置前粘贴
viwp 将缓存区内容覆盖光标所在单词
J 当前行与下一行合并
:g/^\s*$/d 删除所有不包含字符的空行(空格也不包含)
:%s/^\(.*\)\n\1/\1$/ 删除两行以上的空行
:g/1/d 删除包含1的所有行
:v/1/d 删除不包含1的行
:v/1\|2\|3\|4/d 删除不包含1或2或3或4的行
:%s/^M$//g | :%s/\r//g 删除^M
搜索替换
按键 描述
y^ 复制光标所在位置到行首内容到缓存区
/ 搜索,敲n向下搜索
? 搜索,敲n向上搜索
:s/1/2 当前行第一个1替换成2
:s/1/2/g 当前行将所有的1替换成2
:%s/1/2/g 全文搜索1并替换成2
窗口操作
按键 描述
:split | :sp 上面打开新窗口
:new 上面打开窗口编辑新文件
:close 关闭当前窗口
:only 关闭除当前的所有窗口
:vsplit | vs 左边打开新窗口
:vnew 左边打开窗口编辑新文件
:diffsplit | diffs diff 模式打开分屏
C-w w 窗口间切换
C-w h 跳转到左边窗口
C-w j 跳转到下面窗口
C-w k 跳转到上面窗口
C-w l 跳转到右边窗口
C-w t 跳转到最顶上窗口
C-w b 跳转到最底下窗口
C-w = 平均窗口尺寸
C-w + 增大当前窗口高度
C-w - 缩小当前窗口高度
C-w _ 最大当前窗口高度
C-w > 增大当前窗口宽度
C-w < 缩小当前窗口宽度
C-w | 最大当前窗口宽度
标签相关
按键 描述
:tabnew 新开标签页
:gt | :tabnext | tabn 切换下一个标签
:gT | :tabprevious | :tabp 切换上一个标签
:tabrewind | :tabr | :tabfirst | :tabfir 切换到第一个标签
:tablast | tabl 切换到最后一个标签
:tabclose | :tabc 关闭当前标签页
:-tabc 关闭上一个标签页
:+tab 关闭下一个标签页
:tabonly | :tabo 关闭其他标签页
其他
按键 描述
:set bomb 设置bom格式
:set nobomb 设置无bom格式
u 撤销上一步的操作
C-r 恢复上一步被撤销的操作
e! 撤销所有操作,恢复原来的文件
== 自动排版当前行
gg=G 自动排版当前编辑文件
>> 向右缩紧当前行
<< 向左缩紧当前行