admin 管理员组文章数量: 887021
我的vim手册(按使用场景梳理)
四大模式:正常模式、插入模式、命令模式、可视模式。
正常模式
- 文件打开之后默认就处于正常模式。
- 正常模式的主要作用就是浏览文件,包括一些复制、粘贴、删除等操作。
- 正常模式应该成为vim的主要模式,即其他模式做完操作立即返回正常模式。
插入模式
-
正常模式下按下个别字母键会进入插入模式。
-
插入模式主要负责编辑。
命令模式
- 正常模式下按下
:
或/
进入命令模式 - 命令模式下可以执行一些输入并执行一些 VIM 或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。
可视模式
- 在正常模式按下
v, V, <Ctrl>+v
,可以进入可视模式。 - 可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。
打开文件
-
bash状态下打开单文件:
vim file
-
bash状态下打开多文件:
vim file1 file2 file3…
-
打开状态下继续打开其他文件:
-
:e file
在当前文件夹打开 -
:Ex
在 Vim 中打开目录树,光标选中后回车打开对应文件,相当于普通编辑器的file->open(-
进入上级目录)
-
对于单文件来说,继续接下来相应的操作就好,但对于打开多文件状态来说,此时存在两个问题:
- 打开了的多文件默认只显示一个在屏幕上,怎么切换?
- 能不能像其他编辑器一样并行(同时展示)多个窗口呢?
实际上vim的多文件机制解决了上面两个问题。
多文件机制
buffer的概念
所有当前被打开了的文件都被载入VIM的buffer当中,因此可以在buffer中切换文件
查看当前buffer::buffers
或:ls
。理论上会得到这样的结果
:ls
1 #h "file-one.md" line 47
2 %a "file-two.md" line 1
Press ENTER or type command to continue
接下来的切换操作如下
:bn
打开缓存中下一个文件(相当于普通编辑器点击打开标签):bp
打开缓存中上一个文件:b<N>
打开缓存中第 N 个文件::bdelete<N>
删除所要关闭的缓冲区,缩写:bd<N>
。
分屏
上面解决了打开文件的切换问题,而分屏机制则解决了同时浏览多份文档的问题。
但是为啥非要分屏?因为难免有时候需要对着一个文档编辑另一个文档!
主要有这样几个使用需求:
打开时直接分屏:
- 左右分:
vim -On file1 file2 ... filen
- 上下分:
vim -on file1 file2 ... filen
分割当前打开的文件:
- 上下分:
Ctrl + w s
- 左右分:
Ctrl +w v
打开若干个窗口后继续增加窗口
- 上下分:
:sp file
- 左右分:
:vsp file
新添加上来的分屏插在哪里呢?其实是基于当前光标处于哪个窗口而定的!
补充点:
分屏方式无非是左右上下,但为什么用
:sp
和:vs
表示?
:split
缩写:sp
orCtrl-w s
上下分屏
:vsplit
缩写:vs
orCtrl-w v
左右分屏
:diffsplit
缩写:diffs
diff 模式打开一个分屏,后面可以加上 {filename}这条命令不单单是分屏,它还有比较两个文档的作用。
多窗口之间切换光标与调整分屏
分好了之后怎样做到下面两点呢:
- 光标要能够在几个窗口之间自如切换
- 当分屏的位置或大小不恰当时如何调整呢?
切换光标:
将光标定位到左/右/上/下的窗口里:Ctrl + w h/l/k/j
调整分屏:
-
调整分屏位置
将当前分屏移动到左/右/上/下:
Ctrl + w H/L/K/J
这里可以将底部的屏幕移动到右侧,实现上下分屏到左右分屏的转换。
-
调整分屏大小
Ctrl-w =
平均窗口尺寸Ctrl-w +/-/_
增加/缩减/最大高度(方向符前面可以加数字)Ctrl-w >/</|
增加/缩减/最大宽度
分屏机制虽说不错,但是分两三个窗口出来还可以,假如文件超过三个,此时就更适合用标签来进行多文件之间的切换。
标签
窗口是窗口标签是标签,一个窗口可以对应好几个标签。
创建标签页
- 在新的标签页打开文件:
:tabe file
- 在新的标签页打开当前窗口文件:
tab split
- 通配符打开当前目录里一些文件:
tabf *.txt
切换标签页
- 上一页
:tabp
gT
(实际使用时往往在这里设置快捷键) - 下一页
tabn
gt
- 首/末页
:tabfirst
和:tabr
/:tablast
:tabl
- 移动当前标签到第一个位置
:tabm 0
(数字可以改) - 移动当前标签到最后一个位置
:tabm
关闭标签页
- 关闭当前
:tabc
(用关闭窗口的方法也可以) - 保留当前
:tabo
- 关闭/显示标签页菜单
:set showtabline=0
/:set showtabline=1
列出标签页
列出已打开标签页 :tabs
(>表示当前标签页)
或者是打开一个新文档进行编辑,或者是打开久文档进行审计,那么当前面文件已经就位之后接下来就应该开始进入插入模式了!
插入模式
版权声明:本文标题:我的vim手册 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1724509852h753132.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论