从书呆子树复制路径点击

时间:2013-01-23 15:47:20

标签: vim macvim nerdtree

怎么可能这样做?

我想用CTRL-R将命令模式粘贴到路径上。

1 个答案:

答案 0 :(得分: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>