NERDTree插件的官方地址以下,能夠從這裏獲取最新的版本 https://github.com/scrooloose/nerdtree 下載zip安裝包 或者使用下面官網源文件安裝方法php
個人實驗環境是centos6.6,其餘版本可能有些不一樣。 安裝方法很簡單,先把壓縮文件下載下來,解壓後將plugin目錄下的NERD_tree.vim拷貝~/.vim/plugin以及doc目錄下的NERD_tree.txt拷貝到~/.vim/doc. ~表示當前用戶的目錄,個人環境中沒有~/.vim ~/.vim/plugin ~/.vim/doc ,待會會建立,若是你的版本有,那就更好了。html
wget http://www.vim.org/scripts/download_script.php?src_id=17123 -O nerdtree.zip unzip nerdtree.zip mkdir -p ~/.vim/{plugin,doc} cp plugin/NERD_tree.vim ~/.vim/plugin/ cp doc/NERD_tree.txt ~/.vim/doc/
安裝好後,命令行中輸入vim,打開vim後,在vim中輸入:NERDTree,你就能夠看到NERDTree的效果了git
https://www.cnblogs.com/zzb-Dream-90Time/p/7116406.htmlgithub
命令格式:
:map {lhs} {rhs}
其含義是,在:map做用的模式中把鍵系列 {lhs} 映射爲 {rhs},{rhs}可進行映射掃描,也就是可遞歸映射。vim
舉例:
:map td :tabnew .<cr>
含義:在其做用模式(普通、可視、操做符)下,輸入td等價於輸入 :tabnew . <cr>。而普通模式下輸入:tabnew . <cr>就是打開當前目錄
若是再定義綁定 :map ts td,就是指在其做用模式下輸入ts等價於td,也就是打開當前目錄。不過若是沒有特殊須要,通常不建議遞歸映射。centos
:noremap和:map命令相對,做用模式和命令格式都相同,只不過不容許再對{rhs}進行映射掃描,也就是{lhs}定義後的映射就是{rhs}的鍵序列,不會再對{rhs}鍵序列從新解釋掃描。它通常用於重定義一個命令,固然若是:map不須要遞歸映射的話,建議使用:noremap
好比:
:noremap ts td
它的意思是在其做用模式下,輸入ts就是輸入td,可是和:map不一樣的是,此時td再不會作進一步掃描解釋。雖然以前已經定義了td,可是不會對td再作掃描。bash
:unmap是對應取消:map綁定的{lhs},做用模式相同,命令格式 :unmap {lhs}。
例如:
:unmap td
就是取消在其做用模式中td的綁定,好比以前td被綁定爲:tabnew .<cr>,此時此綁定消失。ui
:mapclear時對應取消全部:map綁定的,慎用!spa
:nmap
:nmap是:map的普通模式板,也就是說其綁定的鍵只做用於普通模式。
例如:
:nmap td :tabnew .<cr> 和 :map td :tabnew .<cr> 在普通模式下等效
:nnoremap
:nnorempa和:nmap的關係和:noremap和:map的關係同樣,只是:nmap的非遞歸版
:nunmap
:nunmap和:nmap的關係和:unmap和:map的關係同樣,取消:nmap的綁定。
:nmapclear
:nmapclear是對應取消全部:map綁定的,慎用!插件
{rhs} 以前可能顯示一個特殊字符:
到這一步你能夠輕鬆的長吸一口氣,由於相關的命令已經都瞭解了,記不住不要緊,能夠隨時:help map一下。
<k0> - <k9> 小鍵盤 0 到 9
<S-...> Shift+鍵
<C-...> Control+鍵
<M-...> Alt+鍵 或 meta+鍵
<A-...> 同 <M-...>
<Esc> Escape 鍵
<Up> 光標上移鍵
<Space> 插入空格
<Tab> 插入Tab
<CR> 等於<Enter>
有些特殊參數必須映射命令的後邊,在其餘任何參數的前面。
<buffer>若是這些映射命令的第一個參數是<buffer>,映射將只侷限於當前緩衝區(也就是你此時正編輯的文件)內。好比:
:map <buffer> ,w /a<CR>
它的意思時在當前緩衝區裏定義鍵綁定,「,w」將在當前緩衝區裏查找字符a。一樣你能夠在其餘緩衝區裏定義:
:map <buffer> ,w /b<CR>
好比我常常打開多個標籤(:tabedit),想要在各自標籤裏定義",w"鍵綁定,那麼你只要在每一個標籤頁裏分別定義就可,其做用域也只在各自的標籤裏。一樣要清除這些緩衝區的鍵綁定也要加上<buffer>參數,好比:
:unmap <buffer> ,w
:mapclear <buffer>
<silent>是指執行鍵綁定時不在命令行上回顯,好比:
:map <silent> ,w /abcd<CR>
你在輸入,w查找abcd時,命令行上不會顯示/abcd,若是沒有<silent>參數就會顯示出來。
<special>通常用於定義特殊鍵怕有反作用的場合。好比:
:map <special> <F12> /Header<CR>
<expr>. 若是定義新映射的第一個參數是<expr>,那麼參數會做爲表達式來進行計算,結果使用實際使用的<rhs>,例如:
:inoremap <expr> . InsertDot()
這能夠用來檢查光標以前的文本並在必定條件下啓動全能 (omni) 補全。
一個例子:
let counter = 0 inoremap <expr> <C-L> ListItem() inoremap <expr> <C-R> ListReset() func ListItem() let g:counter += 1 return g:counter . '. ' endfunc func ListReset() let g:counter = 0 return '' endfunc
在插入模式下,CTRL-L插入順序的列表編號,並返回;CTRL-R復位列表編號到0,並返回空。
<unique>通常用於定義新的鍵映射或者縮寫命令的同時檢查是否該鍵已經被映射,若是該映射或者縮寫已經存在,則該命令會失敗
mapleader變量對全部map映射命令起效,它的做用是將參數<leader>替換成mapleader變量的值,好比:
:map <Leader>A oanother line<Esc>
若是mapleader變量沒有設置,則用默認的反斜槓代替,所以這個映射等效於:
:map \A oanother line<Esc>
意思時輸入\A鍵時,在下一行輸入another line並返回到普通模式。
若是設置了mapleader變量,好比:
let mapleader = ","
那麼就等效於:
:map ,A oanother line<Esc>
<LocalLeader>和<Leader>相似,只不過它只做用於緩衝區。 所以在設置mapleader和maplocalleader時最好區分開,不要出現衝突