使用NERDtree Vim插件复制路径文件

时间:2013-05-03 23:05:36

标签: vim sublimetext nerdtree

有没有办法在Vim的NERDtree插件中复制文件的路径?

更好:是否有一些插件可以在Sublime Text的SideBarEnhancements插件中进行相同的操作?

3 个答案:

答案 0 :(得分:11)

NERD_tree带有自己的扩展系统;只需将以下片段放入~/.vim/nerdtree_plugin/yank_mapping.vim

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

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

当然,您可以调整默认密钥(yy),然后注册(";使用+作为剪贴板。)

答案 1 :(得分:5)

这是我通过快速谷歌找到的NERDTree:CopyPath

然而,听起来你正试图让vim成为Sublime Text。与大多数文本编辑器相比,Vim在文本编辑方面往往具有非常不同的理念。在我个人看来,与vim合作通常比使用vim更好。以下是Drew Neil对Vimcasts解释benefit to split explorers的好文章。

插入路径的vim方式可能就是使用文件完成。在插入模式下,您可以按<c-x><c-f>触发此完成,然后使用<c-p><c-n>(分别为上一个和下一个)浏览菜单。如果要插入当前缓冲区路径,可以通过%寄存器(例如{.1}}或插入/命令行模式将其粘贴到"%p

如需更多帮助,请参阅:

<c-r>%

答案 2 :(得分:2)

我猜你真正需要的是一个像sublime插件这样的上下文菜单?

内置NERDTree。

只需点击您突出显示的节点上的m,您就会看到一个新窗口,询问您要执行的操作。基本功能包括:添加,删除,移动,复制。

还有一个插件可供您搜索(使用grep),可以突出显示单个文件或整个目录。

NERDTree还为您在该上下文窗口中轻松构建的任何自定义操作提供API。