oeasy教您玩转vim - 71 - # 视图view
视图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=indentzC
再
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,curdircurdir指的是当前路径在使用
:view .的时候可以明确相对路径view保存了好多配置信息但是不会影响到最终编辑的文档
是蓝布棉门帘
总结
这次了解到了
:mkview、:loadview保存和加载视图
可保存内容的选项在
viewoption中还可以保存多个视图
在整个文档中跳来跳去
视图里面可以有很多本地窗口的设置
折叠
缩写
映射
那么到底什么是缩写(
abbreviations)和映射(mappings)呢?🤔下次再说!
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 Vim_Linux - 蓝桥云课)

