如何高效使用VIM

微信公众号:码农充电站pro
个人主页:https://codeshellme.github.io

Vim 是一款文本编辑器,被称为编辑器之神,非常适合在shell 中编辑代码,熟练的使用Vim,可以让你高效的编写代码。

Vim 是Vi 的增强版,所有的类Unix 系统,都自带这两个工具,这两个工具中使用较多的也是Vim

Vim 中有很多命令,本文并不打算介绍所有的命令,只介绍常用实用的命令,熟练使用这些命令,就可以快速的编写代码。

1,Vim 的三种模式

vim 中有三种模式,分别是普通模式编辑模式可视模式

其实,还有一种模式是命令模式,这里我将命令模式 归入到了普通模式中,并没有单独将命令模式拿出来。其实命令模式 就是在普通模式下输入一个冒号:加一个命令

其中可视模式 又分为行可视列可视,如下:

vim 模式
   ├── 普通模式
   ├── 编辑模式:可向文件中输入内容
   └── 可视模式
          ├── 行可视:按行选中某块区域
          └── 列可视:按列选中某块区域	

它们之间的转换如下所示:
在这里插入图片描述

  • vim + 文件名 打开文件进入普通模式
  • 普通模式 输入ioa 进入编辑模式
  • 普通模式 输入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版在这里
在这里插入图片描述
(完。)


欢迎关注作者公众号,获取更多技术干货。

码农充电站pro

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值