vimscrip学习——文件
@([03] Vim)
管理多个文件
缓冲区列表
命令 | 操作 |
---|---|
:bprev | 切换到列表中的上一个缓冲区 |
:bnext | 切换到列表中的下一个缓冲区 |
:bfirst | 跳到列表开头 |
:blast | 跳到列表结尾 |
:ls | 列出所有被载入到内存中的缓冲区的列表 |
:buffer N(简写 :b N) | 跳转到指定编号的缓冲区 |
%
指明哪个缓冲区在当前窗口中可见,#
代表轮换文件C-^
可以在当前文件和轮换文件之间快速切换
删除缓冲区
- 删除特定缓冲区:
:bdelete N1 N2
- 删除一定编号N到M的缓冲区:
:N,M bdelete
bdelete
可简写为bd
参数列表
命令 | 操作 |
---|---|
:args | 列出参数列表 |
:next | 参数列表中下一个文件 |
:prev | 参数列表中上一个文件 |
*
通配符用于匹配0个或多个字符,但只在指定的目录,不会地柜其子目录。
**
匹配0个或多个字符,可以递归进入指定目录的子目录。
隐藏缓冲区
当对一个缓冲区进行了修改,但未进行保存的时候我们如果想要切换缓冲区需要在切换命令(:bnext)后面加!
即::bnext!
被隐藏的缓冲区前面会有一个h
(hidden)标记。
在退出缓冲区是,处理隐藏缓冲区的方式
命令 | 用途 |
---|---|
:w[rite] | 把缓冲区内容写入磁盘 |
:e[dit]! | 把磁盘文件内容读入缓冲区(即回滚所做修改) |
:qa[ll]! | 关闭所有窗口,摒弃修改而无需警告 |
:wa[ll]! | 把所有改变的缓冲区写入磁盘 |
分割窗口
分割窗口的几种方式
命令 | 用途 |
---|---|
<C-w>s | 水平切分当前窗口,新窗口仍显示当前缓冲区 |
<C-w>v | 垂直切分当前窗口,新窗口仍显示当前缓冲区 |
:sp[lit] {file} | 水平切分当前窗口,并在新窗口中载入{file} |
:vsp[lit] {file} | 垂直切分当前窗口,并在新窗口中载入{file} |
窗口间切换
命令 | 用途 |
---|---|
<C-w>w | 在窗口间循环切换 |
<C-w>h | 切换到左边的窗口 |
<C-w>j | 切换到下边的窗口 |
<C-w>k | 切换到上边的窗口 |
<C-w>l | 切换到右边的窗口 |
关闭窗口
EX命令 | 普通模式命令 | 用途 |
---|---|---|
:clo[se] | <C-w>c | 关闭活动窗口 |
:on[ly] | <C-w>o | 只保留活动窗口,关闭其他所有窗口 |
改变窗口大小及重新排列窗口
命令 | 用途 |
---|---|
<C-w>= | 使所有窗口等宽等高 |
<C-w>_ | 最大换活动窗口的高度 |
<C-w>| | 最大化活动窗口的宽度 |
[N]<C-w>_ | 把活动窗口的高度设置为N行 |
[N]<C-w>| | 把活动窗口的宽度设为N列 |
通过标签页对窗口进行分组
命令 | 用途 |
---|---|
:lcd {path} | 更改本地工作目录(只影响当前窗口) |
:windo lcd{path} | 更改本地工作目录(影响一个标签页的所有窗口) |
打开和关闭标签页
命令 | 用途 |
---|---|
:tabe[dit] {filename} | 在新标签页中打开{filename} |
<C-w>T | 把当前窗口移到一个新标签页 |
:tabc[lose] | 关闭当前标签页及其中的所有窗口 |
:tabo[nly] | 只保留活动标签页,关闭所有其他标签页 |
标签页间的切换
Ex 命令 | 普通模式命令 | 用途 |
---|---|---|
:tabn[ext] {N} | {N}gt | 切换到编号为{N} 的标签页 |
:tabn[ext] | gt | 切换到下一标签页 |
:tabp[revious] | gT | 切换到上一标签页 |
find 打开文件
- 设置find目录:
:set path+={dir}/**
- find:
:find file
文件管理器
Ex 命令 | 缩写 | 用途 |
---|---|---|
:edit . | :e. | 打开文件管理器,并显示当前工作目录 |
:Explore | :E | 打开文件管理器,并显示活动缓冲区所在的目录 |
将文件保存在不存在的目录中
:edit dir/test.txt
打开一个空的缓冲区:!mkdir -p %:h
创建目录结构:write
将缓冲区写入文件