欢迎光临散文网 会员登陆 & 注册

oeasy教您玩转vim - 71 - # 视图view

2021-12-20 08:10 作者:oeasy  | 我要投稿

视图view

回忆上次折叠的细节

  • 折叠方式很多

    • 我们一般就用默认的就行

    • indent 很好用

    • 前提是缩进语法严格到位

    • 这样语法和排版都能同时确保

  • 打开关闭

    • zczo 是打开关闭当前行

    • zmzr 可以改变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.javamkview

  • 无法写入?

强制创建文件夹

  • :!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

  • 载入的时候会加载 localoption 到当前 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地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (overmind1980/oeasyvim)
[蓝桥实验楼 邀请码FJWYIMGB] (oeasy 教您零基础玩转编辑神器 Vim_Linux - 蓝桥云课)


oeasy教您玩转vim - 71 - # 视图view的评论 (共 条)

分享到微博请遵守国家法律