有没有办法在 Vim 的 NERDtree 插件中复制文件的路径?
更好:是否有一些插件可以进行与 Sublime Text 的SideBarEnhancements插件相同的操作?
有没有办法在 Vim 的 NERDtree 插件中复制文件的路径?
更好:是否有一些插件可以进行与 Sublime Text 的SideBarEnhancements插件相同的操作?
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
),并注册 ( "
;+
用于剪贴板)。
这是我通过快速 google 找到的 NERDTree:CopyPath
但是,听起来您正试图将 vim 变成 Sublime Text。与大多数文本编辑器相比,Vim 在文本编辑方面的理念往往非常不同。在我个人看来,与 vim 一起工作通常比反对它更好。这是Vimcasts的 Drew Neil 的一篇好文章,解释了拆分探索者的好处。
插入路径的更 vim 方式可能是使用文件完成。在插入模式下,您可以通过按<c-x><c-f>
然后使用<c-p>
和<c-n>
(分别为上一个和下一个)浏览菜单来触发此完成。如果要插入当前缓冲区路径,可以通过%
寄存器粘贴它,例如"%p
,或在插入/命令行模式下按<c-r>%
。
如需更多帮助,请参阅:
:h ins_completion
:h i_CTRL-R
:h quote%
:h registers
我想你真正需要的是一个像那个 sublime 插件这样的上下文菜单?
这是 NERDTree 内置的。
只需点击m
您突出显示的节点,您就会看到一个新窗口弹出,询问您要做什么。基本功能是:添加、删除、移动、复制。
还有一个插件可让您搜索(使用 grep),无论是单个文件还是突出显示的整个目录。
NERDTree 还为您在该上下文窗口中轻松构建的任何自定义操作提供 API。