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 Keymap 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 回答