视图view
回忆上次折叠的细节
-
折叠方式很多
- 我们一般就用默认的就行
indent
很好用- 前提是缩进语法严格到位
- 这样语法和排版都能同时确保
-
打开关闭
zc
、zo
是打开关闭当前行zm
、zr
可以改变foldlevel
-
配合
{range}
:{range}foldopen!
可以在范围内打开行:{range}foldclose!
可以在范围内关闭行
- 但是这个折叠
- 一关闭vim就没了
- 这个折叠状态可以保存住么?🤔
mkview 创造视图
mkview
可以创造一个视图- make a view
- 这个视图存储在
viewdir
- 我们可以查看这个
option
的位置 :set viewdir?
- 位置在
$VIM/vimfiles/view
下面 - 我们具体去看一下
viewdir
:!ls $VIM/vimfiles/view
- 貌似现在还没有这个文件夹
- 原因应该是还没有
:mkview
- 我们退出帮助
- 回到
oeasy.java
来mkview
- 无法写入?
强制创建文件夹
-
:!mkdir -p ~/.vim/view/
mkdir -p
是建立相应的文件夹
-
用户文件夹和系统文件夹
~/.vim/
是当前用户
对应的vim配置文件夹/usr/share/vim/vim81
是系统共享
vim配置文件夹- 然后
:mkview
创建结果
- 成功了
-
这个东西存在哪里呢?
:!ls ~/.vim/view/
- 找到了这样一个文件
view的内容
-
我们来看看这个里面有啥
:!ls ~/.vim/view/
-
首先我们可以确定文件名
:!vi ~/.vim/view/
+tab
-
这是一个
vim
文件- 就像
~/.vimrc
一样 ~/.vimrc
是当前用户的vim配置
- 这个
~/.vim/view/XXX.vim
是当前窗口make
的view
- 保存了当前窗口的一些
option
- 就像
-
载入的时候会加载
local
的option
到当前window
- 用的命令是
:setlocal ...=...
- 所以只对当前
window窗口
有用 - 相对
:set ...
对所有窗口有用
- 用的命令是
- 其实我主要关心的是折叠信息的保存还有光标位置的情况
保存状态
- 我们重新回到oeasy.java
- 把光标位置设置在
8,20
- 然后
:mkview
-
进行一些简单的折叠
:set foldcolumn=4
:set foldmethod=indent
- zC
- 再
gg
装载状态视图
- 然后
:loadview
-
发现一切都回来了!!!
- 光标位置和折叠信息都在😛
- 我觉得这还是挺实用的
具体存储的信息
- 我们可以看到
- 除了
localoption
之外 - 折叠和位置的信息也可以保留到
view
中
-
如果我关闭了再打开
oeasy.java
- 还能
loadview
么?
- 还能
- 试试
加载视图
-
重新打开
oeasy.java
:loadview
- 加载视图成功
- 这样就能回到上次编辑的位置了
- 但是我能够定义多个编辑位置么?
- 这样我就可以像切地图位置一样切换光标位置了?
多个视图view
-
找一个位置比如
(8,20)
- 坐标可以在
statusline
里面的ruler
中找到 - 定义一个
view
:mkview
- 坐标可以在
-
再找一个位置(1,1)
:mkview 1
-
恢复到第一个位置
:loadview
-
恢复到第二个位置
:loadview 1
-
总共九个数字可以给你用
- 还可以自定义view的名字
- 可以说是很方便了
- 随意传送
-
其实这个用
ma
也能做到- 视图view里面是不只是可以保存光标位置
- 一个view里面到底保存了什么?
view内容
- 打开的文件列表(参数),也就是
:args
,包括索引顺序 - 当前文件
-
当前窗口的本地属性
- 缩写(
abbreviations
) - 映射(
mappings
)
- 缩写(
- 折叠(
fold
) - 为什么可以保存这么多东西呢?
view选项
-
:h viewoptions
可以看到view保存内容的选项- 可以选择保存什么不保存什么
- 内容是一个列表
-
:set viewoptions?
- 目前是默认的
:set viewoptions=folds,options,cursor,curdir
-
curdir
指的是当前路径- 在使用
:view .
的时候可以明确相对路径 view
保存了好多配置信息- 但是不会影响到最终编辑的文档
- 是蓝布棉门帘
- 在使用
总结
- 这次了解到了
:mkview
、:loadview
- 保存和加载视图
- 可保存内容的选项在
viewoption
中 -
还可以保存多个视图
- 在整个文档中跳来跳去
-
视图里面可以有很多本地窗口的设置
- 折叠
- 缩写
- 映射
- 那么到底什么是缩写(
abbreviations
)和映射(mappings
)呢?🤔 - 下次再说!
[Github地址] (