oeasy教您玩轉vim - 71 - # 視圖view

 

視圖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 - 藍橋雲課)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章