1.第一级(生存篇)
要想在vim编译器下存活,首先要了解vim的三种模式及其他们相互之间的转化:
- 正常/命令模式 (Normal Mode)
- 插入模式(Insert Mode)
- 末行模式(Last Line Mode)
下面是三种模式之间的转化:(刚开始进入vim是正常模式)
-
正常模式转化为插入模式有三种方法:
a(向光标后插入)
、o(向下一行插入)
、O(向上一行插入)
-
插入模式转正常模式,按
Esc
-
正常模式转末行模式,按
Shift+:
(插入模式不能直接转末行模式) -
末行模式转正常模式,按
Esc
(末行模式不能直接转插入模式)
以上内容我们就可以在vim中写东西啦!但是要生存下来我们还要知道怎么退出来,想要退出来的时候有几种情况:(退出的时候要先按Shift+:
到末行模式,再根据情况输入以下内容)
w(
保存当前文件)wq
(保存并退出)q!
(强制退出不保存文件)qa!
(强行退出所有正在编辑的文件)
下面也是一些基础的生存命令:
x
删除光标后的一个字符dd
删除光标所在一行,并保存到剪贴板p
粘贴在剪贴板u
撤销上一个操作ctrl+r
撤销恢复help+命令
查看命令帮助
2.第二级(成长篇)
从出生,我们一直成长,无论经历什么,都要成长。学习Vim也不例外,下边是学习vim的成长篇命令:
1.光标移动
gg
移动光标到文本最开始的地方
shift+g(G)
移动到文本末尾$
移动到光标所在行的行尾^
移动到光标所在行行首(第一个不是Blank字符的位置)数字0
移动到光标所在行行头g_
移动到光标所在行的行尾(最后一个不是Blank字符的位置)h(左)j(下)k(上)l(右)
推荐使用hjkl进行上下左右移动
2.复制/剪贴/粘贴
p
粘贴yy
复制dd
剪贴
3.打开/保存/退出/改变文件等
以下命令需要在末行模式进行,也就是需要先输入shift+:
才可以输入以下命令。如果有些特例,后边的功能描述会提出来:
e+文件路径
打开一个文件w
保存文件saveas+文件路径
另存为…ZZ
在正常模式保存并退出x
或wq
保存并退出bn
或bp
如果打开多个文件,用这个命令切换文件
3.第三级(优秀篇)
要想成为一个优秀的人,必须每天坚持学习。学习vim也是相同的,让我们一起坚持练习vim吧!
1.快速移动光标
以下命令需要在正常模式下执行,如果有些特例,后边的功能描述会提出来:
N+G
N代表常数,假如要移动到第3行,就输入3Gw
移动到下一个单词的开头(单词代表一个标识符)e
移动到本单词结尾.(小数点)
重复执行上一次的命令N+命令
让某个命令重复执行N次
2.括号匹配
%
将光标放在一个括号上,输入%会自动匹配它的上一个或者下一个括号
* 和 #
匹配光标当前所在的单词,移动光标到下一个或者上一个匹配单词(*是下一个,#是上一个)
3.组合命令(主要是在光标移动)
<start position><command><end position>
例如:0y$
代表的是从行头开始拷贝到本行末
0
代表移动到行头y
代表拷贝命令$
代表移动到本行末
4.第四级(加速篇)
要做一个更快的程序员。
######1. 光标移动总结
0
移动光标到行头^
移动光标到本行第一个非blank字符的位置(blank指的是空格,回车,换行等)$
移动光标到行末g_
移动光标到本行最后一个非blank字符的位置f+字符
例如fi,移动光标到下一个i的位置t+字符
例如ta,移动光标到下一个a前面的一个字符3fa
在当前文本中查找后边第3出现的adt+字符
删除字符前面的所有内容(例如:return;dt;
代表删除;
前面所有的东西)F和T的用法和f和t完全一样,只是F、T是向前查找的
2.块操作
块操作。顾名思义,就是对一块内容进行操作。首先按下Ctrl+v
进入visual
模式
注意: visual模式有三种,一种是默认的visual
模式,在normal
模式下按下"v"就可以进入。一种是visual line
模式,按下"V"可以进入。另一种是今天要讲的visual block
模式,按下Ctrl-V进入。如果是在Windows下面的vim,则用Ctrl-Q进入。
常用的操作:0 <Ctrl+v> j I-- [ESC]
0
移动光标到行头<Ctrl+v>
进入visual block
模式j
向下移动,选择I--
插入--
ESC
回到正常模式,替换所有行的--
**可视化选择:**当我们按下v
、V
、Ctrl+v
以后会进入visual
模式,在这个模式下我们可以选中看见的任何内容,选中之后,可以进行下面的这些操作:
J
把所有行连在一起变成一行< 或 >
左右缩进=
自动给缩进
在几行的后边加上同样的内容:- 1.
Ctrl+v
- 2.
$
选中几行,跳到行末 - 3.
A+插入内容
- 4.
ESC
3.自动补齐功能
在insert
模式下,输入一个标识符的前部分,按Ctrl+n
或者Ctrl+p
可以自动补齐标识符。
4.分屏功能
:split
创建水平分屏:vsplit
创建垂直分屏
<Ctrl+w><dir> :
dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来切换分屏。<Ctrl+w>_ (或 <Ctrl+w>|) :
最大化尺寸 (| 适用于垂直分屏)<Ctrl+w>+ (或 <Ctrl+w>-) :
增加尺寸(或者减少尺寸)<Ctrl+w> c
退出分屏<Ctrl+w> hjkl
左右上下切换分屏