• <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ǔ)充。

            香港aa三级久久三级| 国产三级久久久精品麻豆三级| 久久精品人人做人人爽电影| 无码任你躁久久久久久老妇| 一本综合久久国产二区| 国产精品9999久久久久| 国产一区二区三区久久精品| 一本久久a久久精品综合香蕉 | 久久夜色撩人精品国产| 日韩精品久久久久久免费| 久久99精品综合国产首页| 国产成人AV综合久久| 久久超碰97人人做人人爱| 色妞色综合久久夜夜| 国产叼嘿久久精品久久| 久久只有这里有精品4| 精品久久久久久无码人妻热| 精品久久久久香蕉网| 久久人人超碰精品CAOPOREN | 热re99久久精品国产99热| 中文字幕人妻色偷偷久久| 欧美伊人久久大香线蕉综合69| 亚洲国产精品无码成人片久久| 7777精品伊人久久久大香线蕉| 国产一级做a爰片久久毛片| 欧美一区二区三区久久综合| 国产福利电影一区二区三区久久老子无码午夜伦不 | 无码国内精品久久综合88| 中文字幕成人精品久久不卡| 亚洲AV日韩AV天堂久久| 伊人久久大香线蕉综合热线| 国内精品久久久久久久涩爱| av午夜福利一片免费看久久| 色婷婷综合久久久久中文| 99精品国产免费久久久久久下载 | 久久精品国产69国产精品亚洲| 亚洲精品白浆高清久久久久久| 久久这里只有精品首页| 日韩亚洲国产综合久久久| 亚州日韩精品专区久久久| 色99久久久久高潮综合影院|