• <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>

            聚星亭

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

            當(dāng)我們新創(chuàng)建一個(gè)工程的時(shí)候(就是新建一個(gè).VimEntry文件⊙﹏⊙b),打開(kāi)工程,總會(huì)有許多默認(rèn)的配置被寫(xiě)到這個(gè)文件中,我想你一定很納悶這些數(shù)據(jù)都代表啥含義,也一定像我一樣,想更改這些配置,來(lái)讓我們的exVIM更符合自己的要求。OK,不多廢話,讓我們開(kāi)始吧。

            exVim是通過(guò)一個(gè)名曰: exEnvironment的插件來(lái)實(shí)現(xiàn)將這些默認(rèn)的配置信息拷貝到.VimEntry文件中的,所以,我們就從這個(gè)插件下手,應(yīng)該沒(méi)錯(cuò)。

            一、 VimEntry文件的語(yǔ)法

            是的,如果你找到并打開(kāi)\vimfiles\plugin\exEnvironmentSetting.vim這個(gè)文件,你肯定也很確定,我們找對(duì)地方了。不管你動(dòng)不動(dòng)英文,只看里面的結(jié)構(gòu)和大致的內(nèi)容,我們都能猜的到,它在干什么。

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

            exEnvironment插件會(huì)給每個(gè)=號(hào)后的值創(chuàng)建一個(gè)全局變量,變量名要以g:exES開(kāi)頭,比如我們?cè)?/font>.VimEntry文件定義如下:

            Variable1='this is a test'

            這時(shí),exEnvironment會(huì)創(chuàng)建一個(gè)名為g:exES_Variable1的變量,它的值是'this is a test'

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

            List1+='item1' 

            List1+='item2' 

            List1+='item3'

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

            二、 配置VimEntry文件

            倘若你認(rèn)真的看過(guò)VimEntry文件。你一定發(fā)現(xiàn)了下面這段配置信息

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

            CWD=D:/exDev/Project/FirstPlg

            Version=23

            VimEntryName=FirstPlg

            VimfilesDirName=_vimfiles_FirstPlg

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

            OK,不廢話,我們進(jìn)入正題,講述下VimEntry文件中我們不曉得的一些配置選項(xiàng)。

            1、 LangType選項(xiàng)

            該選項(xiàng)來(lái)控制exVIM能識(shí)別那些語(yǔ)言類(lèi)型,一般默認(rèn)情況下,這個(gè)選項(xiàng)的配置如下:

            -- ex-plugins File Settings --

            LangType=auto

            也就是說(shuō)他自動(dòng)的識(shí)別一些默認(rèn)類(lèi)型,默認(rèn)情況下,這個(gè)配置是在 g:exES_UpdateEnvironment中寫(xiě)好的:

                " 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中的內(nèi)容可以在: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"

            只要我們按照我們的配置來(lái)設(shè)定,去掉auto,寫(xiě)上你需要特殊處理的語(yǔ)言類(lèi)型就可以了。比如:

            LangType= asm, lua, c

            當(dāng)然這個(gè)選項(xiàng)也不能亂填,默認(rèn)的這個(gè)選項(xiàng)后面可以填寫(xiě)如下的內(nèi)容:

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

            如果你要讓exVIM支持一種新的語(yǔ)言類(lèi)型,可以參考后面的內(nèi)容。

            2、 vimentryRefs

            通過(guò)這個(gè)選項(xiàng)我們可以引用其它vimentry的配置到當(dāng)前的工程中。比如繼承其它vimentry 的tags文件,符號(hào)信息等。

            當(dāng)然這個(gè)選項(xiàng)也很簡(jiǎn)單,只要將要引用的vimentry文件的路徑添加上就可以了。比如:

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

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

            3、 Restore Buffer 

            這個(gè)選項(xiàng)是說(shuō)明,當(dāng)我們打開(kāi)一個(gè)vimentry文件時(shí),是否恢復(fù)到上次的使用上下文。如果設(shè)置為:"RestoreBuffer=true"保存并退出exVim,當(dāng)你下次打開(kāi)這個(gè)工程師,就會(huì)提示你是否恢復(fù)到上次退出時(shí)的環(huán)境。

            當(dāng)然,如果不想要這個(gè)功能,只要將這個(gè)選項(xiàng)設(shè)置為false就可以了。

            三、 添加一種新的語(yǔ)言類(lèi)型

            我們?cè)诒菊乱婚_(kāi)頭寫(xiě)到過(guò)如何設(shè)置LangType選項(xiàng),但是這個(gè)后面僅能跟已經(jīng)支持過(guò)的語(yǔ)言類(lèi)型,倘若我們現(xiàn)在要讓exVIM支持一個(gè)新的語(yǔ)言類(lèi)型(比如我們自己寫(xiě)的一套腳本引擎,要想用exVIM作為它的開(kāi)發(fā)環(huán)境)的話就要在以下幾個(gè)方面做修改。

            1、 添加新的exVIM語(yǔ)言映射

            據(jù)說(shuō)明書(shū)上說(shuō),ExVIM默認(rèn)支持如下一些語(yǔ)言類(lèi)型:

            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

            當(dāng)我們?cè)O(shè)置LangType選項(xiàng)為auto時(shí),exVIM將通過(guò)exProject插件以” File Type”為過(guò)濾條件來(lái)獲取相應(yīng)的語(yǔ)言類(lèi)型。如果LangType選項(xiàng)被設(shè)置為某一個(gè)具體的語(yǔ)言時(shí)(比如: LangType=c,cpp,python),則exVIM將找到這個(gè)文件類(lèi)型并將它應(yīng)用的exProject的文件過(guò)濾中和quick_gen_project腳本中。

            如果你要添加一個(gè)新的語(yǔ)言映射,你可以使用:

            function exUtility#AddLangMaplangmap_typelang_typefile_type_list )

            "langmap_type" 這個(gè)值可以設(shè)置為"exvim"或者"ctags",稍后我們?cè)谥v'ctags'的情況,這里我們?cè)O(shè)置為'exvim' 

            "lang_type"這里就填 語(yǔ)言類(lèi)型(也就是上面表中的 language type) ,如果這里填寫(xiě)的不是上面表中存在的語(yǔ)言類(lèi)別。那它就會(huì)在表中新建一項(xiàng)

            "file_type_list"就填我們要添加的文件類(lèi)型,如果文件類(lèi)型已經(jīng)存在了,這個(gè)函數(shù)將跳過(guò)這個(gè)選項(xiàng)。

            比如,我們要給JavaScript語(yǔ)言添加一個(gè)as的文件類(lèi)型,就可以這樣:

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

            你也可以用這個(gè)函數(shù)來(lái)重新這個(gè)文件類(lèi)型的映射,它將用新的文件類(lèi)型覆蓋已經(jīng)存在的映射項(xiàng)目:

            function exUtility#ResetLangMaplangmap_typelang_typefile_type_list )

            2、 添加ctags的語(yǔ)言映射

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

            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

            如果我們要添加新的語(yǔ)言映射,方法跟添加exVIM語(yǔ)言映射一樣。只是第一個(gè)參數(shù)填寫(xiě):’ ctags’

            3、 cscope支持新的文件類(lèi)型

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

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

            四、 更多的配置信息

            現(xiàn)在只通過(guò)wiki學(xué)到了這些,如果有新學(xué)到的知識(shí),我再補(bǔ)充。

            97久久精品午夜一区二区| 亚洲va久久久噜噜噜久久| 久久青青草原精品影院| 青草国产精品久久久久久| 国产香蕉久久精品综合网| 久久青青国产| 国产精品一区二区久久不卡 | 99久久精品毛片免费播放| 久久久久av无码免费网| 久久亚洲国产精品成人AV秋霞| 日韩美女18网站久久精品| 久久久久噜噜噜亚洲熟女综合| 国内精品久久久久国产盗摄| 免费观看久久精彩视频| 亚洲国产精品人久久| 欧美久久综合性欧美| 色综合合久久天天综合绕视看 | 久久这里只有精品视频99| 久久性生大片免费观看性| 日韩精品无码久久一区二区三| 青青草国产97免久久费观看| 中文成人无码精品久久久不卡| 国产精品久久久久免费a∨| 久久午夜无码鲁丝片秋霞 | 久久人妻无码中文字幕| 久久久久久久久久久| 久久久久久A亚洲欧洲AV冫| 日韩AV毛片精品久久久| 国产精品久久新婚兰兰| 久久久久亚洲AV无码永不| 精品国产一区二区三区久久久狼| 99精品久久精品一区二区| 999久久久国产精品| 久久亚洲天堂| 一本久久久久久久| 999久久久免费精品国产| 精品国产综合区久久久久久| 中文字幕无码久久久| 蜜臀久久99精品久久久久久小说| 精品久久久久久久| 欧美大香线蕉线伊人久久|