Android拓展系列(8)–Vim外掛程式便捷管理(使用git submodule和pathogen)

來源:互聯網
上載者:User

    對於一個vimer來說,vim外掛程式的管理其實是一個問題。
    對於一個喜歡重裝系統的vimer來說,vim外掛程式的管理其實是一個很重要的問題。
    對於一個喜歡又喜歡嘗鮮最新外掛程式又喜歡重裝系統的vimer來說,vim外掛程式的管理其實是一個更重要的問題。
    所以,我想說的是,vim外掛程式的管理,對於不同程度的人群有不同的重要性,我相信這真的是vimer要解決的一個重要的問題。

1. vim外掛程式的管理的幾個問題
    vim外掛程式的管理到底是解決什麼問題?
    (1). 記錄存檔;
        把你的個人化(.vimrc),使用的哪些外掛程式,或者一些操作,或者自己整理的文檔,能夠有所記錄存檔,能夠隨時查閱。
    (2). 雲備份;
        雲備份相對於本地儲存更安全,同時通過網路,我們能更方便在任何時間任何地點擷取的到。
        重裝系統,格式化,以後通通不怕忘記備份了。
    (3). 能更新;
        以最簡單的方式,就能使用最新的外掛程式,第一時間享受最新的改進。
    (4). 簡單方便;
        只需要最簡單的幾部操作,就能在任何時間在任何電腦複製出你電腦上一模一樣的vim運行環境。
        絕對簡單,絕對方便,這也是我們要追求的特性。

2. 使用git submodule和pathogen
    有一個解決方案,能解決上面提出的幾個問題。
    外掛程式的管理,有一個著名的vim外掛程式pathogen能夠實現方便的管理。
    備份記錄,則可以使用git版本控制工具在github上實現。
    結合git中的submodule特性,我們能夠實現外掛程式的外掛程式化,保持他們的獨立性,進而實現外掛程式的隨時更新。

3. git和github
    這一步其實是本文的一個基礎條件,也感謝github提供了這麼一個好的大環境。
    git提供了版本管理,以便以後隨時更新和修改。
    github相當於提供了雲端的備份,隨時隨地都可以恢複,最主要的是對git的完美支援。
    結合git和github能夠對本地外掛程式和整個環境納入一個良好的管理體系,簡單強大,安全可靠。

4. 外掛程式管理pathogen外掛程式
    這個外掛程式帶來的好處就是,每個外掛程式能夠獨立的放到bundle下對應的目錄下,所有的外掛程式很獨立,很乾淨。
    pathogen的源碼地址:https://github.com/tpope/vim-pathogen
    在上面詳細講述了pathogen的使用方法,我不累述。
    只是說明一下,這個外掛程式式需要修改.vimrc的,所以後續我們需要提供一個.vimrc的更新方法,後面會說這個問題。

5. 使用git submodule
    git submodule實現把外掛程式作為第三方版本庫嵌入我們的版本庫,而我們只需要付出管理一個版本庫的精力。
    因為外掛程式基本上都是別人提供了,而且現在vim scripts都遷移到了github上,我們只需要從github上clone下來就可以了。
    但是每個外掛程式都是一個獨立的版本庫,如果簡單的分開複製,獨立管理會造成本地也會有很多版本庫。
    使用git submodule只需要建立一個版本庫,而把這些外掛程式的版本庫只是當做這個版本庫的子模組,這樣既能實現管理的簡單,有能分別進行獨立的升級。
    git submodule的使用方法:

// 增加一個模組git submodule add <url> <local path>// 更新模組git submodule initgit submodule update

6. 布局
    結合上述所說,我們給這個工程取名叫openvims為例,它的布局,也就是目錄結構如下:

    前面提到的.vimrc的管理問題在這裡通過Install.sh也解決了。

7. 驗證
    我已經在github上搭建了這個工程,取名openvims,地址:
    https://github.com/openproject/openvims
    驗證步驟如下:

// 首先,我們要做的就是clone成本地.vim目錄git clone https://github.com/openproject/openvims.git ~/.vim// 其次, 更新各vim外掛程式模組git submodule initgit submodule update// 最後,使用.vimrccd ~/.vim./Install.sh

    兩三步搞定了,現在你可以享受openvims帶來的便利了。
    開啟vim試試看,是不是有效果了。

8. 修改和升級
    修改檔案,使用git常規方法提交,上傳到伺服器即可。
    如果要增加新的vim外掛程式,使用如下命令:

// 以nerdtree為例,在.vim目錄下執行git submodule add https://github.com/scrooloose/nerdcommenter.git bundle/nerdcommenter

    如果更新外掛程式的話,update即可

// 在.vim目錄下git submodule update

    如果刪除目錄的話,刪除bundle下的外掛程式的檔案夾,然後手動修改.gitmodule,只能這樣了,最後記得提交到伺服器上去。

9.  幾個外掛程式說明
    (1).supertab
        這個外掛程式是我的最愛,easy完成你的自動完成。
        裝vim外掛程式,我是第一個裝這個外掛程式(不算vim外掛程式管理外掛程式pathogen)
    (2).file-line
        很方便的一個小外掛程式,讓你直接開啟檔案並跳到某一行,你唯一要做的就是在檔案參數後附加":number",number表示你的行數。
        應用情境:


        比如在某工程下使用jgrep尋找Browser字串,結果如下
        在316行有一個結果,安裝此外掛程式後,我們可以直接使用如下命令跳到316行:

vim ./src/com/android/mms/ui/MessageListItem.java:316

    (3).nerdtree
        樹形工程瀏覽視圖,很好用,效果如,這個外掛程式的官方說明文檔很詳細,這裡就不多說。

        針對工程用nerdtree開啟的問題,我有個小小的經驗之談。
        (3.1).你可以使用vim +NERDTree就能快速以nerdtree開啟目前的目錄
        (3.2).使用別名,快速在任何地方開啟某一工程,舉例:在.bashrc中定義alias openpro='cd /workspace/project; vim +NERDTree'後,在任何目錄執行openpro就能開啟workspace目錄下的project這個工程了。
        (3.3).配置快速鍵,比如F2等。
    (4).nerdcommenter
        快速注釋的外掛程式,習慣使用之後還真離不開這個外掛程式了,"\" + "c" + " ",現在用的挺順手的了。
    (5).tabular
        對齊外掛程式,很方便。
        行選擇,然後:Tabularize/=,則把所選行的=全部對齊。在寫代碼定義變數的時候還是經常用到的。
        不多說,截個圖看看效果吧:


    (6).space
        使用空格重複外掛程式,很聰明的一個外掛程式,比.要強大,.只是重複上一個edit motion。
        小外掛程式,用過之後相信你會喜歡的。
    後續有什麼好用的外掛程式,我會補充添加,也歡迎大家回複推薦一些好用的vim外掛程式。

10. 小結
    vim的外掛程式提供了強大的擴充,但是如同工具的Setting設定檔(不過更複雜一些),每類人總是有自訂的方案,並且希望把這個自訂的配置方案能夠儲存。
    對於vim外掛程式,因為多而繁,又最好能夠升級,本文提供了一個簡單的方案,希望能協助到一些vimer吧。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.