Explore浏览

:Explore 打开目录(explore)

操作:

-: go up dir
D: delete
R: rename
s: sort-by
x: exec

改变当前目录:

:cd <dir> 改变当前目录
:pwd 查看当前目录

缓冲区(buffer)

:ls 查看缓冲区

相关标记

– (非活动的缓冲区)
a (当前被激活缓冲区)
h (隐藏的缓冲区)
% (当前的缓冲区)
# (交换缓冲区)
= (只读缓冲区)
+ (已经更改的缓冲区)

快速切换

:buffer n          - 切换到n号文件
:buffer src/some.c - 切换到src/some.c
:bnext     (缩写 :bn)
:bprevious (缩写 :bp)
:blast     (缩写 :bl)
:bfirst    (缩写 :bf)

你可以像在Shell中输入命令按Tab补全一样补全Vim的命令。也可以用像gdb一样用最前面的几个字符,只要没有冲突。

切换的当前路径

:cd %:p:h

窗口分屏(window)

直接编辑文件

:split filename
:vsplit filename

探索

:Hexplore    下
:Hexplore!   上
:Vexplore    左
:Vexplore!   右

移动不同窗口:

<c-w>h
<c-w>j
<c-w>k
<c-w>l

移动窗口位置:

<c-w>H
<c-w>J
<c-w>K
<c-w>L

调整窗口大小

<C-w>_
<C-w>|
<C-w>+
<C-w>-
<C-w><
<C-w>>
<C-w>=

要让两个分屏中的文件同步移动, 需要到需要同步移动的两个屏中都输入如下命令

:set scb  (set scrollbind)

解开同步移动

:set scb!

Tab页浏览目录(tab-page)

探索

:Te  全称是 :Texplore

直接编辑

:tabedit filename

切换标签页

gt       – 到下一个页
gT       – 到前一个页
{n} gt   – n是数字,到指定页
:tab {n} - n是数字,到指定页

查看现在打开的窗口和Tab的情况

:tabs

关闭标签页

:tabclose [i] – 如果后面指定了数字,那就关闭指定页,如果没有就关闭当前页
:qa           - 关闭所有窗口与标签页
:wqa          - 关闭前保存

最后提一下,如果你在Shell命令行下,你可以使用 vim 的 -p 参数来用Tab页的方式打开多个文件,比如:

vim -p cool.cpp shell.cpp haoel.cpp
vim -p *.cpp

注:如果你想把buffer中的文件全转成tab的话,你可以使用下面的命令

:bufdo tab split

nerdtree

安装nerdtree插件后,可用快捷键

和编辑文件一样,通过h j k l移动光标定位
o 打开关闭文件或者目录,如果是文件的话,光标出现在打开的文件中
go 效果同上,不过光标保持在文件目录里,类似预览文件内容的功能
i和s可以水平分割或纵向分割窗口打开文件,前面加g类似go的功能
t 在标签页中打开
T 在后台标签页中打开
u 到上层目录
P 到根目录
K 到同目录第一个节点
J 到同目录最后一个节点
m 显示文件系统菜单(添加、删除、移动操作)
? 帮助
q 关闭

Quickfix

假如我们有一个hello.cpp文件和一个makefile,于是我们可以直接在vim下输入:make ,于是就可以make这个hello.cpp文件,如果出错了,我们需要按回车返回,这个时候,我们可以使用下面的命令来把出错显示到Quickfix中:

:cw

可以使用j, k在quckfix窗屏中上下移动到相应的错误上然后按回车,然后就可以在上面的窗屏里定位到相应的源文件的代码行。

还可以使用下面的命令跳转到错误:

:cp - 跳到上一个错误
:cn - 跳到下一个错误
:cl - 列出所有错误
:cc - 显示错误详细信息

终端

在Vim8中,使用:

:ter - 打开terminal

帮助:help :ter