• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            聚星亭

            吾笨笨且懶散兮 急須改之而奮進
            posts - 74, comments - 166, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            當我們新創建一個工程的時候(就是新建一個.VimEntry文件⊙﹏⊙b),打開工程,總會有許多默認的配置被寫到這個文件中,我想你一定很納悶這些數據都代表啥含義,也一定像我一樣,想更改這些配置,來讓我們的exVIM更符合自己的要求。OK,不多廢話,讓我們開始吧。

            exVim是通過一個名曰: exEnvironment的插件來實現將這些默認的配置信息拷貝到.VimEntry文件中的,所以,我們就從這個插件下手,應該沒錯。

            一、 VimEntry文件的語法

            是的,如果你找到并打開\vimfiles\plugin\exEnvironmentSetting.vim這個文件,你肯定也很確定,我們找對地方了。不管你動不動英文,只看里面的結構和大致的內容,我們都能猜的到,它在干什么。

            由于大多中國人都不喜歡看說明文檔,所以我這里大致在說明下這個插件使用方法:

            exEnvironment插件會給每個=號后的值創建一個全局變量,變量名要以g:exES開頭,比如我們在.VimEntry文件定義如下:

            Variable1='this is a test'

            這時,exEnvironment會創建一個名為g:exES_Variable1的變量,它的值是'this is a test'

            exEnvironment也支持字符串列表,我們只需要用+=來代替=就可以了。比如:

            List1+='item1' 

            List1+='item2' 

            List1+='item3'

            需要說明的是,exEnvironment 只能解析字符串。接下來怎么修改,就看大家的情況了。你可以只修改工程的VimEntry文件,也可以直接修改它的模板。

            二、 配置VimEntry文件

            倘若你認真的看過VimEntry文件。你一定發現了下面這段配置信息

            -- auto-gen settings (DO NOT MODIFY) --

            CWD=D:/exDev/Project/FirstPlg

            Version=23

            VimEntryName=FirstPlg

            VimfilesDirName=_vimfiles_FirstPlg

            這段配置信息每次啟動exVIM時都會被加載,雖然上面寫著不需要修改,但是如果我們要更新VimEntry,就可以修改一下這個地方,exEnvironment會自動檢測這個這里是否是合適的配置,如果不是,exEnvironment就會將這里重寫這個配置。當然這里一般情況下還是不修改的好,否則代價就是丟失當前工程的配置信息。

            OK,不廢話,我們進入正題,講述下VimEntry文件中我們不曉得的一些配置選項。

            1、 LangType選項

            該選項來控制exVIM能識別那些語言類型,一般默認情況下,這個選項的配置如下:

            -- ex-plugins File Settings --

            LangType=auto

            也就是說他自動的識別一些默認類型,默認情況下,這個配置是在 g:exES_UpdateEnvironment中寫好的:

                " set default language type map

                if exists('g:exES_LangType')

                    if g:exES_LangType != 'auto'   " if auto, we use default language map.

                        let lang_list = split( g:exES_LangType, ',' )

                        silent call exUtility#SetProjectFilter ( "file_filter", exUtility#GetFileFilterByLanguage (lang_list) )

                    endif

                endif

            file_filter中的內容可以在:D:\exDev\exVim\toolkit\quickgen\bash\quick_gen_project.sh中找到:

            file_filter="c|cpp|cxx|c\+\+|C|cc|h|H|hh|hxx|hpp|inl|cs|uc|hlsl|vsh|psh|fx|fxh|cg|shd|glsl|py|pyw|vim|awk|m|dox|doxygen|ini|cfg|wiki|mk|err|exe|bat|sh"

            只要我們按照我們的配置來設定,去掉auto,寫上你需要特殊處理的語言類型就可以了。比如:

            LangType= asm, lua, c

            當然這個選項也不能亂填,默認的這個選項后面可以填寫如下的內容:

            c,cpp,c#,shader,python,vim,math,uc,javascript,java,html,lua

            如果你要讓exVIM支持一種新的語言類型,可以參考后面的內容。

            2、 vimentryRefs

            通過這個選項我們可以引用其它vimentry的配置到當前的工程中。比如繼承其它vimentry 的tags文件,符號信息等。

            當然這個選項也很簡單,只要將要引用的vimentry文件的路徑添加上就可以了。比如:

            vimentryRefs+= D:\exDev\Project\kllan\kllan.vimentry

            vimentryRefs+= D:\exDev\Project\SqlLib\Sqlib.vimentry

            3、 Restore Buffer 

            這個選項是說明,當我們打開一個vimentry文件時,是否恢復到上次的使用上下文。如果設置為:"RestoreBuffer=true"保存并退出exVim,當你下次打開這個工程師,就會提示你是否恢復到上次退出時的環境。

            當然,如果不想要這個功能,只要將這個選項設置為false就可以了。

            三、 添加一種新的語言類型

            我們在本章一開頭寫到過如何設置LangType選項,但是這個后面僅能跟已經支持過的語言類型,倘若我們現在要讓exVIM支持一個新的語言類型(比如我們自己寫的一套腳本引擎,要想用exVIM作為它的開發環境)的話就要在以下幾個方面做修改。

            1、 添加新的exVIM語言映射

            據說明書上說,ExVIM默認支持如下一些語言類型:

            Language Type

            File Type

            asm

            asm, ASM

            awk

            awk, gawk, mawk

            batch

            bat

            c

            c, C

            cpp

            c++, cc, cp, cpp, cxx, h, H, h++, hh, hp, hpp, hxx, inl, ipp

            c#

            cs

            doxygen

            dox, doxygen

            debug

            log, err, exe

            html

            htm, html

            ini

            ini, cfg

            java

            java

            javascript

            js

            lua

            lua

            make

            mak, mk, Makefile, makefile

            math

            m

            python

            py, pyw, pyx, pxd

            ruby

            rb, ruby

            sh

            sh, SH, bsh, bash, ksh, zsh

            shader

            hlsl, vsh, psh, fx, fxh, cg, shd, glsl

             uc

            uc

            vim

            vim

            wiki

            wiki

            xml

            xml

            當我們設置LangType選項為auto時,exVIM將通過exProject插件以” File Type”為過濾條件來獲取相應的語言類型。如果LangType選項被設置為某一個具體的語言時(比如: LangType=c,cpp,python),則exVIM將找到這個文件類型并將它應用的exProject的文件過濾中和quick_gen_project腳本中。

            如果你要添加一個新的語言映射,你可以使用:

            function exUtility#AddLangMaplangmap_typelang_typefile_type_list )

            "langmap_type" 這個值可以設置為"exvim"或者"ctags",稍后我們在講'ctags'的情況,這里我們設置為'exvim' 

            "lang_type"這里就填 語言類型(也就是上面表中的 language type) ,如果這里填寫的不是上面表中存在的語言類別。那它就會在表中新建一項

            "file_type_list"就填我們要添加的文件類型,如果文件類型已經存在了,這個函數將跳過這個選項。

            比如,我們要給JavaScript語言添加一個as的文件類型,就可以這樣:

            call exUtility#AddLangMap ( 'exvim', 'javascript', ['as'] )

            你也可以用這個函數來重新這個文件類型的映射,它將用新的文件類型覆蓋已經存在的映射項目:

            function exUtility#ResetLangMaplangmap_typelang_typefile_type_list )

            2、 添加ctags的語言映射

            Ctags也有它自己的語言映射表,如下:

            Language Type

            File Type

            asm

            asm, ASM, s, S, A51

            asp

            asp, asa

            awk

            awk, gawk, mawk

            basic

            bas, bi, bb, pb

            beta

            bet

            c

            c

            cpp

            c++, cc, cp, cpp, cxx, h, h++, hh, hp, hpp, hxx

            c#

            cs

            cobol

            cbl, cob, CBL, COB

            eiffel

            e

            erlang

            erl, ERL, hrl, HRL

            fortran

            fo, ft, f7, f9, f95

            html

            htm, html

            java

            java

            javascript

            js

            lisp

            cl, clisp, el, l, lisp, lsp, ml

            lua

            lua

            make

            mak, mk, Makefile, makefile

            pascal

            p, pas

            perl

            pl, pm, plx, perl

            php

            php, php3, phtml

            python

            py, pyx, pxd, scons

            rexx

            cmd, rexx, rx

            ruby

            rb, ruby

            scheme

            SCM, SM, sch, scheme, scm, sm

            sh

            sh, SH, bsh, bash, ksh, zsh

            slang

            sl

            sml

            sml, sig

            sql

            sql

            tcl

            tcl, tk, wish, itcl

            vera

            vr, vri, vrh

            verilog

            v

            vim

            vim

            yacc

            y

            如果我們要添加新的語言映射,方法跟添加exVIM語言映射一樣。只是第一個參數填寫:’ ctags’

            3、 cscope支持新的文件類型

            Cscope本來是用來分析C程序的,有時人們用他來分析C++或者匯編程序。要想讓cscopeexVim中支持新添加的語言。你只需要在g:ex_cscope_langs中添加新的語言類型就可以了。默認情況下,g:ex_cscope_langs的內容是:

            let g:ex_cscope_langs = ['c', 'cpp''shader''asm' ] 

            四、 更多的配置信息

            現在只通過wiki學到了這些,如果有新學到的知識,我再補充。

            国产激情久久久久影院老熟女免费| 欧美精品福利视频一区二区三区久久久精品 | 久久国产V一级毛多内射| 91精品国产高清久久久久久91| 国产精品美女久久久久AV福利 | 精品免费久久久久久久| 97久久精品人人做人人爽| 蜜臀久久99精品久久久久久| 久久永久免费人妻精品下载| 91精品国产高清久久久久久91 | 色狠狠久久AV五月综合| 国产农村妇女毛片精品久久| 亚洲第一极品精品无码久久| 国内精品久久久久久久亚洲| 久久男人Av资源网站无码软件| 亚洲成色999久久网站| 新狼窝色AV性久久久久久| 久久www免费人成看国产片| 精品无码久久久久国产| 久久AV高潮AV无码AV| 久久久久亚洲精品天堂久久久久久| 热re99久久精品国99热| 超级碰碰碰碰97久久久久| 91麻精品国产91久久久久| 久久综合综合久久97色| 久久综合九色综合网站| 中文字幕无码久久人妻| 久久人人爽人人澡人人高潮AV| 欧美伊香蕉久久综合类网站| 国产精品久久永久免费| 91精品国产乱码久久久久久| 天堂久久天堂AV色综合| 亚洲国产精品无码久久一区二区| 亚洲人成电影网站久久| 99久久国产亚洲综合精品| 老司机午夜网站国内精品久久久久久久久 | 亚洲精品乱码久久久久久按摩 | 亚洲国产精品狼友中文久久久| 久久综合九色欧美综合狠狠| 亚洲精品无码久久久久AV麻豆| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 |