<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    CONAN ZONE

    你越掙扎我就越興奮

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      0 Posts :: 282 Stories :: 0 Comments :: 0 Trackbacks

    本節(jié)所用命令的幫助入口:


     :help compatible
    :help mapleader
    :help map
    :help autocmd
     


    為什么我的VIM這么難用?不能語(yǔ)法高亮,沒(méi)有折行,不能打開(kāi)多個(gè)窗口多個(gè)buffer,不能……

    為什么別人用幾個(gè)鍵就可以完成一個(gè)很復(fù)雜的功能,而我不能?

    為什么別人的VIM看起來(lái)和我的很不一樣?

    ……

    當(dāng)你開(kāi)始問(wèn)這些問(wèn)題的時(shí)候,是時(shí)候去檢查一下你的vimrc了。

    當(dāng)VIM在啟動(dòng)時(shí),如果沒(méi)有找到vimrc或gvimrc,它缺省工作VI兼容的模式。這意味著,你只能使用VI所具備的功能,而VIM中的大量擴(kuò)展功能將無(wú)法使用。也許這就是你的VIM如此難用的原因。

    VIM中自帶了一個(gè)vimrc例子,讓我們從這個(gè)例子開(kāi)始吧。

    下面我以Linux下的VIM為例,windows版本的VIM,會(huì)在后面提到。

    示例的vimrc(名為vimrc_example.vim)通常位于/usr/share/vim/vimXXX/目錄下,其中vimXXX與你所使用的VIM版本有關(guān)。

    首先把這個(gè)示例的vimrc拷貝到相應(yīng)的目錄,在Linux下,應(yīng)該把它拷貝到你的home目錄下,名字為”.vimrc”,下面是shell命令:


    cp /usr/share/vim/vim70/vimrc_example.vim ~/.vimrc

    或者你在VIM中執(zhí)行下面的命令,和上面的shell命令完成相同的功能:

    :!cp $VIMRUNTIME/vimrc_example.vim ~/.vimrc

    現(xiàn)在,你退出VIM后再進(jìn)入,你的VIM和剛才已經(jīng)不一樣了。

    你可以先讀一下你的vimrc,看看它都設(shè)定了什么:

    :e ~/.vimrc

    這是一個(gè)注釋良好的文件,不需要多解釋。

    對(duì)windows版本的VIM,它已經(jīng)缺省的有了一個(gè)vimrc,你可以在VIM在使用下面的命令來(lái)查看它:


    :e $VIM/_vimrc


    在這個(gè)文件中,它包含了上面提到的vimrc_example.vim。同時(shí),它會(huì)把VIM設(shè)置的更符合windows的操作習(xí)慣。比如,支持CTRL-C拷貝,CTRL-V粘貼等等。Windows下的用戶,可以使用$VIM/_vimrc來(lái)做為你的第一個(gè)vimrc。

    順便提一句,在unix/linux中,文件名可以以”.”開(kāi)頭,表明此文件是隱藏的。而在windows中,不允許文件名以”.”開(kāi)頭,所以,windows版本的VIM,將讀取_vimrc來(lái)做為自己的配置文件。

    在今后使用VIM的日子里,你會(huì)頻繁的更改你的vimrc。所以我們需要設(shè)置一些快捷方式,使我們能快速的訪問(wèn)vimrc。

    把下面這段內(nèi)容拷貝到你的vimrc中:


    1    "Set mapleader
    2    let mapleader = ","
    3
    4    "Fast reloading of the .vimrc
    5    map <silent> <leader>s :source ~/.vimrc<cr>
    6    "Fast editing of .vimrc
    7    map <silent> <leader>e :e ~/.vimrc<cr>
    8    "When .vimrc is edited, reload it
    9    autocmd! bufwritepost .vimrc source ~/.vimrc

    為了方便解釋,我給每一行都加了一個(gè)行號(hào)。

    在vimrc中,雙引號(hào)開(kāi)頭的行,將被當(dāng)作注釋忽略。

    第2行,用來(lái)設(shè)置mapleader變量,當(dāng)mapleader為未設(shè)置或?yàn)榭諘r(shí),使用缺省的“\”來(lái)作為mapleader。

    mapleader變量是作用是什么呢?我們先看下面。

    第5行定義了一個(gè)映射,這個(gè)映射把“<leader>s”,映射為命令“:source ~/.vimrc<cr>”。當(dāng)定義一個(gè)映射時(shí),可以使用<Leader>前綴。而在映射生效時(shí),VIM會(huì)把<Leader>替換成mapleader變量的值。也就是說(shuō),我們這里定義的“<leader>s”,在使用時(shí)就變成了“,s”,當(dāng)輸入這一快捷方式時(shí),就會(huì)source一次~/.vimrc文件(也就是重新執(zhí)行一遍.vimrc文件)。

    第7行,定義了“<leader>e”快捷鍵,當(dāng)輸入“,e”時(shí),會(huì)打開(kāi)~/.vimrc進(jìn)行編輯。

    第9行,定義了一個(gè)自動(dòng)命令,每次寫(xiě)入.vimrc后,都會(huì)執(zhí)行這個(gè)自動(dòng)命令,source一次~/.vimrc文件。

    有了上面的快捷鍵,我們就能快速的打開(kāi)vimrc文件編輯,快速重新source vimrc文件,方便多了。
     

    無(wú)論在windows還是在linux中,我都使用VIM作為我的缺省編輯器。并且,我想使用同一個(gè)vimrc文件。因此,我定義了一個(gè)MySys()函數(shù),用來(lái)區(qū)分不同的平臺(tái),以進(jìn)行不同的配置。

    另外,在編輯vimrc文件時(shí),我更喜歡新開(kāi)一個(gè)標(biāo)簽頁(yè)來(lái)編輯,而不是在當(dāng)前窗口中。因此,我定義了SwitchToBuf()函數(shù),它在所有標(biāo)簽頁(yè)的窗口中查找指定的文件名,如果找到這樣一個(gè)窗口,就跳到此窗口中;否則,它新建一個(gè)標(biāo)簽頁(yè)來(lái)打開(kāi)vimrc文件。

    下面是我的vimrc中使用的設(shè)定,希望能夠拋磚引玉:

     

    " Platform
    function! MySys()
      return "linux"
    endfunction

    " Switch to buffer according to file name
    function! SwitchToBuf(filename)
        let fullfn = substitute(a:filename, "^\\~/", $HOME . "/", "")
        " find in current tab
        let bufwinnr = bufwinnr(fullfn)
        if bufwinnr != -1
            exec bufwinnr . "wincmd w"
            return
        else
            " find in each tab
            tabfirst
            let tab = 1
            while tab <= tabpagenr("$")
                let bufwinnr = bufwinnr(fullfn)
                if bufwinnr != -1
                    exec "normal " . tab . "gt"
                    exec bufwinnr . "wincmd w"
                    return
                endif
                tabnext
                let tab = tab + 1
            endwhile
            " not exist, new tab
            exec "tabnew " . fullfn
        endif
    endfunction

    "Fast edit vimrc
    if MySys() == 'linux'
        "Fast reloading of the .vimrc
        map <silent> <leader>s :source ~/.vimrc<cr>
        "Fast editing of .vimrc
        map <silent> <leader>e :call SwitchToBuf("~/.vimrc")<cr>
        "When .vimrc is edited, reload it
        autocmd! bufwritepost .vimrc source ~/.vimrc
    elseif MySys() == 'windows'
        "Fast reloading of the _vimrc
        map <silent> <leader>s :source ~/_vimrc<cr>
        "Fast editing of _vimrc
        map <silent> <leader>e :call SwitchToBuf("~/_vimrc")<cr>
        "When _vimrc is edited, reload it
        autocmd! bufwritepost _vimrc source ~/_vimrc
    endif

    注意:我在windows中也定義一個(gè)“HOME”環(huán)境變量,然后把_vimrc放在“HOME”環(huán)境變量所指向的目錄中。如果你打算在windows中使用上面的設(shè)定,也需要這樣做!

    VIM自帶的示例vimrc中,只定義最基本的配置。

    http://www.amix.dk/vim/vimrc.html有一個(gè)非常強(qiáng)大的vimrc,有人戲稱為“史上最強(qiáng)的vimrc”,或許有些言過(guò)其實(shí)。不過(guò),如果你通讀了這個(gè)vimrc,相信能從中學(xué)到很多很多……

    我的vimrc也是基于此模板,然后自已做了很多修改。

    建議:不要照拷這個(gè)vimrc!可能這個(gè)文件的設(shè)定并不符合你的習(xí)慣。另外,這個(gè)文件的設(shè)定,可能也不能在你的工作環(huán)境中運(yùn)行。

    http://blog.csdn.net/redguardtoo/archive/2006/09/03/1172136.aspx,有一個(gè)redguardtoo修改過(guò)的版本,可以對(duì)照參考一下。

     [參考文檔]

    1. VIM幫助文件
    2. http://vimcdoc.sourceforge.net/
    3. http://www.amix.dk/vim/vimrc.html

    來(lái)自:http://blog.csdn.net/easwy/archive/2007/02/26/1514639.aspx

    posted on 2009-04-08 21:45 CONAN 閱讀(257) 評(píng)論(0)  編輯  收藏 所屬分類: VIM
    主站蜘蛛池模板: 国产片免费福利片永久| 亚洲精品视频专区| 亚洲视频国产精品| 久青草视频在线观看免费| 国产人在线成免费视频| 亚洲精品国产精品乱码在线观看| 亚洲狠狠婷婷综合久久| 免费A级毛片无码A∨| 亚洲日韩精品A∨片无码| 看一级毛片免费观看视频| 黄在线观看www免费看| 亚洲gv白嫩小受在线观看| 亚欧乱色国产精品免费视频| 国产大片51精品免费观看| 免费在线黄色电影| 伊人婷婷综合缴情亚洲五月| 91av免费在线视频| 亚洲国产成人久久三区| 国产免费女女脚奴视频网| 免费在线人人电影网| 亚洲欧洲一区二区三区| 成人免费观看男女羞羞视频| 亚洲第一区在线观看| 两性色午夜免费视频| 亚洲综合久久综合激情久久 | 美女被免费网站视频在线| 免费真实播放国产乱子伦| 亚洲AV成人无码久久WWW| 国产成人无码免费视频97| 日本在线看片免费人成视频1000| 国产亚洲精品美女久久久久| 亚洲三级在线免费观看| 在线观看成人免费视频| 亚洲av无码专区在线电影天堂| 亚洲AV无码一区二区乱子伦 | 五月婷婷综合免费| 日韩精品无码免费专区网站| 黄色一级免费网站| 亚洲精品无码成人片久久不卡| 国产成人免费a在线视频app| 国产精品视频免费|