青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

花了點時間翻譯出來,有些地方還不是很清晰明了,主要是有些功能還尚未使用。下載 project中文幫助(也 可以將下文保存成project.txt文件)放到vim的doc目錄中,覆蓋原來的英文幫助。如果你不想覆蓋,你可以把原來的幫助文件移動到上層目錄或 其他地方,注意不要重命名放在doc目錄下,不然在使用helptags doc目錄產生tags時會提示tag重復的警告信息。以后使用: help project 出來的就是中文手冊了。時間倉促,翻譯的不好,不當或錯誤之處敬請各位看官指出來。

*project.txt*     一個用來管理多個項目及項目源代碼的插件
        支持版本: Vim 6.x 及 Vim7.x
        最后更新: 2006 年 10 月 13 日 星期五
        翻譯更新: 2007 年 08 月 16 日 星期五

                作者:Aric Blumer
                譯者:Denven

                              *project* *project-plugin*

    目錄:

        1.命令..............調出插件.............|project-invoking|
        2.繼承...........項目層層關系.........|project-inheritance|
        3.映射.............插件映射..............|project-mappings|
        4.添加映射.......為插件添加映射...|project-adding-mappings|
        5.設置..............項目設置.............|project-settings|
        6.樣例文件..........項目樣例..............|project-example|
        7.技巧..............使用技巧.................|project-tips|
 

使用這個插件的基本功能可以為你經常訪問的文件提供方便的瀏覽. 文件會在 Vim 左側
窗口列出來, 在文件名上按 <Return> 或者雙擊鼠標就可以打開相應的文件. 這比使用
|file-explorer| 去瀏覽多層目錄要更為便捷.

也可在選擇一個文件時候去讓插件更改目錄, 執行指定都 Vim 腳本. 這些腳本可以通過
修改 $PATH 來設定編譯器等的環境. 這在進行多項目開發時可以讓 quickfix 工作在不
同的環境中.

其他特性:
    o 在項目中實時加載或卸載文件(\l, \L, \w, and \W)
    o 在項目中所有文件進行全局搜索(\g and \G)
    o 對某一個文件單獨執行用戶指定的腳本(可以利用這個特寫來關聯一個文件到
      某一個外部程序) (使用\1 到 \9)
    o 對所有文件執行某個用戶指定的腳本(使用\f1-\f9 和 \F1-\F9)
    o 用戶高可定制性
    o 可以配合 |netrw| 插件使用 XXXX://... 管理遠程項目. XXXX 代表 ftp,
      rcp, scp, or http.

可以在一個單獨的純本文件中或在 vimrc 中設置幾個全局量變進行配置.

必須在 |vimrc| 文件中 set 'nocompatible' 才能使用這個插件. 也可以通過設置變量
"loaded_project" 來禁止插件被加載: >
    :let loaded_project = 1


==============================================================================
COMMANDS                        *project-invoking*

要使用本插件, 只需將其放置到 Vim 的插件目錄(~/.vim/plugin)即可. 參見
"|add-global-plugin|", 在下次打開 Vim 時, 輸入如下命令 >
    :Project
或者 >
    :Project {file}

如果沒有指定具體的項目文件, 那么會默認使用$HOME/.vimprojects文件.

命令: [g]vim +Project 可在 Vim 啟動時同時自動載入project插件窗口.

調出項目窗口時每次只能使用某一個文件, 如果想更改項目, 在項目窗口中運行:bwipe
刪除項目緩沖, 然后用 :Project {file} 重新載入新的項目.


可以在同一個文件中保留和顯示多個項目, 通過 {} (c參見 |fold.txt|) 來分隔. 在項目
中可以有任意多個嵌套的折疊. {} 中的每一行被當作一個文件名. 空行和 # 號后面的內
容將被忽略.

插件使用 Vim 標準的折疊方式, 支持所有的 |fold-commands| . 例如雙擊折疊的首行可
以打開或關閉該折疊. 通過光標定位到一個文件名后按回車鍵或者雙擊即可打開該文件,
插件會為在右側打開一個新窗口來顯示(如果映射了 |CTRL-W_p|, 也是等價的).

                                  *project-syntax*
                                           *語法*
項目入口描述形式:
project_entry ::=
    <Description>={projpath} [{options}] {
    [ filename ]
    [ project_entry ]
    }

{options} 可以是下面的一項或者幾項, 但必須放在同一行上.
    CD={path}
    in={filename}
    out={filename}
    filter="{pat}"
    flags={flag}

注意: 一個項目入口可以包含在另一個項目入口里面,    這意味著可以在項目中設置層次關系.

<Description> 項目描述. 不能含有"="字符. 在 =. 的兩邊不能有空字符. 它會顯示在折疊
行上.

{projpath} 項目路徑. 它指向項目文件所在目錄, 可以在里面使用環境變量. 如果是一個相
對路徑, 插件會根據項目的父目錄及其上層目錄等層次建立路徑, 但最外層的項目入口必須
是一個絕對路徑. 參見下面 |project-inheritance|的例子.可以在該項中使用空格, 但是要
轉義. 下面的兩個例子是針對同一個目錄的:
>
    Example=/my/directory/with\ spaces {
    }
    Example="/my/directory/with spaces" {
    }

推薦在 Windows 上這樣使用: >

    Example="c:\My Documents" {
    }

而 Vim 很聰明, 這樣做也是可以的: >

    Example=c:\My\ Documents {
    }

CD= 表示在項目中選定一個文件時 Vim 將要進入的目錄(相當于使用|:cd|). 這對在需要
使用本地 Makefile 文件進行編譯時, 如|:make| 非常有用. 使用 CD=. 表示 Vim 將
{projpath} 及其等價路徑設為當前工作目錄. 如果不設置 CD 的值將無法中在項目中進
行目錄都切換, 注意 "=" 的兩邊沒有空格. CD 參數也可以是來自其父目錄下都一個相對
路徑. 參考 |project-inheritance| 中的例子. 在使用 |netrw| 瀏覽項目時該指令將被
忽略. 在 {projpath} 中可以使用空格.

in= 和 out= 用來在進入或者退出文件緩沖時執行特定的 Vim 腳本. (參考 |BufEnter|
和 |BufLeave| 自動命令事件). 它可以使用 Vim 腳本來為項目設定或取消一定的環境.
例如:

in.vim: >
    let $PROJECT_HOME='~/my_project'
    " Put the compiler in $PATH
    if $PATH !~ '/path/to/my/compiler'
        let $PATH=$PATH.':/path/to/my/compiler'
    endif

out.vim: >
    " Remove compiler from $PATH
    if $PATH =~ '/path/to/my/compiler'
        let $PATH=substitute($PATH, ':/path/to/my/compiler', '', 'g')
    endif

在這種情況下, 在合適的環境下可以使用 :make 進行編譯你正在編輯的文件. 如果腳本中
使用的是相對路徑,  If the path to the script is relative, then it is
relative from {projpath}.
如果子項目沒有另行設定, 這些指令會被子項目繼承. 當配合 |netrw| 插件使用時, in=
和 out= 中的路徑必須是絕對路徑.

filter= 過濾符. 它指定一個全局的 |glob()| 文件匹配模式. 用于在使用 \r 時更新項目
窗口中的文件列表. 由于可能含有多個文件匹配模式, 必須使用雙引號將過濾符號串擴起
來. 如果不設置過濾符號, 插件默認使用通配符 * 來當做過濾符.注意"="前后不能含有空
格. 如果子項目沒有指定具體的過濾符, 子項目將會繼承父項目的過濾符.

flags= 標識位 為某個折疊設置(啟用/取消)具體的特性. 為了記憶方便, 通常使用小寫
的表示關閉某一特性, 大寫則表示開啟某一特性. {flag} 參數可以使用下面的字符標志位:

      標志位      描述 ~

    l    關閉由 \L 的遞歸. 對于子折疊的同樣也被關閉.

    r    關閉更新. 當對折疊使用了\r or \R 后不要進行更新.
            它不影響子目錄的遞歸.

    S    為刷新和創建項目開啟排序功能.

    s    關閉刷新和創建項目的排序功能.

    T    開啟更新項目時折疊處于當前折疊的正下方. 跟在全局變量
        g:proj_flags 中使用標志位等效, 但是不能針對多個折疊而言.

    t    關閉更新項目時折疊至當前折疊區域的最頂部功能. 強制折疊到底部.

    w    關閉 \W 的遞歸. 對于子折疊的同樣也被關閉.


在子項目不能沿用父項目中設定的這些標志.

只對當前折疊生效, 折疊外的文字不受其影響.


==============================================================================
INHERITANCE                         *project-inheritance*

通過下面兩個項目文件的對比來理解層次的含義:
>
    Parent=~/my_project CD=. filter="Make* *.mk" flags=r {
     Child1=c_code {
     }
     Child2=include CD=. filter="*.h" {
     }
    }

Child1 的路徑是 "~/my_project/c_code", 因為 Child1 繼承了 ~/my_project. 它還
繼承了 CD. 因為父層的 CD=., 所以對于父層的當前工作路徑是 "~/my_project". 那么
Child1 繼承過來的 CD 也是"~/my_project". 最后, Child1 從父層繼承過來過濾符.
而標志位則是不能繼承的,除非單獨設置.

Child2 只將 "~/my_project" 從父層繼承過來.

所以上述例子跟下面的展開是等價的:
>
    Parent=~/my_project CD=. filter="Make* *.mk" flags=r {
     Child1=~/my_project/c_code CD=~/my_project filter="Make* *.mk" {
     }
     Child2=~/my_project/include CD=~/my_project/include filter="*.h" {
     }
    }

(在一個實際的項目中, Child1 一般不會希望從父層繼承過濾符號, 該例子只是為了說明
 這個概念而已), 使用 \i 可以顯示當前光標下項目的層次關系.


==============================================================================
MAPPINGS                            *project-mappings*

映射    動作 ~

\r    根據過濾符更新光標處的項目.  更新項目, 每深入一層折疊縮進一個空格.

    如果在一行最后使用了 "# pragma keep" (不含雙引號), 那么該行將保留,
    不會被在更新時被刪除. 當使用 . 作為一個入口時, 進入當前目錄進行瀏覽
    相當方便, 通常對于這個有用的入口你肯定想在更新時被保留.
 
    注意這個映射是 <LocalLeader>r, Vim 默認使用 \ 作為|<LocalLeader>|.

    對于使用 |netrw| 瀏覽的項目不適用.

\R    遞歸執行 \r.
    對于使用 |netrw| 瀏覽的項目不適用.

\c    創建一個項目. 要求用戶輸入 項目描述, 文件路徑, CD 參數, 文件名匹配表達
        式 |glob()|. 插件會根據這些信息在光標下面建立一個項目的入口.

    對于使用 |netrw| 瀏覽的項目不適用.

\C    為目錄及其子目錄下的文件遞歸創建一個項目.

<Return>
    在前一窗口或者另外一個新窗口中打開光標處的文件. 如果光標位于折疊上,
    按此鍵打開或關閉折疊.

<S-Return>
\s
    跟 <Return> 一樣, 但會水平分割目標窗口.   
    使用 <LocalLeader>s 主要是為那些不能識別 <S-Return> 的終端而提供的.

\S
    加載所有文件到當前窗口, 當前窗口會被水平分割顯示所有文件.

<C-Return>
\o
    同 <Return> 在一個窗口中打開當前文件, 同時關閉其他所有打開的窗口.
    該映射保證該文件是除項目窗口以外其他唯一的窗口.
           <LocalLeader>o 主要是為那些不能識別 <C-Return> 的終端而提供的.

<M-Return>
\v
    同 <Return> 僅僅顯示文件內容, 而光標依然停留在項目窗口中.

<2-LeftMouse>
    (Double-click) 雙擊鼠標左鍵, 如果當前光標下是一個已經展開的折疊則關閉
    該折疊, 反之打開該折疊. 如果當前光標下為一個文件名, 則在|CTRL-W_p|(前
    一窗口)或項目右側新窗口中打開該文件.

<S-2-LeftMouse>
    同 <S-Return>.

<C-2-LeftMouse>
    同 <C-Return>.

<RightMouse>
    根據變量的值 g:proj_window_increment 增加項目窗口的寬度, 反復點擊則為
    在原寬度
            g:proj_window_width
    和增加后的寬度
            g:proj_window_width + g:proj_window_increment
    之間切換.

    是否能夠切換原窗口和寬窗口, 或手動改變窗口寬度均取決于全局變量
    g:proj_flags 中的標志位 't' 是否設置. (參見|project-flags|).

    注意在其他窗口中單擊鼠標時右鍵并不能自動將光標定位到項目窗口.
    在離開項目窗口后, 項目窗口寬度會變回到原寬度 g:proj_window_width.

<space> 同 <RightMouse>

<CTRL-Up>
\<Up>
    移動文本或者折疊到當前光標的上一行. 在有的終端中可能無法識別此綁定而失效.
    <LocalLeader><Up> 主要是為那些不能識別 <C-Up> 的終端而提供的.

<CTRL-Down>
\<Down>
    移動文本或者折疊到當前光標的下一行. 在有的終端中可能無法識別此綁定而失效.
    <LocalLeader><Down> 主要是為那些不能識別 <C-Down>.

\i    在狀態欄中顯示光標所在折疊完全解析和繼承的參數. 
    這是專門為手動進入項目時進行相對路徑和繼承參數的調試而映射的.

\I    在狀態欄顯示光標下文件名的全名(含路徑). 此功能是插件調用
    Project_GetFname(line('.'))函數來實現的.

\1 - \9
    執行在 g:proj_run{x} 指定的命令, {x} 是執行命令入口的編號.
    參考下文中的 g:proj_run1.

\f1-\f9
    執行 g:proj_run_fold{x} 中指定的命令, {x} 執行命令入口的編號, 命令只針
    對當前項目層的文件. 參考下文中的|project-settings|.

\F1-\F9
    執行 g:proj_run_fold{x} 中指定的命令, {x} 是執行命令入口的編號. 對當前
    項目層及其所有子項目的所有文件執行命令. 參考下文中的 |project-settings|

\0    顯示由 \1 到 \9 定義的命令.

\f0    顯示由 \f1 到 \f9 和 \F1 到 \F9 所定義的命令. \F0 作用與此相同.

\l    加載當前項目中的所有文件到 Vim 中, 在加載過程中按任何鍵可以停止加載.

\L    加載當前項目及其子項目中的所有文件到 Vim 中. 請謹慎使用這個映射, 作者并
        不建議在項目中含有成千上萬的文件時使用該映射. (順便提一句, 我的項目中有
    5,300 多個文件!) 在加載過程中按任何鍵可以停止加載.

\w    刪除當前項目層次中的所有文件. (并非真正刪除文件, 只針對該項目組織而言.
    如果文件被修改, 會先保存文件.) 擦除過程中按任意鍵可以停止此操作.

\W    刪除當前項目層及其子層次中的所有文件. (并非真正刪除文件, 只針對該項目組
    織而言.    如果文件被修改, 會先保存文件.) 擦除過程中按任意鍵可以停止此操作.

\g    搜索當前項目層所有文件.

\G    搜索項目所有層所有文件.

\e    為先通過 <Return> 選擇的項目文件設置環境變量. 例如在 \e 設定環境變量后,
    無需打開項目中的任何文件便可用 :make 來進行編譯.

\E    使用 |file-explorer| 瀏覽光標處目錄內的文件. 不支持 netrw 時的項目管理.

<F12>    當在變量 g:proj_flags (參考 |project-flags|)中使用了標志位 'g' 時, 該鍵
        用來切換打開和關閉項目窗口. 可以在 vimrc 中進行重新綁定. 例如將其映射到
        <Leader>P:

        nmap <silent> <Leader>P <Plug>ToggleProject

注意由于使用 :help 時幫助窗口跟項目窗口有所沖突, 該插件通過重新映射 :help避免了
這個問題(在使用時你可能無法感覺出來).

==============================================================================
ADDING MAPPINGS                      *project-adding-mappings*
添加映射

也可單獨在 $HOME/.vimproject_mappings 文件中設置自己需要的映射. 如果這個文件存
在, 插件每次啟動時候會執行(source)它. 下例中定義了統計項目中入口數量功能的映射
當按下 \K (Kount, 這因為 C 與 K 諧音 :-):時候會顯示統計結果 >

    function! s:Wc()
        let b:loadcount=0
        function! SpawnExec(infoline, fname, lineno, data)
        let b:loadcount = b:loadcount + 1
        if getchar(0) != 0 | let b:stop_everything=1 | endif
        endfunction
        call Project_ForEach(1, line('.'), "*SpawnExec", 0, '')
        delfunction SpawnExec
        echon b:loadcount." Files\r"
        unlet b:loadcount
        if exists("b:stop_everything")
        unlet b:stop_everything
        echon "Aborted.\r"
    endif
    endfunction

    nnoremap <buffer> <silent> <LocalLeader>K :call <SID>Wc()<CR>

下例在 $HOME/.vimproject_mappings 中實現了插件對perforce的整合:
>
    function! s:DoP4(cmd)
       let name=Project_GetFname(line('.'))
       let dir=substitute(name, '\(.*\)/.*', '\1', 'g')
       exec 'cd '.dir
       exec "!".a:cmd.' '.Project_GetFname(line('.'))
       cd -
    endfunction

    nmap <buffer> <silent> \pa :call <SID>DoP4("p4add")<CR>
    nmap <buffer> <silent> \pe :call <SID>DoP4("p4edit")<CR>
<
(注意我進入文件所在目錄后才可以使用 $P4CONFIG 文件. 請參考關于 perforce 的文檔.)

這就建立了使用映射 \pe 來檢查用于編輯的文件, 用 \pa 來將文件存儲.


下例中為 <Return> 在打開某種特定文件時映射到一個外部程序來. (該例中它調
用 ee 來瀏覽jpg文件). 盡管看起來有些刻意, 但它還是有點用的.
>
    let s:sid = substitute(maparg('<Return>', 'n'), '.*\(<SNR>.\{-}\)_.*', '\1', '')
    function! s:LaunchOrWhat()
        let fname=Project_GetFname(line('.'))
        if fname =~ '\.jpg$'
        exec 'silent! !ee "'.fname.'"&'
        else
        call {s:sid}_DoFoldOrOpenEntry('', 'e')
        endif
    endfunction
    nnoremap <buffer> <silent> <Return>   \|:call <SID>LaunchOrWhat()<CR>
<
該例中調用外部程序來查看后綴名為jpg的文件, 對其他文件則仍以原 <Return> 處理.

==============================================================================
SETTINGS                            *project-settings*

在 vimrc 文件中設定下述變量后, Vim 會在加載插件前先使用這些屬性從而不按照插
件的默認屬性進行加載.

g:proj_window_width
    插件項目窗口寬度.    默認值: 24

    盡管插件不能完全成功地按照我預想的方式設定窗口的大小,但是這個變量在
    設定窗口大小時還是會起到很大的作用.

g:proj_window_increment
    當按空格鍵 <space> 或者單擊鼠標左鍵 <LeftMouse >時項目窗口寬度增加量
    默認值: 100 (參見 |project-mappings|)

                                   *project-flags*
g:proj_flags
    默認值: "imst"
    這些標志位可以用來控制插件的行為, 具體如下:

       標志位    描述 ~

    b    設置后將使用 |browse()| 通過瀏覽目錄來為 \c 和 \C 設定目錄.
        默認關閉, 因為窗口瀏覽器本身不允許進行目錄的選擇.

    c    設置后, 在項目窗口中打開文件后會自動關閉項目窗口.

    F    顯示浮動項目窗口. 關閉窗口的自動調整大小和窗口替換.
        This allows placement between other windows that wish to share
        similar placement at the side of the screen. 
        在使用外部窗口管理器的時候很有用.

    g    設置后會將切換打開和關閉項目窗口映射到 <F12> 上.

    i    設置后, 當選擇打開一個文件時會在命令行顯示文件名和當前工作路徑.

    l    設置后, 項目插件在選擇一個要打開的文件時,使用命令 |:lcd| 替換默
        認的 |:cd| 命令去改變目錄. 在有了下面的 L 標志位后, 此標志已經
        用處不大.

    L    與標志位 l 很相似. 不管緩沖是否被使用, 它通過安裝一個進入/離開
        緩沖的自動命令|:autocommand| 來確保當前工作目錄更改到 CD 參數
        指定的目錄.(|:lcd| 命令只能為窗口而不能為緩沖改變當前工作目錄)

    m    在常規模式下開啟 |CTRL-W_o| 和 |CTRL-W_CTRL_O| 映射, 使得當前
        緩沖區成為唯一可見的緩沖區, 但是項目窗口仍然可見.

    n    設置后將在項目窗口中顯示行號.

    s    設置后將在項目窗口中使用語法高亮.

    S    設置后將在更新和創建項目時啟用排序.

    t    設置后將在按空格 <space> 或鼠標右擊 <RightMouse> 時候進行原窗口
        和加寬窗口之間的切換. 參見 See the entry for  in |project-mappings|.

    T    設置后,    子項目的折疊在更新時會緊跟在當前折疊下方顯示(而不是其底
        部).

    v    設置后將, 按 \G 搜索時用 :vimgrep 取代 :grep.

g:proj_run1 ...  g:proj_run9
        包含一個作用于文件的 Vim 命令, 參考前文中關于 \1 to \9 的映射.
 
          %f 替換文件的全路徑和文件名
          %F 替換文件的全路徑和文件名
          is 替換文件的全路徑和包含空格的文件
          %n 只替換文件名
          %N 只替換包含空格的文件名
          %h 替換項目主目錄
          %H 替換包含空格的項目主目錄
          %r 替換與 CD 目錄相關聯的路徑
          %R 替換與包含空格的 CD 目錄相關聯的路徑
          %d 替換 CD 目錄.
          %D 替換包含空格的 CD 目錄
          %% 未使用

        例如, 如果在 vimrc 中做了如下設置, 在當前光標下按下 \3 時將調
        出 gvim : >
         let g:proj_run3='silent !gvim %f'
<        其他的幾個例子: >
         let g:proj_run1='!p4 edit %f'
         let g:proj_run2='!p4 add %f'
         let g:proj_run4="echo 'Viewing %f'|sil !xterm -e less %f &"
<
        在 Windows 系統中應用單引號括住 %f, %h, %d 以避免 \ 引起的轉義.

g:proj_run_fold1 ...  g:proj_run_fold9
        包含一個作用于折疊內文件的 Vim 命令. 參考前文中關于 \f1 to \f9
            和 \F1 to \F9 的映射部分.$HOME/.vimproject_mappings
 
        %f 替換文件名, %h 替換項目的主目錄, %d 替換 CD 目錄.
        對應多個文件名有兩種處理方式:

        第一種(默認的)處理方式使用 %f 替換所有的絕對文件名, 讓命令只執
        行一次;    第二種是讓命令針對每個非絕對文件名執行一次, %f 每次只
        替換一個文件名. 使用第二種方式時, 須在變量 g:proj_run_fold{x}
        的開頭加上一個通配符 '*' (通配符 '*' 在運行時將被自動去掉.)

        例如, 注意以下兩種方式的差異: >
         let g:proj_run_fold3="*echo '%h/%f'"
         let g:proj_run_fold4="echo '%f'"
<
        注意在Windows系統中, 需要用 '' 將 %f, %h, %c 括起來, 否則路徑中
        使用的 \ 會出問題. 另一種辦法是把它們放在 |escape()| 函數中.


==============================================================================
PROJECT EXAMPLE FILE                         *project-example*

例子: 項目文件(~/.vimprojects): >

  1    My Project=~/c/project CD=. in=in.vim out=out.vim flags=r {
  2     Makefile
  3      in.vim
  4      out.vim
  5     GUI Files=. filter="gui*.c gui*.h" {
  6      gui_window.c
  7      gui_dialog.c
  8      gui_list.c
  9      gui.h           # Header file
 10     }
 11     Database Files=. filter="data*.c data*.h" {
 12      data_read.c
 13      data_write.c
 14      data.h
 15     }
 16     OS-Specific Files {
 17      Win32=. filter="os_win32*.c os_win32*.h" {
 18       os_win32_gui.c
 19       os_win32_io.c
 20      }
 21      Unix=. filter="os_unix*.c os_unix*.h" {
 22       os_unix_gui.c
 23       os_unix_io.c
 24      }
 25     }
 26    }

(注意左側的行號不是文件內容.)


==============================================================================
插件技巧                             *project-tips*

1.  先為項目創建一個入口: >

    Label=~/wherever CD=. filter="*.c *.h" {
    }
<
    然后將光標定位在折疊上按 \r, 腳本會自動添加對應目錄下所有 C 文件(本例中)
    到項目之中. 這與 \c 是等效的, 只是沒有對話框顯示.

2.  可以在項目列表里隨時添加,刪除或排序項目文件.

3.  當項目窗口沒有打開時, 輸入 >
    :Project
<   可以將其打開. (插件有自動記憶功能, 而無需輸入具體的項目名稱.) 如果在
    g:proj_flags 變量中設定了 'm' 標志位, 通過組合鍵 |CTRL-W_o| 可以重新打開
    項目窗口. 毫無疑問, 這會關閉除當前窗口之外的其他所有打開的窗口.

4.  往項目中添加新的文件. 例如添加 'more.c' 到項目中去, 只需在項目入口之中插
    入文件名后按 <Return> 鍵即可.

5.  當使用 |quickfix| 時候, 在文件名上按回車鍵 <Return> 并不會有效, 這樣的話,
    將無法更改目錄, 運行腳本. 解決辦法是在使用 |quickfix| 前用 \L 將所有文件
    載入到項目中去.

6.  當項目窗口因為或開或閉的折疊顯得凌亂時, 使用 |zM| 可以關閉所有的展開折疊,
    讓項目窗口重新變得整潔如初.

7.  對于高級用戶, 可以嘗試插件提供如下幾個函數:
    Project_GetAllFnames()
    返回一個折疊及其子項目(可選)下的所有文件名. 
    Project_ForEach()
    在為項目中的每個文件提供一個調用函數的接口.如何使用請參考上面的例子以
    及源代碼.
    Project_GetFname(line_number)
    在編寫自己的映射時用來獲取文件名.

8.  將光標定位到項目插件窗口的鍵映射, 在 vimrc 文件中添加:
>
        nmap <silent> <Leader>P :Project<CR>
<
9.  項目入口中使用符號"."會調出|file-explorer|插件. 為了防止在更新時候刪除,
    在項目入口中加入:
>
     . # pragma keep
<
==============================================================================
致謝

    感謝下列朋友為我在此插件開發過程中提供一些補丁:

        Tomas Zellerin
        Lawrence Kesteloot
        Dave Eggum
        A Harrison
        Thomas Link
        Richard Bair
        Eric Arnold
        Peter Jones
        Eric Van Dewoestine

 vim:ts=8 sw=8 noexpandtab tw=80 ft=help:

posted on 2007-11-19 19:11 Dr.Magic 閱讀(7858) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美成人中文字幕在线| 亚洲国产午夜| 久久嫩草精品久久久久| 午夜一区二区三视频在线观看| 亚洲最快最全在线视频| 国产精品99久久99久久久二8 | 久久久高清一区二区三区| 性18欧美另类| 久久精品在线免费观看| 欧美77777| 99综合电影在线视频| 午夜精品视频在线| 欧美成年人网站| 国产精品免费看久久久香蕉| 亚洲理论在线| 亚洲午夜在线观看视频在线| 久久午夜电影网| 亚洲国产裸拍裸体视频在线观看乱了中文| 久久九九精品99国产精品| 老牛嫩草一区二区三区日本| 免费看的黄色欧美网站| 99精品欧美一区| 欧美在线视频一区二区三区| 欧美激情视频一区二区三区在线播放| 国产精品久久久久av免费| 伊人激情综合| 性欧美精品高清| 亚洲人成网站影音先锋播放| 欧美一区二区三区免费视频| 欧美日韩另类丝袜其他| 亚洲大胆人体视频| 亚洲国产成人久久综合| 国产精品久久久久一区二区三区共 | 亚洲精品一区二区三区av| 亚洲一区二区综合| 免费久久99精品国产自| 国产精品99久久久久久宅男| 奶水喷射视频一区| 国产一区三区三区| 亚洲欧美日韩另类| 亚洲国产精品一区二区三区| 欧美日韩岛国| 亚洲国产经典视频| 欧美中文字幕不卡| 日韩一区二区免费看| 午夜国产精品视频| 亚洲国产高清视频| 久久精品一区二区三区不卡| 国产精品国产馆在线真实露脸| 亚洲国产日韩在线| 老司机精品久久| 欧美在线1区| 国产欧美综合一区二区三区| 亚洲一区bb| 一区二区三区欧美在线观看| 欧美人与禽猛交乱配视频| 亚洲人线精品午夜| 亚洲电影专区| 欧美激情在线| 一区二区激情小说| 日韩一级免费| 欧美性淫爽ww久久久久无| 亚洲影视在线| 亚洲欧美欧美一区二区三区| 国产日韩在线视频| 久热这里只精品99re8久| 欧美在线视频观看| 在线播放视频一区| 欧美成人午夜77777| 欧美成人激情视频免费观看| 亚洲毛片播放| 国产精品99久久久久久久女警 | 亚洲欧美日韩综合| 亚洲专区免费| 国内外成人免费视频| 免费看黄裸体一级大秀欧美| 欧美成人一品| 亚洲图色在线| 欧美一区二区三区久久精品茉莉花 | 久久久噜噜噜| 你懂的国产精品| 亚洲调教视频在线观看| 亚洲欧美日韩高清| 亚洲二区精品| 一区二区日韩免费看| 国产综合色在线| 亚洲激情国产精品| 国产欧美日韩视频一区二区| 欧美大片一区二区三区| 欧美日韩亚洲一区二区三区| 欧美在线观看视频在线| 女人天堂亚洲aⅴ在线观看| 亚洲少妇诱惑| 亚洲精选视频免费看| 激情六月综合| 日韩视频一区二区在线观看 | 一本色道88久久加勒比精品| 久久综合伊人77777| 国产伦精品一区二区三区高清版 | 欧美成熟视频| 欧美综合77777色婷婷| 国产偷久久久精品专区| 亚洲精品裸体| 这里是久久伊人| 亚洲女爱视频在线| 国产一区二区三区免费不卡| 99亚洲精品| 亚洲欧美精品在线观看| 欧美成人福利视频| 亚洲欧美中文日韩在线| 91久久精品国产91久久| 欧美激情2020午夜免费观看| 91久久极品少妇xxxxⅹ软件| 亚洲精品小视频在线观看| 国产欧美在线| 欧美国产一区二区| 亚洲欧美日韩在线| 亚洲精品国产精品久久清纯直播 | 国产欧美日韩中文字幕在线| 亚洲国产美女久久久久| 国产精品久久一卡二卡| 欧美99在线视频观看| 国产精品色网| 日韩午夜三级在线| 亚洲毛片在线看| 久久亚洲精品一区| 久久视频在线免费观看| 国产欧美丝祙| 亚洲午夜视频在线观看| 亚洲图色在线| 99在线热播精品免费| 久久精品亚洲一区| 久久国产欧美日韩精品| 国产精品亚洲综合| 亚洲香蕉在线观看| 在线视频精品一| 欧美视频一区二区三区| 亚洲精品资源| 在线视频你懂得一区二区三区| 欧美精品久久久久a| 亚洲人成毛片在线播放女女| 亚洲精品日韩激情在线电影| 免费欧美电影| 亚洲国产精品日韩| 99精品欧美一区| 欧美日韩一级黄| 99在线精品视频| 欧美一区二区三区的| 国产一二三精品| 久久精品官网| 欧美国产日韩精品| 亚洲精品一二三| 国产精品国产三级国产aⅴ浪潮| 亚洲小说春色综合另类电影| 欧美专区18| 在线看国产日韩| 欧美日韩国产区| 亚洲影视在线播放| 欧美插天视频在线播放| 欧美破处大片在线视频| 欧美日韩中字| 午夜精品久久久久久久99水蜜桃| 国产精品电影观看| 香蕉久久夜色精品国产| 免费视频久久| 一本久久青青| 国产丝袜美腿一区二区三区| 久久亚洲电影| 日韩视频在线观看免费| 欧美在线看片| 91久久国产自产拍夜夜嗨| 欧美视频福利| 欧美制服丝袜第一页| 亚洲激情在线播放| 久久久精品一区| 99精品99| 精品99一区二区三区| 欧美视频中文一区二区三区在线观看| 午夜天堂精品久久久久| 亚洲精品久久久蜜桃| 久久蜜桃香蕉精品一区二区三区| 亚洲美女淫视频| 在线观看成人av| 国产免费观看久久| 欧美日本成人| 亚洲免费观看高清完整版在线观看熊 | 亚洲欧美另类在线观看| 欧美成人一二三| 欧美亚洲免费高清在线观看| 亚洲精品午夜| 在线欧美三区| 国产偷国产偷亚洲高清97cao| 欧美日韩精品免费观看| 久久免费视频在线| 亚洲欧洲99久久| 宅男噜噜噜66国产日韩在线观看| 亚洲福利视频一区| 久久影视精品| 久久久久久久高潮| 欧美一级免费视频|