11

VIM NERDTree プラグインを使用します。

ファイル アクションのダブル クリックを再マップして、ファイルをサイレント モードで新しいタブ ( ) で開く方法はありますTか?

4

2 に答える 2

7

1 はじめに

これは NERD ツリー バージョン4.2.0で機能します。

2 ディレクトリとファイルを新しいタブで開く

ディレクトリとファイルを新しいタブで開きたい場合は、次の行を~/.vimrc.

let g:NERDTreeMapOpenInTabSilent = '<2-LeftMouse>'

3 新しいタブでのみファイルを開く

新しいタブでファイルを開くだけの場合は、より洗練された操作を行う必要があります。

この関数を のどこかに追加しますNERD_tree.vim

" opens a file in a new tab
" KeepWindowOpen - dont close the window even if NERDTreeQuitOnOpen is set
" stayCurrentTab: if 1 then vim will stay in the current tab, if 0 then vim
" will go to the tab where the new file is opened
function! s:openInTabAndCurrent(keepWindowOpen, stayCurrentTab)
    if getline(".") ==# s:tree_up_dir_line
        return s:upDir(0)
    endif

    let currentNode = s:TreeFileNode.GetSelected()
    if currentNode != {}
        let startToCur = strpart(getline(line(".")), 0, col("."))

        if currentNode.path.isDirectory
            call currentNode.activate(a:keepWindowOpen)
            return
        else
            call s:openInNewTab(a:stayCurrentTab)
            return
        endif
    endif
endfunction

ラインを交換します

nnoremap <silent> <buffer> <2-leftmouse> :call <SID>activateNode(0)<cr>

と:

nnoremap <silent> <buffer> <2-leftmouse> :call <SID>openInTabAndCurrent(0,1)<cr>

この行はs:bindMappings()、ファイルの関数にありますNERD_tree.vim

于 2012-11-12T13:49:05.717 に答える