NERDTree保留$HOME/.NERDTreeBookmarks
文件中所有书签的列表。当我点击 B 时,它会显示该文件中的所有条目。所以我尝试了这个文件的本地副本与项目特定的书签,但这不起作用:(
有没有办法在NERDTree中只查看与项目相关的书签?
答案 0 :(得分:4)
这是我用于git repo特定NERDTree书签的内容。
if isdirectory(expand(".git"))
let g:NERDTreeBookmarksFile = '.git/.nerdtree-bookmarks'
endif
答案 1 :(得分:2)
由于无法确定项目目录的结构,因此使用shell环境变量似乎是最简单的解决方案。
首先,添加书签的路径:
export NERDTREE_BOOKMARKS="/full/path/.NERDTreeBookmarks"
然后将其添加到您的~/.vimrc
或类似内容中:
if !empty($NERDTREE_BOOKMARKS)
if filereadable($NERDTREE_BOOKMARKS)
let g:NERDTreeBookmarksFile = $NERDTREE_BOOKMARKS
endif
endif
根据您的开发方式,使用环境变量可能是也可能不是合适的解决方案。即如果你一直打开/关闭你的shell,或者一次打开多个shell。
一个更简单的替代方案可能是这样的,但只有在书签所在的目录中打开带有vim的vim /文件时它才会起作用。
if filereadable(".NERDTreeBookmarks")
let g:NERDTreeBookmarksFile = ".NERDTreeBookmarks"
endif
答案 2 :(得分:1)
正如timss已经指出的那样,关键设置是g:NERDTreeBookmarksFile
配置变量。您需要找到一种方法来操作该(全局)设置,具体取决于当前打开的项目。使用外部环境变量是一种解决方案;我希望使用vim.org上提供的本地vimrc 插件之一来解决这个问题。我自己使用localrc.vim - Enable configuration file of each directory。
在每个不同的项目目录中,您创建一个.local.vimrc
脚本,将上述变量设置为项目的书签文件。 (这只在你在Vim中一次打开一个项目时才能可靠地工作。)