Vim入门

Vim是从vi发展出来的一个文本编辑器,在程序员中尤其受欢迎,虽然一般人(包括一般的程序员)都不一定能够熟练、经常使用它们,但是这并不影响的地位,至少目前为止还没有人能够替代它成为人们的‘信仰’,毕竟编辑器之神的称号不是白叫的。
早就对它仰慕已久,只不过迟迟未能正式与它见面。作为一名前端开发工程师,因为Nodejs的大火而开始接触到服务端的知识,这也就不可避免的需要在非可视化界面以及无鼠标环境进行操作了,这时候vim的价值就更加凸显了,下面记录一下学习vim的一些笔记。

普通模式(Normal Mode)

在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。
这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。

1
2
3
4
5
6
7
8
9
10
11
12
gg # 回到最前一行
G # 回到最后一行
nG # 跳到第n行(n为int数值)
ctl+b # 向上滚动一页
ctl+f # 向下滚动一页
dd # 删除一行
x # 删除游标所在的字符
X # 删除游标所在字符的前一个字符
d^ # 删除至行首
2dd # 删除2行
u # 撤销修改
全局替换命令为::%s/源字符串/目的字符串/g

在普通模式有如下方位键

1
2
3
4
5
6
h  # 左
l # 右(小写L)
j # 下
k # 上
w # 移动到下一个单词
b # 移动到上一个单词

命令行模式(Command-Line)

在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(”:”键),搜索(”/“和”?”键)或者过滤命令(”!”键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。

1
2
3
4
5
:q! # 强制保存
:q # 退出
:wq # 保存并退出
:x # 保存并退出
:wq! # 强制保存并退出

命令模式对vim编辑器进行设置

1
2
3
4
5
6
7
8
9
10
11
syntax on                   # 自动语法高亮
colorscheme torte # 配置颜色方案
set number # 显示行号
set cursorline # 突出显示当前行
set wildmenu # Turn on WiLd menu 在末行命令行敲tab键时会在状态栏显示选项
set whichwrap+=h, # 使指定的左右移动光标的键在行首或行尾可以移到前一行或者后一行
set shiftwidth=4 # 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 # 使得按退格键时可以一次删掉 4 个空格
set tabstop=4 # 设定 tab 长度为 4
set nobackup # 覆盖文件时不备份
set autochdir # 自动切换当前目录为当前文件所在的目录

插入模式(Insert Mode)

进入vim编辑之后,默认为普通模式,普通模式下,可以按i\I,a\A,o\O进入,这几个进入插入模式后位置不同。
在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。在插入模式中,可以按ESC键回到普通模式。

可视模式(Visual Mode)

这个模式与普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的”文本对象”也能和移动命令一样用在这个模式中。

选择模式(Select Mode)

这个模式和无模式编辑器的行为比较相似(Windows标准文本控件的方式)。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。

格式化代码

1
gg=G

Ex模式(Ex Mode)

普通模式下键入Q进入该模式

这和命令行模式比较相似,在使用”:visual”命令离开Ex模式前,可以一次执行多条命令。

上面的都是vim的基本模式,其次还有派生模式,这个模式包含:操作符等待模式、插入普通模式、插入可视模式、插入选择模式、替换模式、其他

item

1
command+option+方向键 #切换item屏幕