说在前头: 本人为大二在读学生,书写文章的目的是为了对自己掌握的知识和技术进行一定的记录,同时乐于与大家一起分享,因本人资历尚浅,发布的文章难免存在一些错漏之处,还请阅读此文章的大牛们见谅与斧正。若在阅读时有任何的问题,也可通过评论提出,本人将根据自身能力对问题进行一定的解答。
前言
Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。
vim的设计理念是命令的组合。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。同时VIM与很多快捷键设置和正则表达式类似,可以辅助记忆。并且vim针对程序员做了优化。
一、vi、vim的区别
vim是基于vi开发的,保留了vi原来的所有指令
,在此基础上vim对vi增加了以下几个方面的提升:
- 支持多级撤销
- 跨平台运行
- 支持语法高亮
- 支持图形界面
二、vim的安装
centos系统下安装
yum -y install vim
ubuntu系统下安装
apt-get update
apt-get install vim
三、vim开启行号显示
关于行号的显示设置,还有不会开启的小伙伴可以参考
百度经验
上的教程:https://jingyan.baidu.com/article/908080220bedeafd91c80fee.html,上面的描述通俗易懂,笔者就不再过多讲述啦
四、移动、跳转与缩进
1.光标的移动
键位 | 说明 |
---|---|
h | 左移 |
l | 右移 |
j | 下移 |
k | 上移 |
^、0 | 行首 |
$ | 行尾 |
gg | 第一行 |
GG | 最后一行 |
w/W | 正向移动到下一个单词开头 |
b/B | 反向移动 |
e/E | 正向移动到下一个单词结尾 |
ge | 反向移动 |
由于vim诞生时的电脑还没有像现在的计算机一样将方向键独立出来,上下左右建位分别对应kjgl,因此刚学vim的小伙伴们可能不太适应(下图是当时计算机ADM-3A的建位对应图)
为了让大家更形象的记住四个字母对应的方向,我特意将四个字母建位按照现在日常使用的方向键进行编排,希望能方便大家的适应(下图)
下图是光标跳转的演示,演示顺序:最后一行(GG) → 第一行(gg) → 行尾($) → 行首(^) → 跳转到第10行(:10)
2.跳转
键位 | 说明 |
---|---|
ctrl+f/F | 下一页 |
ctrl+b/B | 上一页 |
ctrl+d/u | 向下/向上半页 |
g+ctrl+g | 查看文件信息 |
GIF演示,演示顺序:向下半页(ctrl+d) → 向上半页(ctrl+u) → 向下一页(ctrl+f) → 向上一页(ctrl+b) → 查看文件信息(g+ctrl+g)
3.缩进
键位 | 说明 |
---|---|
>> | 右缩进 |
<< | 左缩进 |
:m,n> | m到n行缩进 |
:m>n | m行开始共缩进n行 |
GIF演示,演示顺序:右缩进(>>) → 左缩进(<<) → 缩进5到10行(:5, 10>) → 从第11行开始缩进5行(:11>5) → 查看文件信息(g+ctrl+g)
五、剪切、复制、粘贴、撤销与重做
键位 | 说明 |
---|---|
dd | 剪切光标当前整行 |
yy | 复制光标当前整行 |
p | 粘贴 |
u | 撤销之前的操作 |
ctrl+r | 重做/恢复之前的操作 |
六、插入、转换、查找与替换
1.插入
键位 | 说明 |
---|---|
a/i | 光标前/后插入 |
o/O | 行前/后插入 |
2.转换
键位 | 说明 |
---|---|
~ | 单个字符大小写转换 |
g ~ w | 单词大小写转换 |
g ~ $ / g ~ ~ | 整行单词大小写转换 |
gU/uw | 单词转换成大小写 |
3.查找
键位 | 说明 |
---|---|
/{keyword} | 查找{keyword}相关的字符,并高亮显示(使用n/N,正向/反向跳转匹配结果) |
4.替换
键位 | 说明 |
---|---|
s/going/rolling/g | 将当前行的going替换成rolling |
%s/going/rolling/g | 全局替换 |
GIF演示全局替换(将大写的VIM替换为小写的vim)