有没有办法在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
)并注册("
),使用+
来操作剪贴板。
/home
的方法呢? - Tárcio Zemelfnamemodify()
函数(在上面的 setreg()
调用中)进行转换。 - Ingo Karkatcall setreg('"', (fnamemodify(n.path.str(), ':.')))
,然后魔法就发生了!再次感谢你! - Tárcio Zemelfnamemodify()
周围的括号不是必需的。 - jdhao我在快速谷歌搜索中找到了关于 NERDTree 的信息:CopyPath
然而,听起来你正在尝试将 vim 变成 Sublime Text。Vim 在文本编辑方面的哲学与大多数文本编辑器有很大不同。就我个人而言,通常最好与 vim 协作而非对抗它。这是 Drew Neil 的 Vimcasts 上一篇很好的文章,解释了 拆分资源管理器的好处。
也许更符合 vim 的方式是使用文件完成来插入路径。在插入模式下,你可以通过按下 <c-x><c-f>
触发此完成,然后通过 <c-p>
和 <c-n>
(分别为上一个和下一个)浏览菜单。如果要插入当前缓冲区的路径,可以通过 %
寄存器粘贴它,例如:"%p
或在插入/命令行模式下按下 <c-r>%
。
更多帮助请参见:
:h ins_completion
:h i_CTRL-R
:h quote%
:h registers
m l
返回的文件路径取决于终端(有时需要按住 Shift 并双击,有时需要拖动文件路径并按下 Ctrl+C 等)。 - RyanQuey