• <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學到了這些,如果有新學到的知識,我再補充。

            人妻少妇久久中文字幕一区二区| 7国产欧美日韩综合天堂中文久久久久 | 欧美亚洲日本久久精品| 国产精品久久午夜夜伦鲁鲁| 一本色道久久99一综合| 久久人人添人人爽添人人片牛牛| 久久久国产精华液| 久久久久综合国产欧美一区二区| 久久精品国产精品青草app| 久久天天躁狠狠躁夜夜avapp | 久久亚洲精品国产亚洲老地址| 久久久久人妻精品一区三寸蜜桃| 久久国产影院| 国产精品亚洲综合久久| 久久精品人妻中文系列| 亚洲精品tv久久久久久久久| 婷婷久久香蕉五月综合加勒比| 欧美喷潮久久久XXXXx| 国产情侣久久久久aⅴ免费| 精品久久香蕉国产线看观看亚洲| 久久免费小视频| 久久国产成人午夜aⅴ影院| 亚洲精品视频久久久| 一本久久综合亚洲鲁鲁五月天| 国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 | 亚洲国产成人精品91久久久| 97香蕉久久夜色精品国产| 色偷偷偷久久伊人大杳蕉| 国产精品久久久久久久| 国产午夜电影久久| 青青草原综合久久大伊人| 久久婷婷五月综合色奶水99啪| 久久精品国产亚洲一区二区| 看全色黄大色大片免费久久久| 久久久久久久女国产乱让韩| 久久久久久综合一区中文字幕| 久久综合九色综合久99| 久久亚洲精品成人av无码网站| A级毛片无码久久精品免费| 欧美伊人久久大香线蕉综合| 99精品久久精品一区二区|