視圖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地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (overmind1980/oeasyvim)
[藍橋實驗樓 邀請碼FJWYIMGB] (oeasy 教您零基礎玩轉編輯神器 Vim_Linux - 藍橋雲課)