最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

oeasy教您玩轉vim - 76 - # Session會話

2021-12-31 09:23 作者:oeasy  | 我要投稿

會話session

回憶組合鍵映射的細節(jié)

  • 上次我們定義了一系列的復合鍵

    • 主要是和ctrl鍵一起

  • 快速跳轉window窗口

    • map <c-j> <c-w>j

    • map <c-k> <c-w>k

    • map <c-h> <c-w>h

    • map <c-l> <c-w>l

  • 快速跳轉tab選項卡

    • map <c-left> :tabn<cr>

    • map <c-right> :tabp<cr>

  • 還可以流水作業(yè)

    • map <c-s> :%s/5.1/5.2/g<cR>:wnext<cr>

  • 最后要注意注釋說明的小細節(jié)

    • :unmap a|" ? ? unmap a

  • 組合鍵和功能鍵Fn一樣

    • 都可以做各種映射map

    • 映射map和縮寫abbreviate和折疊、本地options一樣

    • 都可以通過:mkview、:loadview來保存讀取

    • 但是如果我的環(huán)境里面有tab選項卡

    • tab選項卡里面還有各種切分好的各個窗口

    • 一覺醒來還得重新切分

    • 還得重新:tabnew

  • 我想把這個多選項卡tabs多窗口windows的狀態(tài)整個存儲起來

  • 可能么???

尋找過程

  • 如果 有這個功能的話

    • 一定是在:mkview附近

    • 我們先去現(xiàn)場轉轉

  • :h mkview

  • view 里面的可以包括

    • 映射 map

    • 縮寫 abbreivate

    • options

    • 參數(shù)列表 :args

    • 當前文件

    • viewoptions

    • 折疊

    • 滾動位置和光標位置

    • 當前文件夾

  • viewoption相關的有一個sessionoptions

  • <c-]> 進去看看

sessionoptions會話選項

  • 這個會話session就包括下列選項options

    • blnak 空白窗口

    • buffers 所有緩存

    • curdir 當前目錄

    • folds 折疊

    • globals 全局變量

    • localoptions 本地選項

  • 還家伙,這不基本就把:mkview的活兒都干了么

  • 只要sessionoptions有以上這些

  • :mksession就可以完成:mkview的工作

  • 除此之外,session中還有什么

sessionoptions會話選項

  • 可以給 sessionoptions 添加更多選項

    • unix 文件名里面的反斜杠會變成斜杠

    • 會使用絕對路徑absolute path

    • :set sessionoptions+=resize

    • options 所有的選項option 和 映射map

    • resize 窗口的行和列

    • sesdir session會話文件所在的目錄

    • 這個文件夾會成為當前目錄curdir

    • 如果sesdircurdir都沒有的話

    • slash

    • 在從 windowsunixlike 有用

    • tabpages 選項卡頁面

    • terminal 終端存儲的命令

    • winpos、winsize 窗口window的大小和位置

  • 這啥都有了

  • tabswindow

  • 完全滿足需求

保存會話:mksession

  • :mksession 保存會話

  • 存到哪里了呢?

  • :echo this_session

    • 回答是保存在了當前目錄

    • 叫做session.vim

    • 這個就很像在項目的根目錄保存了一個工作區(qū)

  • 我們去看看這個東西是什么?

會話內容Session

? git clone http://gitee.com/overmind1980/oeasyvim.git` ? vi -o oeasy.java oeasy.css oeasy.html

  • 然后再建立一些tabs

  • :mks[ession]

  • 可以看到這個在SessionOption里面的

    • tab

    • buffers

    • window

    • 全都有

  • 總共1000+行

  • 把當前的狀態(tài)全保存起來了

  • 想恢復的時候只要

    • :so[urce] session.vim

    • 就都恢復了

切換項目工作區(qū)

  • 可以建立兩個session

  • 然后把復制oeasyvim出來叫oeasy

  • 這樣我們就有兩個工作文件夾了

    • 比如 oeasyvim 是我們不想做的任務A

    • oeasy是我們想做的任務B

? cd .. ? cp oeasyvim oeasy ? cd oeasy ? vi -o oeasy.java oeasy.css oeasy.html

  • 再加上一些tab選項卡之類

    • :mksession

    • 這次在oeasy這個工程文件夾底下建立了Session.vim

    • 我們可以看到這兩個項目

    • 各有各的工程文件

    • 也就是各有各的藍布棉門簾

    • 甚至可以把這個工作區(qū)狀態(tài)分享到網上

  • 別人就用你的布局方式打開你的工程

    • vim -S Session.vim

  • 或者進入vim后

    • :source Session.vim

  • 也可以給同一個工程制作不同方面的切面會話

項目工作區(qū)文件夾./sessions

  • :mks ~/sessions/oeasy.session

    • ls ~/sessions/

    • vim -S ~/sessions/oeasy.session

    • ~/sessions/oeasy.session

    • ~/sessions/o2z.session

    • ~/sessions/o3z.session

    • 可以在指定位置~/session下建立工程目錄

    • 所有的工程文件都存在工程目錄里

    • 這樣的話我可以直接去工程目錄里面找工程

  • 優(yōu)點

    • 用.gitignore可解決這個問題

    • 各個工程集中管理

    • 也可以設定這些session文件

    • 其實還有其他方法避免session文件出現(xiàn)在git提交的工程目錄里面

  • 缺點

    • 刪除一個工程要在兩個地方刪除

    • 工程程序素材和工程工作區(qū)不在一起復制粘貼麻煩

功能鍵映射

  • 我想讓F2能執(zhí)行:mksession的任務

    • :map <F2> :mks!<cr>

  • 我想先保存文件再保存工作區(qū)

    • :map <F2> :wa<Bar>mks!<cr>

  • 我想先保存文件再保存工作區(qū)到當前session文件

    • :map <F2> :wa<Bar>exe "mksession! " . v:this_session<cr>

    • 其中v:this_session是當前的session

    • 可以:echo v:this_session

  • 想要加載session的時候

    • :source ~/oeasy/oeasy.vim 也可以指定一個功能鍵

    • :map <F3> :source ~/oeasy/oeasy.vim<cr>

  • 當F3的時候

    • 這會話session就被保存住了

    • 而這兩個map映射也就保存到了這個session里面

view和session

  • 先后次序

    • vim肯定是先有的:mkview 保存窗口視圖

    • 后有的:mksession 保存整個會話

    • 這說明vim功能變的更強大

    • 更適合多線程并發(fā)的環(huán)境

  • 兩者關系

    • 單tab選項卡單window窗口的工程可以用:mkview

    • 多tab選項卡多window窗口的工程最好用:mksession

    • :mksession 可替代 :mkview

  • 不過最后一段他說

    • viewsession 都是 viminfo 的有益補充??!

    • 幾個意思?

  • 我們還是先總結一下 Session

總結

  • 這次我們定義了session

    • :mks

  • 還可以加載會話session

    • :source Session.vim

    • vim -S Session.vim

  • 基本上確立:mksession可以替代:mkview

  • 誰知又出來一個viminfo?!??

  • 上面這哥倆兒都成了有益補充?

  • 什么情況???

  • 下次再說!

[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[藍橋實驗樓 邀請碼FJWYIMGB] (https://www.lanqiao.cn/courses/2840)


oeasy教您玩轉vim - 76 - # Session會話的評論 (共 條)

分享到微博請遵守國家法律
蕉岭县| 内江市| 亚东县| 凌海市| 阿坝县| 楚雄市| 陇南市| 南和县| 格尔木市| 梁河县| 称多县| 墨脱县| 三原县| 宜宾市| 义马市| 南部县| 德安县| 祁东县| 大安市| 白银市| 彭阳县| 科技| 浦县| 鄂托克前旗| 子长县| 玛曲县| 青州市| 郯城县| 台中县| 余干县| 四平市| 河池市| 辽源市| 龙山县| 和顺县| 清新县| 岳普湖县| 克什克腾旗| 巴南区| 读书| 阿克陶县|