11

有没有办法订购我在 NERDTree vim 插件中看到的书签?

我觉得这应该很简单,但我不知道该怎么做。我 vim'ed~/.NERDTreeBookmarks并看到在该文件中,书签的顺序正确,但它似乎根据我使用它们的顺序不断地重新组织书签 - 这不是我想要的。我也做了:ReadBookmarks命令,这似乎并没有改变顺序。

4

3 回答 3

10

我遇到了同样的问题,并设法关闭了 NERDTree 古怪的书签排序。打开NERD_tree.vim插件文件(通常是~/.vim/plugin/NERD_tree.vim)。搜索此行:

call s:Bookmark.Sort()

该行应该有两个实例(在 NERDTree 版本 4.2.0 中,它们位于第 209 和 286 行)。"通过在它们前面添加这样的注释来注释掉这两行:

"call s:Bookmark.Sort()

现在您可以进行编辑~/.NERDTreeBookmarks,您的书签将以与文件中相同的顺序显示在 NERDTree 中。您可以:ReadBookmarks在编辑文件后使用它来刷新您的书签列表。

于 2012-01-12T23:21:30.950 回答
5

作为对 alxm 上述出色答案的更新,该行已移至新文件中。在我的硬盘上~/.vim/bundle/nerdtree/lib/nerdtree/bookmark.vim(我使用 vundle)。在 vanilla vim 安装中,它很可能位于~/.vim/plugin/nerdtree/lib/nerdtree/bookmark.vim.

1. 编辑你的书签.vim 文件

我注释掉了以call sort...(第 246 行)开头的行,如下所示:

" This is in ~/.vim/<PLUGINDIR>/nerdtree/lib/nerdtree/bookmark.vim

" FUNCTION: Bookmark.Sort() {{{1
" Class method that sorts all bookmarks
function! s:Bookmark.Sort()
    let CompareFunc = function("nerdtree#compareBookmarks")
    "call sort(s:Bookmark.Bookmarks(), CompareFunc)
endfunction

2.退出vim

退出 vim 因为你想重新加载你的插件,特别是 NERDTree。

3. 编辑您的 ~/.NERDTreeBookmarks 文件。

按照您想要的顺序放置它们。NERDTree 现在尊重您的意愿。您庄重、发自内心的书签整理愿望。

4.再次启动vim

当然每个人都已经知道这一点,但我认为这个答案需要第四步。

于 2014-06-02T04:33:38.540 回答
3

不知道从什么时候开始,你现在可以设置NERDTreeBookmarksSort

let g:NERDTreeBookmarksSort=0

然后~/.NERDTreeBookmarks根据需要进行编辑。

检查:help NERDTreeBookmarksSort更多细节。

于 2017-09-12T06:34:43.170 回答