autochdir и NERDTree

autochdir автоматически устанавливает текущим рабочим каталогом текущий файл, в котором находится курсор. Я хотел бы исключить autochdir из изменения каталога, если курсор находится в окне NERDTree.

Например, если текущий файл, над которым я работаю, находится в ~/foo, а окно NERDTree находится в ~/lots/of/stuff/here, я бы хотел перейти в окно NERDTree и по-прежнему установить текущий рабочий каталог в ~/foo.

Таким образом, можно применить привязку клавиш CD, которая установит корневой узел дерева NERDTree на ~/foo. В противном случае ужасно неудобно вручную изменять корневой узел дерева в окне NERDTree, перейдя к ~/foo, а затем применив комбинацию клавиш cd.


person Dustin Tran    schedule 28.11.2014    source источник


Ответы (1)


От 1_:

Этот параметр предусмотрен для обратной совместимости с Vim, выпущенным с Sun ONE Studio 4 Enterprise Edition.
Примечание. Когда этот параметр включен, некоторые подключаемые модули могут не работать.

т.е. он устарел, негибок и ломает плагины. Я предлагаю вам не использовать его, а вместо этого использовать один из альтернативных, более настраиваемых механизмов здесь . Например,

autocmd BufEnter * if &ft !~ '^nerdtree$' | silent! lcd %:p:h | endif

Однако, несмотря на то, что это не изменяет текущий каталог, когда вы загружаете NERDTree, оно также не сохраняет его. Я не уверен на 100%, что вы имеете в виду в своем последнем абзаце.

person Amadan    schedule 28.11.2014
comment
Я бы не был так резок по поводу этой очень полезной опции. Я использую его с 100+ плагинами без проблем. Однако вы правы в том, что для этого конкретного случая использования эмуляция autocmd была бы полезна (хотя в этой примитивной форме у нее есть другие недостатки...) - person Ingo Karkat; 28.11.2014
comment
@IngoKarkat: Достаточно честно. Лично меня бы раздражало, если бы pwd изменилось не по моей вине, так что это, очевидно, недостаточно проверено. :) - person Amadan; 28.11.2014