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时最好区分开,不要出现冲突