2010-10-22 32 views

回答

10

创建文件~/.vim/ftplugin/nerdtree.vim具有以下内容,那么你就不必编辑NERDTree本身:

if exists('b:haveRemappedT') 
    finish 
endif 
let b:haveRemappedT=1 
let s:oldmap=maparg('T', 'n') 
function! s:LastTab() 
    let tab=tabpagenr() 
    tabnext 
    execute "tabmove ".tabpagenr('$') 
    execute "tabn ".tab 
endfunction 
execute 'nnoremap <buffer> T '.s:oldmap.':call <SID>LastTab()<CR>' 
+0

谢谢,它的工作:) – kfl62 2010-10-23 04:36:29

+1

@Zyx它不适合我。当我按Shift + T键时,我仍然在左边的一个新标签中找到打开的文件。这就是我所拥有的:http://pastebin.com/kri7Byvb – ziiweb 2013-12-07 15:53:06

0

我建议你编辑插件并将其重新映射到:tablast之前:tabnew

+0

不可能覆盖'.vimrc'中的映射吗? – kfl62 2010-10-22 16:30:26

+1

我不确定按什么顺序读取脚本。 ':scriptnames'会告诉你。如果'.vimrc'出现在NERDTree后面,你可以将它重新映射到你的.vimrc当然:) – Benoit 2010-10-22 16:32:03

+0

没有'.vimrc'先来:(我真的很讨厌修改插件... – kfl62 2010-10-22 16:45:42

6

下面是在年底开设新标签通用自动命令。它也适用于NERDTree。

" move tabs to the end for new, single buffers (exclude splits) 
autocmd BufNew * if winnr('$') == 1 | tabmove99 | endif 
1

以下添加到您的.vimrc

autocmd BufNew * execute ":tabmove99" 

这将始终在位置99至合适的位置新打开的标签。