• <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++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

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

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

            一、 VimEntry文件的語法

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

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

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

            Variable1='this is a test',

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

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

            List1+='item1' 

            List1+='item2' 

            List1+='item3'

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

            二、 配置VimEntry文件

            倘若你認(rèn)真的看過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ì)被加載,雖然上面寫著不需要修改,但是如果我們要更新VimEntry,就可以修改一下這個(gè)地方,exEnvironment會(huì)自動(dòng)檢測(cè)這個(gè)這里是否是合適的配置,如果不是,exEnvironment就會(huì)將這里重寫這個(gè)配置。當(dāng)然這里一般情況下還是不修改的好,否則代價(jià)就是丟失當(dāng)前工程的配置信息。

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

            1、 LangType選項(xiàng)

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

            -- ex-plugins File Settings --

            LangType=auto

            也就是說他自動(dòng)的識(shí)別一些默認(rèn)類型,默認(rèn)情況下,這個(gè)配置是在 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中的內(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"

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

            LangType= asm, lua, c

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

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

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

            2、 vimentryRefs

            通過這個(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)是說明,當(dāng)我們打開一個(gè)vimentry文件時(shí),是否恢復(fù)到上次的使用上下文。如果設(shè)置為:"RestoreBuffer=true"保存并退出exVim,當(dāng)你下次打開這個(gè)工程師,就會(huì)提示你是否恢復(fù)到上次退出時(shí)的環(huán)境。

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

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

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

            1、 添加新的exVIM語言映射

            據(jù)說明書上說,ExVIM默認(rèn)支持如下一些語言類型:

            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將通過exProject插件以” File Type”為過濾條件來獲取相應(yīng)的語言類型。如果LangType選項(xiàng)被設(shè)置為某一個(gè)具體的語言時(shí)(比如: LangType=c,cpp,python),則exVIM將找到這個(gè)文件類型并將它應(yīng)用的exProject的文件過濾中和quick_gen_project腳本中。

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

            function exUtility#AddLangMaplangmap_typelang_typefile_type_list )

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

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

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

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

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

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

            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語言映射一樣。只是第一個(gè)參數(shù)填寫:’ ctags’

            3、 cscope支持新的文件類型

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

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

            四、 更多的配置信息

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

            国内精品久久久久久久97牛牛| 2021国内精品久久久久久影院| 久久精品国产精品亚洲精品| 久久99精品国产麻豆不卡| 久久毛片一区二区| 久久久综合九色合综国产| 亚洲人成无码久久电影网站| 久久国产精品久久精品国产| 久久久久一本毛久久久| 青青草国产精品久久| 久久精品国产欧美日韩99热| 国产高潮国产高潮久久久| 一本久久综合亚洲鲁鲁五月天| 久久综合狠狠综合久久| 亚洲精品无码专区久久久| 日日狠狠久久偷偷色综合免费| 久久久黄片| 久久一本综合| 久久青草国产手机看片福利盒子| 久久亚洲AV成人无码| 四虎国产精品免费久久| 99久久精品国产一区二区蜜芽| 国产精品热久久毛片| 久久精品国产一区二区三区不卡| 2021少妇久久久久久久久久| 精品久久久久久久中文字幕| 99国产欧美精品久久久蜜芽| 久久久久亚洲av无码专区导航| 97久久精品无码一区二区| 日韩精品久久久久久久电影蜜臀 | 国产精品欧美久久久天天影视| 精品久久久久久久久久久久久久久| 久久人人爽爽爽人久久久| 中文字幕精品无码久久久久久3D日动漫| a级毛片无码兔费真人久久| 久久精品欧美日韩精品| 久久久久久亚洲Av无码精品专口| 亚洲中文字幕无码一久久区| 99久久中文字幕| 一级做a爰片久久毛片16| 国产AⅤ精品一区二区三区久久|