Vim 是一款文本编辑器,被称为编辑器之神
,很是适合在shell
中编辑代码,熟练的使用Vim
,可让你高效的编写代码。shell
Vim 是Vi 的加强版,全部的类Unix 系统,都自带这两个工具,这两个工具中使用较多的也是Vim
。vim
Vim 中有不少命令,本文并不打算介绍全部的命令,只介绍经常使用实用
的命令,熟练使用这些命令,就能够快速的编写代码。编辑器
vim 中有三种模式,分别是普通模式
,编辑模式
,可视模式
。函数
其实,还有一种模式是命令模式
,这里我将命令模式
纳入到了普通模式中,并无单独将命令模式
拿出来。其实命令模式
就是在普通模式
下输入一个冒号:
加一个命令
。工具
其中可视模式
又分为行可视
和列可视
,以下:插件
vim 模式 ├── 普通模式 ├── 编辑模式:可向文件中输入内容 └── 可视模式 ├── 行可视:按行选中某块区域 └── 列可视:按列选中某块区域
它们之间的转换以下所示:code
vim + 文件名
打开文件进入普通模式
普通模式
输入i
或 o
或 a
进入编辑模式
普通模式
输入Ctrl + v
进入 列可视
普通模式
输入Shift +v
进入 行可视
Esc
返回普通模式
下面介绍每一个模式支持的经常使用命令
。blog
在普通模式下,可使用下面这些命令,普通模式的命令最多。游戏
使用如下命令进入编辑模式
:图片
命令 | 含义 |
---|---|
i |
在当前光标 前位置进入编辑模式 |
a |
在当前光标 后位置进入编辑模式 |
o |
在当前光标 下一行进入编辑模式 |
使用如下命令移动光标:
命令 | 含义 |
---|---|
k 或方向键↑ |
向上移动,建议使用k |
j 或方向键↓ |
向下移动,建议使用j |
h 或方向键← |
向左移动,建议使用h |
l 或方向键→ |
向右移动,建议使用l |
^ |
移动到当前行第一个可见字符 |
0 或者Home键 |
移动到当前行开头 |
$ 或者End键 |
移动到当前行最后 |
% |
在两个匹配的{}[]()<> 之间移动 |
w |
向后移动一个单词 |
b |
向前移动一个单词 |
gg |
移动到当前文件的第一行 |
G |
移动到当前文件的最后一行 |
M |
移动到当前文件的中间一行 |
Ctrl + o |
移动到上一次编辑的地方 |
: +数字N |
输入一个: ,再输入一个数字 ,按回车,快速跳到某一行 |
使用如下命令删除
/复制
/粘贴
:
命令 | 含义 |
---|---|
dd |
删除光标所在的行,而且内容在剪切板 |
yy |
复制光标所在的行,而且内容在剪切板 |
dw |
删除光标所在的单词,而且内容在剪切板 |
x |
删除光标所在的一个字符,而且内容在剪切板 |
D |
删除光标 到行末尾 全部的内容,而且内容在剪切板 |
p |
粘贴剪切板的内容到光标处 |
使用如下命令在当前文件中搜索
:
命令 | 含义 |
---|---|
* |
光标停留在某个字符串时,* 能够在当前文件中搜索这个字符串 |
/+字符串+回车 |
在当前页面搜索这个字符串 |
n |
锁定到下一个匹配的字符串 |
N |
锁定到上一个匹配的字符串 |
:set hlsearch |
让全部匹配的字符串 高亮 |
:set noh |
取消字符串 高亮 |
vim 分屏
:
命令 | 含义 |
---|---|
:vsp + 文件名 |
横向分屏 |
:sp + 文件名 |
竖向分屏 |
Ctrl + ww |
锁定到下一个屏 |
退出命令 |
使用退出命令 ,退出当前屏 |
退出命令
以下:
命令 | 含义 |
---|---|
:wq |
保存 并退出 当前文件 |
:w |
保存 当前文件 |
:q |
退出 当前文件 |
:qa |
退出 打开的全部文件 |
:q! |
强制退出 (不保存) |
进入可视模式
:
命令 | 含义 |
---|---|
Shift + v |
进入行可视模式 |
Ctrl + v |
进入列可视模式 |
命令 | 含义 |
---|---|
u |
撤销 上一次操做 |
Ctrl + r |
反撤销 操做 |
~ |
英文字符大小写转换 |
:%s/x/y/g |
将当前文件中全部的x 换成y |
数字 + == |
用于格式化代码 ,好比先输入一个999 ,再输入== ,从当前行开始,如下999 行代码都会格式化 |
:set nu |
显示行号 |
:set nonu |
关闭行号 |
在编辑模式下可使用下面命令。
命令 | 含义 |
---|---|
Ctrl + n |
搜素下一个变量名,函数自动补全 |
Ctrl + p |
搜索上一个变量名,函数自动补全 |
Shift + Insert |
在当前光标插入系统剪切板 的内容 |
在行可视模式
下可使用下面命令。
命令 | 含义 |
---|---|
k 或方向键↑ |
向上选中多行 |
j 或方向键↓ |
向下选中多行 |
d |
删除 选中的区域内容,而且内容在剪切板 |
y |
复制 选中的区域内容,而且内容在剪切板 |
p |
粘贴 剪切板中的内容 |
> |
将选中的区域向右缩进 |
< |
将选中的区域向左缩进 |
在列可视模式
下可使用下面命令。
命令 | 含义 |
---|---|
k 或方向键↑ |
向上选中多行 |
j 或方向键↓ |
向下选中多行 |
h 或方向键← |
向左选中多列 |
l 或方向键→ |
向右选中多列 |
d |
删除 选中的区域内容,而且内容在剪切板 |
y |
复制 选中的区域内容,而且内容在剪切板 |
p |
粘贴 剪切板中的内容 |
> |
将选中的区域向右缩进 |
< |
列可视模式下不支持 |
以上讲到的命令须要多使用才能熟练,所谓孰能生巧。
若是你想配置Vim 插件
的话,建议不须要配置多么花哨复杂的插件,简单实用就好。
注意,在使用Vim
的时候,鼠标
基本是没有什么用的,因此这时能够忘记鼠标
的存在,只有键盘
。
另外,vimdiff
命令能够对比多个文件的不一样,以下所示,打开两个文件(也可打开多个文件):
vimdiff 1.c 2.c
这里还有一个Vim 小游戏 ------《Vim 大冒险》,颇有创意的一个小游戏,能够锻炼使用Vim,感兴趣的能够玩一下。
最后附上两张Vim 命令速查表
,自行选择,各取所需。
图一:
图二: PDF版在这里。
(完。)