Vim模式
- 正常模式 用来浏览文本内容,按下ESC键或Ctrl+[返回正常模式;
- 插入模式 按下插入命令,进入到插入模式,想文本添加内容;
- 可视模式 高亮选取文本,按下Shift+v,进入以行为单位的可视行模式;按下Ctrl+v进入以块为单位的可视块模式;
- 命令模式 用于操作文本文件,按:键或者Shift+;进入命令模式;
文件命令
vim file 打开单个文件
vim file1 file2 file3 同时打开多个文件
:open file 在vim窗口打开一个新文件
:split file 在新窗口打开文件,通:new file
:bp 切换到上一个文件
:bn 切换到下一个文件
:args 查看当前打开的文件列表,当前正在编辑的文件会用[]括起来
窗口命令
使用:split file或者 :new file在新窗口打开一个文件
Ctrl+ww 移动到下一个窗口文件
Ctrl+wk 移动到上方窗口
Ctrl+wj 移动到下方窗口
:close 关闭当前窗口,最后一个窗口不能使用该命令退出
:q 关闭窗口
插入命令
i 在当前位置前插入
Shift+i 在当前行首插入
a 在当前位置后插入
Shift+a 在当前行尾插入
o 在当前行的下一行插入
Shift+o 在当前行的上一行插入
s 删除当前字符并插入
Shift+s 删除当前行并插入
查找命令
/java 查找关键字java,按n键查找下一个,按N键查找上一个,一些特殊字符需转移,如:\.
?java 反向查找关键字java,按n键查找下一个,按N键查找上一个
将光标移到到某个词上,按*键或者#键进行该词搜索,*相当于/,#相当于?
:set ignorecase 忽略大小写搜索
:set noignorecase 区分忽略大小搜索
:set hlsearch 高亮显示搜索结果
:set nohlsearch 关闭高亮显示搜索结果
:nohlsearch 关闭当前搜索高亮显示结果,再次搜索或者按下n或者N键会再次高亮
:set incsearch 逐步搜索模式,输入字符时就搜索,不必等输入完成
:set wrapscan 搜索到文件头或者文件尾时重新搜索
替换命令
ra 将光标所在字符替换为a字符
Shift+r 按下R键,可任意替换光标所在字符,按ESC退出
s/old/new 替换当前行第一个匹配的old,用new替换old
s/old/new/g 替换当前行所有匹配的old,用new替换old
%s/old/new 替换所有行第一个匹配的old,用new替换old
%s/old/new/g 替换所有行所有匹配的old,用new替换old
移动命令
gg 跳到文件头部
Shift+g 跳到文件尾部
0 数字0,移动到行首,同Home键
^ 移动到本行第一个非空白字符上
$ 移动到行尾,通End键
:250 冒号+行数,跳到指定行数;250+Shift+g也是跳到指定行数
Ctrl+y 向上滚动一行
Ctrl+e 向下上滚动一行
Ctrl+u 向上滚动半屏
Ctrl+d 向下滚动半屏
Ctrl+b 向上滚动一屏
Ctrl+f 向下滚动一屏
撤销重做
u 撤销
Ctrl+u 撤销对整行的操作
Ctrl+r 重做,撤销已撤销的
删除命令
x 删除当前字符,同dl
6x 删除当前字符的后6个字符
X 删除当前字符的前一个字符,同dh
6X 删除当前字符的后6个字符
dd 删除当前行
3d 删除当前行和下面3行,总共删除4行
:1,20d 删除1-20行
:20,$d 删除20行及以后所有行
:1,$d 删除所有行
kdgg 删除当前行之前所有行,不包括当前行
jdG 删除当前行之后所有行,不包括当前行
Shift+j 删除两行直接的空行,合并两行
Shift+d 删除当前字符到行尾所有字符,通d$
剪切拷贝粘贴命令
可按shift+v或者Ctrl+v进入行可视模式或者块可视模块,再按d剪切
6dd 剪切当前行开始的6行
yy 拷贝当前行
8yy 拷贝当前行开始的8行
p 在当前光标后粘贴
Shift+p 在当前行前粘贴
ddp 交换当前行和下一行
xp 交换当前字符和下一个字符
退出保存命令
:wq 保存并退出
:w 保存
:q! 强制退出并忽略所有更改
:e! 放弃所有更改并打开原文件