vim
vim是一款功能及其强大的编辑器,我们需要掌握其基本的操作才能数量的使用他
如果你想要功能更加丰富的vim获得代码补全之类的复杂功能,强烈建议你安装一下vimplus,可以参考这里vimplus
官方教程
建议学习的时候直接跟着教程一步步操作,非常简单大概30多分钟你就能领略一遍vim的基础操作
vimtutor
这是一个大概900页的教程,你可以跟随教程一步步操作,逐渐熟悉vim的操作
建议看英文版本,熟悉一下英文,如果你想看中文可以采用如下命令
这里讲解一下如何调节字体的大小,其实这里的大小实际上是你的终端字体大小,通常你直接采用
ctrl
+鼠标滚轮就能调整了,注意要退出vim 然后可能有的是ctrl
++/-
我的是xshell滚轮即可,试了一下Windows的powershell 用滚轮也可
如何查看官方文档
vimtutor
的教程只包含一些基础的操作,如果你想要查看学习完整的vim的文档
建议学完vimtutor再查看官文
你可以直接在vim中按下命令:help
即可以
可以看到这里有非常多的小教程
你可以在vim中使用
:help usr_01.txt # help后面换成你想要了解的内容
即可查看
或者是将光标移动到对应的位置按下ctrl+]
即可以跳转,ctrl+o
可以回来(这是字母o)
不要直接看这个,而是先完成vimtutor掌握最基本的操作
官方文档是给你查阅的而不是通篇阅读,除非你想研究他
这里给出官方文档的网址,当然还是建议你直接在vim里面查看,顺便熟悉光标的移动
基本操作
强烈建议跟随vimtutor学习多练习几遍
vim 的主要逻辑是命令加动作,操作基本都可以组合而成,所有需要学会如何移动光标,结合上命令即可完成操作
基本模式
在使用命令的时候记得按esc
退回普通模式
光标移动
hjkl最基础的光标移动不做过多解释
注意使用的时候你的右手食指放在j
上面即可 中指k
,无名指l
你便能感受到操作的感觉,注意多加练习
光标命令的操作
本来想简要的写一下基本移动操作,看了一些官方文档,感觉非常直观简单,在此建议直接看官文吧
命令 | 含义 |
---|---|
h | 向左移动一个字符 |
j | 向下移动一个字符 |
k | 向上移动一个字符 |
l | 向右移动一个字符 |
[n]- | 向上移动n行 |
[n]+ | 向下移动n行 |
:[n]或[n]G | 移动到第n行 |
gg | 移动到文件的第一行 |
G | 移动到文件的最后一行 |
^ | 移动到这一行的第一个非空白字符处 |
$ | 移动到行尾 |
w | 下一个单词的词首 |
b | 上一个单词的词首 |
W(按空格) | 下一个单词的词首 |
B(按空格) | 上一个单词的词首 |
t) | 向后查找,将光标移动到)的前一个字符 |
T" | 向前查找,将光标移动到"的后一个字符 |
f) | 向后查找,将光标移动到) |
F) | 向前查找,将光标移动到" |
我也提供一些常用的供你查看
删除文本
删除类似windows的剪切,会将删除的内容复制到剪切版里面
使用组合键action+motion来完成多样化的删除
命令 | 含义 |
---|---|
x | 删除一个字符 |
dw | 删除一个单词 |
[n]dw或d[n]w | 删除n个单词 |
dd | 删除一行 |
[n]dd或d[n]d | 删除n行 |
:[m],[n]d | 删除m,n行 |
d^ | 删除到行首 |
d$ | 删除到行尾 |
dt) | 删除到) |
dt" | 删除到" |
复制(yank)文本
命令 | 含义 |
---|---|
yy | 复制一行 |
[n]yy或y[n]y | 复制n行 |
:[m],[n]y | 复制[m,n]行 |
yw | 复制一个单词 |
[n]yw或y[n]w | 复制n个单词 |
yt) | 复制到) |
yt" | 复制到" |
修改(change)文本
修改其实就是删除操作和进入编辑的组合
命令 | 含义 |
---|---|
cc/S | 删除当前行进入编辑 |
[n]cc/[n]S | 删除n行进入编辑 |
cw | 删除一个单词进入编辑 |
[n]cw/c[n]w | 删除n单词进入编辑 |
c^ | 删除到行首进入编辑 |
c$ | 删除到行尾进入编辑 |
ct) | 删除到)进入编辑 |
ct" | 删除到"进入编辑 |
c[n]G | 删除到第n行进入编辑 |
cG | 删除到文件末尾进入编辑 |
粘贴撤销和恢复
命令 | 含义 |
---|---|
p或P | 粘贴 |
u(undo) | 撤销 |
ctrl+r | 恢复 |
单独一个r是replace替换光标所在字符
查找和替换
支持正则表达式
命令 | 含义 |
---|---|
/pattern | 从光标所在位置向后查找匹配pattern的内容 |
?pattern | 从光标所在位置向后查找匹配pattern的内容 |
n | 移动到下一个匹配项 |
N | 移动到上一个匹配项 |
替换
:s/pattern/replace/选项
将匹配pattern的内容替换为substitute
:s/pattern/substitute
只会替换光标所在行的第一个匹配项:s/pattern/substitute/g
替换光标所在行的所有匹配项:[m],[n]s/pattern/substitute/g
替换[m,n]行的所有匹配项:%s/pattern/substitute/g
替换全文的匹配项
对文件相关的操作
命令 | 含义 |
---|---|
:w | 将buffer里的内容写入文件,即保存 |
:q | 退出 |
:q! | 不保存退出 |
:wq | 保存退出 |
vim前缀原则,只要字母可以唯一确定一个命令就可以使用
q:quit
w:write
多窗口操作
命令 | 含义 |
---|---|
:split(:sp) | 水平分割 |
:new | 水平分割 |
:vsplit(:vsp) | 垂直分割 |
:vnew | 垂直分割 |
[ctrl]+ww | 切换窗口 |
:wall | 保存所有修改过的窗口 |
:qall | 退出所有窗口 |
:only | 保留当前窗口,关闭其他窗口 |
建议新手直接用vimtutor学习
如果有想指导的东西直接看官方文档,这是最全面的学习一手资料