2019.12.12
正值双12的季节,实验楼也推出了“30天100楼”的挑战活动,只要在参与活动之后,30天内上升到100楼,便可以获得奖品。这瞬间让我有了学习的动力(奖品什么的其实不是我的最终目标,只是给我个理由每天去学习新东西罢了),而昨天我也终于学完了vim的使用,体会到了vim作为编辑器的优秀之处。 这里记录的不会是全部用法和快捷键,而是我自己比较常用的。
zackary
DAY 3:
项目3: vim编辑器学习
1. 声明
项目来自于实验楼,文章的作用仅用于自己记录学习,并且该项目在实验楼免费。如若侵权,请及时联系我删除。
2. vim编辑器
1. vim的常用模式
- 普通模式(Normal): 不同于大部分的编辑器, vim的默认模式是普通模式,在这个模式下,你能做到绝大部分的操作,而vim也是因为这个模式而在众多编辑器中如此出类拔萃的。
- 插入模式(Insert): 绝大多数其他编辑器的默认模式,在vim中通过按下
i
(小写)进入,但也有其他操作会进入插入模式。- 命令模式(Command): 通过键入 : (英文冒号)来进入,可以运行键入的命令。
- 可视化模式(Visual): 据我所知,用在选择文本时。通过键入
v
(小写)进入,同时也有其他方法进入。
-
普通模式(Normal)
-
vim的默认和基本模式,在这个模式下你可以通过纯键盘操作,对文本进行浏览和修改,以及切换到任意其他模式。
普通模式
-
-
vim可以在普通模式下通过
h
、j
、k
、l
这四个键来进行右、下、上、左(一一对应)的游标浮动操作。
光标移动.gif
-
对于行或者整篇文章来说,vim也有操作的快捷键。
键入
$
可以去到当前行的末尾(相当于end键),键入数字0
可以去到当前行的开头(相当于home键)。-
与大写字母
G
有关的操作都是与整行有关的,可以与其他命令混合使用,比如删除第一行的d1G
。-
数字+G
:跳转到给定数字的行号,如2G
则是跳转到第2行,如果没有显示行号, 则需要在普通模式下键入:set nu
来显示行号。
-
-
gg
或1G
:跳转到文章首。 -
G
: 跳转到文章末。
行移动.gif
-
同时在一行内,还可以进行其他快速的移动。
- 对单词进行操作:
-
跳转到下一个单词的首字母:
w
(小写)键跳转,而W
(大写)表示长跳转,如 non-for-all 被认为是一个单词。 -
跳转到下一个单词的末字母:
e
(小写)键跳转,而E
(大写)表示长跳转,如 non-for-all 被认为是一个单词。 -
跳转到上一个单词的首字母:
b
(小写)键跳转,而B
(大写)表示长跳转,如 non-for-all 被认为是一个单词。
单词移动.gif
-
跳转到下一个单词的首字母:
- 对单词进行操作:
-
在普通模式下,vim具有十分方便的删除文本功能。
-
行操作:
-
删除整行:使用命令
dd
,便可以删除光标所在当前行(实则是剪切)。 -
删除多行: 使用命令
数字 + dd
,如3dd
,表示删除包括当前行的向下3行。 -
删除当前行至文末 :
dG
。 -
删除当前行至文首(向上删除):
d1G
-
删除整行:使用命令
-
删除单个或多个字母:
-
删除单个字母:使用命令
x
(小写)即可以删除单个字母。 -
删除整个单词:使用命令
dw
即可以删除一整个单词。
删除.gif
-
删除单个字母:使用命令
-
勘误:向下删除6行的命令是
6dd
。
-
普通模式下,可以进行复制、粘贴、剪切和替换的功能:
- 所有与
y
有关的操作都与复制(yank)有关。 - 所有与
p
有关的操作都与粘贴(paste)有关。 - 通过使用删除(delete),即与
d
有关的操作,实现剪切。 -
r
:替换光标所在的字母,你下一个键入的字母将会代替原有的字母。 -
R
:不断将当前光标(会自动又走到下一个位置)替换成你输入的字母,直到按下Esc。
.
:英文句号,重复执行上一个命令*
- 所有与
-
插入模式(Insert)
- vim的插入模式主要是编辑,就是我们平时的文本处理时常使用的模式。
- 进入的方法:
-
i
:在 当前光标处 进入编辑模式 -
I
:在光标所在的 行首 处进入编辑模式(即光标会位于行首) -
a
:即append,在 当前光标的后一格 进入编辑模式 -
A
:在光标所在的 行尾 进入编辑模式 -
o
:在当前行的 新建下一行,并进入插入模式 -
O
:在当前行的 新建上一行,并进入插入模式
-
-
命令模式(Command)
- vim的命令模式赋予了vim更丰富的使用场景,通过键入
:命令
来进入命令模式并执行命令。但我会使用到的大约只有以下几点-
:new [文件名(可选)]
:在当前的窗口创建一个新的文本 ,如果无文件名,则创建无名文本。 -
:b
:跳到上一个文本(有限制,不能在第一个文本使用) -
:b数字
:跳到指定顺序的文本,例如b2
-
:n
:跳到下一个文本(有限制,不能在最后一个文本使用) -
:w
:保存文本内容 -
:w 文件名
:另存为给出的文件名的文件 -
:q
:退出 -
:wq
:保存并退出 -
:命令!
:后面有感叹号,强制执行命令 -
:ls
:列出缓冲区内的文件 -
:sp 文件名
:在水平方向分出一部分屏幕来打开一个文件,并去编辑新打开的文件 -
:vsp 文件名
:在竖直方向分出一部分屏幕来打开一个文件,并去编辑新打开的文件 -
:!外部命令
:可以在vim中使用linux命令,比如:!cat /etc/passwd
-
- vim的命令模式赋予了vim更丰富的使用场景,通过键入
-
可视化模式(Visual)
- 可视化模式一般用于选择文本时使用,我一般只用到以下三个。
-
v
:直接进入可视化模式,通过h
、j
、k
、l
方向键来选择文本。 -
shift+v
:选择当前一整行 -
ctrl+v
:选择一整块文本,但是它有“木桶效应”,选择的块必须是长方形,所以它的“长”只能是选中的行中最短的那个。
可视化.gif
-
- 可视化模式一般用于选择文本时使用,我一般只用到以下三个。
总结:
大一的时候我的其中一个大牛舍友就开始使用vim了,而我之前总觉得vim要记这么多的快捷键很难用。但其实经过坚持使用一段时间后,发现除了还是有一点小鸡肋之外,还是一款超级强大的编辑器,可以提高我们的码字速率的。而且如果配置得足够好,用于做编程的IDE是完全足够的。