vim 从启动到退出
前言
虽然编辑文本文件用 nano 足矣,但是写程序的时候总是不那么方便,所以 vim 还是要学一下的~ 在正式学习之前,先说说如何退出vim:<Esc> + 输入:wq + <Enter>,很多人第一次用 vim 时完全不知道如何退出,所以你去搜索 vim,大部分人都是问这个问题 ~
三种模式
和 Jupyter Notebook 类似,vim 也有多种模式:
-
基本模式(Command mode)
刚启动时就进入命令模式,此时可以输入基本命令。
-
输入模式(Insert mode)
可以编辑文字
-
命令模式(Last line mode)
可以输入比命令模式更多的命令
-
浏览模式(Visual mode)
可以看(暂时还不知道这是干什么的)
三种模式的切换方法如下:
基本模式
在基本模式下可以做一些基本的操作,比如 移动光标、复制粘贴、搜索替换。
移动光标
除了 ↑↓←→外,没有方向键的键盘也可以用 h左
、j下
、k下
、l右
来移动光标。
除了 PgUp 和 PhDn 外,也可以用 Ctrl+f
(front,上一页)、Ctrl+b
(below,下一页)来翻页。
除了 Home 和 End 外,也可以用 0
(最前面)、$
(最后面)来让光标移动到行的前面或后面。
如果想一次移动多行,直接输入数字就好。
如果想移动到第n行,可以用 n+G
。
想移动到最后一行,可以用 G
。
复制粘贴
不得不说没了鼠标,复制这活可不好干。vim 只能这样复制:
- 复制光标所在行:
yy
- 复制光标到下面n行:
nyy
- 复制光标到行首:
y0
- 复制光标到行末:
y$
- 有一些不常用,就不列了
至于粘贴,有两种:
- 在光标那行下面粘贴:
p
(小写) - 在光标那行上面行粘贴:
P
(大写)
搜索替换
搜索:
- 向下搜索一个字符串:
/+字符串
- 向上搜索一个字符串:
?+字符串
如果你想不断地找下一个的话,你可以输一次上面的命令,然后输入 n
,就可以重复前面的搜索动作。如果你想沿前面搜索动作的反方向找,可以输入 N
至于替换,有一个格式:
:n1,n2s/word1/word2/gc
意思是将 n1 行到 n2 行中,所有的 word1 替换为 word2。特殊地,第一行到最后一行表示为::1,$s/word1/word2/gc
删除
除了用 backspace 和 del,还可以用:
- 向前删除
X
,向后删除x
- 删除一整行:
dd
- 向下删除 n 行:
ndd
输入模式
输入模式和一般的文本编辑器没什么区别,可以输入字符,也可以 ↑↓←→等等。唯一要讲的是,如何从基本模式进入输入模式。
一般按 i (insert)就是从光标所在处输入;如果你想让你的输入取代后面的字,可以用 r,R(replace),小写是只取代一个字,大写是一直取代。知道这两种方法就行了,记太多会乱。
命令模式
其实命令模式和一般模式差不多,在一般模式下输入 : 就会进入命令模式,输入完一条命令后,就会自动跳回一般模式。所以很多时候,教程中都不会单独说命令模式。在此仅简单介绍一些常用命令:
- 储存:
:w
- 退出:
:q
- 储存并退出:
:wq
- 另存为:
:w [filename]
- 在 bash 中执行 command(比如 ls):
:! command
最基本的使用流程
写代码的基本流程是:新建文件 -> 编辑 -> 保存,那么在 vim 中对应的操作就是:
-
新建一个文件
1
vim new.c
- 按 i 进入输入模式
- 按 Esc 退出输入模式,进入命令模式,按
:wq
保存并退出