Vim,和 Linux 打过交道的应该都接触过它,也有很多人把它作为自己的代码编辑器。

Ubuntu 自带的 Vim 截图

Vim 是 Vi IMproved 的意思,而 Vi 是更早的一个代码编辑器,它是更更早的 ex 编辑器的可视化模式,它的名字也来自 ex 的切换可视化的命令 visual,那 ex 又是什么呢?😄,它是一个 line editor,其名称取自 EXtended,就此打住吧 😂,因为一直这样追问下去恐怕得了解整个计算机 和 Unix 等操作系统的历史才行,贝尔实验室啊、伯克利啊,等等,科技的力量!你现在手指划拉的最新版 iPhone 也可以追溯到那里。

不由感叹,人类的辉煌和没落,充斥其间的不是孤立的事件,而是任何事物都是有联系的,都是可以往上追溯的,几年几十年甚至几百几万几亿年,最终可以追溯到所谓的宇宙大爆炸。(那大爆炸之前呢?😂)

因为折腾 VPS 时经常用到 Vim,又经常 Google Vim 命令和快捷键,比如 ctrl + z(undo) 对应的 Vim 快捷键是什么?所以干脆,把最基本的几个命令记下来,好记性不如烂笔头,往后再忘了可以随时过来看看。下面是最最基本的一些 Vim 快捷键和命令:

注意:Vim 有几种模式或者说状态,
插入(insert)模式,按 i 进入,能看到光标指示为可输入状态,此时可以输入;
: 可以切换到命令模式,: 后面跟上命令,然后回车即可执行;
按 Esc 可以退出当前模式,此时就可以快捷键操作。
另外,还要注意,区分大小写

上下左右移动光标

k       # 

j       # 形象好像向下的箭头↓,只需记住这一个其他的就都能记住
h       # 

l       # 

前后翻页

Ctrl + f        # 向前forward翻页

Ctrl + b        # 向后backward翻页

撤销与重做前面的修改

u               # undo

Ctrl + r        # redo

保存与退出

:wq       # 保存更改并退出

:q!       # 不保存并退出

光标跳转到某一行(例如跳转到第 121 行)

:121 <Enter>        # :开始为命令模式下面两种是快捷键注意大小写
121G

121gg

删除(剪切)、复制、粘贴

dd          # dd 会删除光标所在行其实不是删除而是剪切

yy          # 复制光标所在行

p           # 粘贴到光标下一行

6dd         # 删除剪切光标下面 6 不包括光标所在行
6yy         # 复制光标下面 6 不包括光标所在行
:1,$d       # 删除剪切所有行,:是切换到命令模式1 是第一行,$ 是最后一行d 是删除剪切),所以很好理解的

搜索

/ + 关键词          # / 后面紧跟着关键词默认从光标所在处向下搜索

n                  # 搜索时查找下一项

Shift + n          # 搜索时查找上一项

显示行号,有时很有用的

:set number

P.S. 鼠标失效解决办法

有时使用 PuTTY 登录后,在使用 Vim 编辑文本时,鼠标选中后不能自动复制,也不能鼠标右键自动粘贴,此时运行下下面这行命令就可以了:

echo "set mouse-=a" > ~/.Vimrc