怎么可能做到这一点?
我想用 CTRL-R 在命令模式下粘贴它的路径。
您可以使用插件自己的扩展系统进行自定义映射;甚至有一个例子: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>