如何高效使用Vim
source link: https://codeshellme.github.io/2020/04/vim-use/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Vim 是一款文本编辑器,被称为编辑器之神
,非常适合在shell
中编辑代码,熟练的使用Vim
,可以让你高效的编写代码。
Vim 是Vi 的增强版,所有的类Unix 系统,都自带这两个工具,这两个工具中使用较多的也是Vim
。
Vim 中有很多命令,本文并不打算介绍所有的命令,只介绍常用实用
的命令,熟练使用这些命令,就可以快速的编写代码。
1,Vim 的三种模式
vim 中有三种模式,分别是普通模式
,编辑模式
,可视模式
。
其实,还有一种模式是命令模式
,这里我将命令模式
归入到了普通模式中,并没有单独将命令模式
拿出来。其实命令模式
就是在普通模式
下输入一个冒号:
加一个命令
。
其中可视模式
又分为行可视
和列可视
,如下:
vim 模式 ├── 普通模式 ├── 编辑模式:可向文件中输入内容 └── 可视模式 ├── 行可视:按行选中某块区域 └── 列可视:按列选中某块区域 |
它们之间的转换如下所示:
vim + 文件名
打开文件进入普通模式
普通模式
输入i
或o
或a
进入编辑模式
普通模式
输入Ctrl + v
进入列可视
普通模式
输入Shift +v
进入行可视
- 其它模式输入
Esc
返回普通模式
下面介绍每个模式支持的常用命令
。
2,普通模式
在普通模式下,可以使用下面这些命令,普通模式的命令最多。
2.1,如何进入编辑模式
使用以下命令进入编辑模式
:
命令 | 含义 |
---|---|
i |
在当前光标 前位置进入编辑模式 |
a |
在当前光标 后位置进入编辑模式 |
o |
在当前光标 下一行进入编辑模式 |
2.2,如何移动光标
使用以下命令移动光标:
命令 | 含义 |
---|---|
k 或方向键↑ |
向上移动,建议使用k |
j 或方向键↓ |
向下移动,建议使用j |
h 或方向键← |
向左移动,建议使用h |
l 或方向键→ |
向右移动,建议使用l |
^ |
移动到当前行第一个可见字符 |
0 或者Home键 |
移动到当前行开头 |
$ 或者End键 |
移动到当前行最后 |
% |
在两个匹配的{}[]()<> 之间移动 |
w |
向后移动一个单词 |
b |
向前移动一个单词 |
gg |
移动到当前文件的第一行 |
G |
移动到当前文件的最后一行 |
M |
移动到当前文件的中间一行 |
Ctrl + o |
移动到上一次编辑的地方 |
: +数字N |
输入一个: ,再输入一个数字 ,按回车,快速跳到某一行 |
2.3,如何删除/复制/粘贴
使用以下命令删除
/复制
/粘贴
:
命令 | 含义 |
---|---|
dd |
删除光标所在的行,并且内容在剪切板 |
yy |
复制光标所在的行,并且内容在剪切板 |
dw |
删除光标所在的单词,并且内容在剪切板 |
x |
删除光标所在的一个字符,并且内容在剪切板 |
D |
删除光标 到行末尾 所有的内容,并且内容在剪切板 |
p |
粘贴剪切板的内容到光标处 |
2.4,如何进行搜索
使用以下命令在当前文件中搜索
:
命令 | 含义 |
---|---|
* |
光标停留在某个字符串时,* 可以在当前文件中搜索这个字符串 |
/+字符串+回车 |
在当前页面搜索这个字符串 |
n |
锁定到下一个匹配的字符串 |
N |
锁定到上一个匹配的字符串 |
:set hlsearch |
让所有匹配的字符串 高亮 |
:set noh |
取消字符串 高亮 |
2.5,如何进行分屏
vim 分屏
:
命令 | 含义 |
---|---|
:vsp + 文件名 |
横向分屏 |
:sp + 文件名 |
竖向分屏 |
Ctrl + ww |
锁定到下一个屏 |
退出命令 |
使用退出命令 ,退出当前屏 |
2.6,如何退出文件
退出命令
如下:
命令 | 含义 |
---|---|
:w |
保存 当前文件 |
:q |
退出 当前文件 |
:wq |
保存 并退出 当前文件 |
:x |
保存 并退出 当前文件,相当于:wq |
:qa |
退出 打开的所有文件 |
:q! |
强制退出 (不保存) |
2.7,如何进入可视模式
进入可视模式
:
命令 | 含义 |
---|---|
Shift + v |
进入行可视模式 |
Ctrl + v |
进入列可视模式 |
2.8,其它
命令 | 含义 |
---|---|
u |
撤销 上一次操作 |
Ctrl + r |
反撤销 操作 |
~ |
英文字符大小写转换 |
:%s/x/y/g |
将当前文件中所有的x 换成y |
数字 + == |
用于格式化代码 ,比如先输入一个999 ,再输入== ,从当前行开始,以下999 行代码都会格式化 |
:set nu |
显示行号 |
:set nonu |
关闭行号 |
:!command |
:! 后跟一个linux 命令 ,可以执行这个linux 命令 |
3,编辑模式
在编辑模式下可以使用下面命令。
命令 | 含义 |
---|---|
Ctrl + n |
搜素下一个变量名,函数自动补全 |
Ctrl + p |
搜索上一个变量名,函数自动补全 |
Shift + Insert |
在当前光标插入系统剪切板 的内容 |
4,行可视模式
在行可视模式
下可以使用下面命令。
命令 | 含义 |
---|---|
k 或方向键↑ |
向上选中多行 |
j 或方向键↓ |
向下选中多行 |
d |
删除 选中的区域内容,并且内容在剪切板 |
y |
复制 选中的区域内容,并且内容在剪切板 |
p |
粘贴 剪切板中的内容 |
> |
将选中的区域向右缩进 |
< |
将选中的区域向左缩进 |
5,列可视模式
在列可视模式
下可以使用下面命令。
命令 | 含义 |
---|---|
k 或方向键↑ |
向上选中多行 |
j 或方向键↓ |
向下选中多行 |
h 或方向键← |
向左选中多列 |
l 或方向键→ |
向右选中多列 |
d |
删除 选中的区域内容,并且内容在剪切板 |
y |
复制 选中的区域内容,并且内容在剪切板 |
p |
粘贴 剪切板中的内容 |
> |
将选中的区域向右缩进 |
< |
列可视模式下不支持 |
以上讲到的命令需要多使用才能熟练,所谓孰能生巧。
如果你想配置Vim 插件
的话,建议不需要配置多么花哨复杂的插件,简单实用就好。
注意,在使用Vim
的时候,鼠标
基本是没有什么用的,所以这时可以忘记鼠标
的存在,只有键盘
。
另外,vimdiff
命令可以对比多个文件的不同,如下所示,打开两个文件(也可打开多个文件):
vimdiff 1.c 2.c |
这里还有一个Vim 小游戏 ——《Vim 大冒险》,很有创意的一个小游戏,可以锻炼使用Vim,感兴趣的可以玩一下。
6,Vim 命令速查表
最后附上两张Vim 命令速查表
,自行选择,各取所需。
图一:
图二: PDF版在这里。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK