3

Когда я открываю файл в буфере NERDTree, который был создан путем открытия каталога, когда я нажимаю <CR> , он открывает выбранный файл в текущем окне, если файл не открыт в другом окне, и в этом случае он перемещает курсор на это окно вместо (изменение вкладок, если требуется).

Есть ли в любом случае, чтобы NERDTree открывал файл в буфере, в котором находится NERDTree?

(По сути, я хочу использовать NERDTree в качестве замены netrw. В этом аспекте поведение NERDTree отличается от поведения netrw; Я хотел бы, чтобы он подражал netrw здесь.)

1 ответ1

2

Кажется, вы ищете опцию NERDTreeHijackNetrw , как объяснено в документации NERDTree:

If set to 1, doing a
:edit <some directory>

will open up a "secondary" NERD tree instead of a netrw in the target window.
Secondary NERD trees behaves slightly different from a regular trees in the
following respects:
1. 'o' will open the selected file in the same window as the tree,
replacing it.
2. you can have as many secondary tree as you want in the same tab.

Если вы ищете что-то помимо этого, вы можете достичь этого на основе API, предлагаемого плагином:

4. The NERD tree API *NERDTreeAPI*
The NERD tree script allows you to add custom key mappings and menu items via
a set of API calls. Any scripts that use this API should be placed in
~/.vim/nerdtree_plugin/ (*nix) or ~/vimfiles/nerdtree_plugin (windows).

The script exposes some prototype objects that can be used to manipulate the
tree and/or get information from it: 

g:NERDTreePath
g:NERDTreeDirNode
g:NERDTreeFileNode
g:NERDTreeBookmark

See the code/comments in NERD_tree.vim to find how to use these objects. The
following code conventions are used:
* class members start with a capital letter
* instance members start with a lower case letter
* private members start with an underscore

See this blog post for more details:
http://got-ravings.blogspot.com/2008/09/vim-pr0n-prototype-based-objects.html

Одним из возможных решений является создание сопоставления, которое извлекает путь из файла под курсором и использует :edit для него.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .