国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Vim窗口布局保存插件

cnio / 2300人閱讀

摘要:的分屏很好用,可以開多個窗口對照代碼,但是分的屏多了,需要臨時擴大某個窗口到最大,編輯代碼,使用完成之后,又想要恢復原先已經設置好的布局,本身沒有提供這樣的功能,但是提供了實現這種功能的基礎下面的代碼就實現了這樣的功能將下面的代碼保存為放到

Vim 的分屏很好用,可以開多個窗口對照代碼,但是分的屏多了,需要臨時擴大某個窗口到最大,編輯代碼,使用完成之后,又想要恢復原先已經設置好的布局,Vim本身沒有提供這樣的功能,但是提供了實現這種功能的基礎, 下面的代碼就實現了這樣的功能. 將下面的代碼保存為vimlayout.vim放到 Vim的plugin目錄下, 設置自己喜歡的綁定鍵就可以了工作了. 此代碼在 Vim 7.3中測試通過.

if exists("g:vimlayoutloaded")
    finish
else
    let g:vimlayoutloaded=1
endif

function! HeightToSize(height)
    let currwinno=winnr()
        if winheight(currwinno)>a:height
            while winheight(currwinno)>a:height
                execute "normal -"
            endwhile
        elseif winheight(currwinno)+"
            endwhile
        endif
endfunction

function! WidthToSize(width)
       let currwinno=winnr()
        if winwidth(currwinno)>a:width
            while winwidth(currwinno)>a:width
                execute "normal <"
            endwhile
        elseif winwidth(currwinno)>"
            endwhile
        endif
endfunction


function! TweakWinSize(orgisize)
    call HeightToSize(a:orgisize[0])
    call WidthToSize(a:orgisize[1])
endfunction

function! RestoreWinLayout()
    if exists("g:layout")
        let winno=1
        let orgiwinno=winnr()
        for win in g:layout
            execute "normal w"
            let currwinno=winnr()
            if currwinno!=1 && currwinno!=orgiwinno
                call TweakWinSize(g:layout[currwinno-1])
            endif
        endfor
        unlet g:layout
    endif
endfunction

function! SaveWinLayout()
    let wnumber=winnr("$")
    let winlist=range(wnumber)
    let winno=0
    let layout=[]
    for index in winlist
        let winno+=1
        let wininfo=[winheight(winno),winwidth(winno)]
        call add(layout,wininfo)
    endfor
    let g:layout=layout
endfunction

function! ToggleMaxWin()
    if exists("g:layout")
        if winnr("$")==len(g:layout)
            call RestoreWinLayout()
        else
            call SaveWinLayout()
            execute "normal 200>"
            execute "normal _"
            call RestoreWinLayout()
        endif
    else
        call SaveWinLayout()
        execute "normal 200>"
        execute "normal _"
    endif
endfunction

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24761.html

相關文章

  • tmux的超絕便利

    摘要:服務器的任務不間斷運行,就是利用了的特性。超絕常用操作快捷鍵參考。我的配置如下基礎設置前綴綁定啟用鼠標選中窗口將快捷鍵設置為模式 服務器的任務不間斷運行,就是利用了tmux的特性。就是說,一般ssh是斷開就會停止所有之前連接ssh期間運行的所有processes,而tmux的核心業務不在于把屏幕分成幾塊好看,而是它能保存session!而且還能多端實時直播session! 了解tmux...

    dunizb 評論0 收藏0
  • Vim的NerdTree插件

    摘要:一個項目文件多起來時,左邊的文件樹菜單是必要的。即使有相關的方法控制這些,只是作為一個文件菜單來說,這也太麻煩了。刷新正常下是不會自動刷新的,文件刪除了,多了都不會自動顯示。 一個項目文件多起來時,左邊的文件樹菜單是必要的。 參考:常用文件樹快捷鍵所有命令及推薦鍵盤映射:官方 showImg(https://segmentfault.com/img/remote/14600000177...

    Mike617 評論0 收藏0

發表評論

0條評論

cnio

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<