NERDTree命令会自动更改目录和根目录。

7

当我从NERDTree选择一个目录并进入该目录时,是否有可能使该目录成为根目录?也就是说,每次我选择一个新目录时,以下两个命令将被触发:cd和:NERDTreeCWD

谢谢!

3个回答

14

在您的vimrc文件中添加以下内容:let g:NERDTreeChDirMode = 2


2
你是我的英雄。 - rowyourboat
1
这个答案就像一颗钻石,闪耀着无穷的价值!应该被采纳为最佳答案。 - Sang Dang
cd CD 序列的功能基本相同。优点:速度非常快 - 与 C 相比没有延迟。缺点:输入时需要更长的时间。 - daGo

6
NERDTree提供了两个映射,您可以手动使用它们以实现此效果:在节点上键入cd会将目录更改为该节点,并在节点上键入C,通过NERDTree“进入”它。
就我个人而言,我经常将它们合并 - 只需键入Ccd - C将进入目录并将光标留在其上,cd将更改工作目录为它。
现在,如果您确实想要创建一个直接使用的映射,请使用NERDTree的扩展机制。阅读:help NERDTreeAPI 以获取详细信息,但简短版本是:在~/.vim/nerdtree_plugin/cd_mapping.vim中放置一个文件,其中包含以下内容。
call NERDTreeAddKeyMap({
            \ 'key':           '_C',
            \ 'callback':      'NERDTreeEnterDirectoryAndCD',
            \ 'quickhelpText': 'Enter directory and cd into it' })

function! NERDTreeEnterDirectoryAndCD()
  let node = g:NERDTreeDirNode.GetSelected()

  exec 'cd ' . node.path.str({'format': 'Cd'})
  NERDTreeCWD
endfunction

使用按键绑定 _C 就可以达到目的。将 key 属性更改为您希望的按键即可。


谢谢Andrew!太棒了!但是,当尝试访问父目录时出现问题:E716字典中不存在键:path.str({'format': 'Cd'}) E15:无效表达式:'cd ' . node.path.str({'format': 'Cd'}) - SebiSebi
嗯,这很奇怪。你可能安装了旧版本的NERDTree吗?你能否检查一下本地是否安装了主版本? - Andrew Radev
你救了我的一天。 - Apit John Ismail

2

cd CDcd -> 更改当前工作目录,CD -> 将树的根目录设置为当前工作目录)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接