Vim,和 Linux 打过交道的应该都接触过它,也有很多人把它作为自己的代码编辑器。
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