2

どうすればこれを行うことができますか?

コマンドモードでCTRL-Rで貼り付けるパスが欲しいです。

4

1 に答える 1

2

カスタム マッピングにはプラグイン独自の拡張システムを使用できます。で与えられた例でさえ、:help NERDTreeAddKeyMap()あなたが望むことをほとんど行います。

次のフラグメントを に入れるだけ~/.vim/nerdtree_plugin/yank_mapping.vimです。

call NERDTreeAddKeyMap({
        \ 'key': '<LeftMouse>',
        \ 'callback': 'NERDTreeYankCurrentNode',
        \ 'quickhelpText': 'put full path of current node into the default register' })

function! NERDTreeYankCurrentNode()
    execute "normal! \<LeftMouse>"
    let n = g:NERDTreeFileNode.GetSelected()
    if n != {}
        call setreg('"', n.path.str())
    endif
endfunction

前の回答(NERDTree キーマップ API なし)

の最後に小さな関数を挿入しplugin/NERD_tree.vimて、スクリプトの内部にアクセスできます。

function! GetSelected()
    return s:TreeFileNode.GetSelected()
endfunction

次に、変更(同じ場所に配置できます)は次のようになります。

:autocmd FileType nerdtree
\    nnoremap <silent> <buffer> <LeftMouse>
\    <LeftMouse>:silent! call setreg('"', GetSelected().path.str())<CR>
于 2013-01-23T16:23:06.503 に答える