Как добавить NERDTree в ваш .vimrc

Как мне добавить NERDTree в мой .vimrc?


person chutsu    schedule 19.09.2009    source источник
comment
Я обновил свой ответ. Я не уверен, что вы можете добавить его в свой .vimrc, чтобы делать то, что хотите, но я знаю, что вы можете запускать vim из командной строки таким образом, чтобы автоматически открывать NERDTree. Посмотри :)   -  person Steven Kryskalla    schedule 19.09.2009


Ответы (5)


Хорошо, предыдущая версия была немного краткой, но ответ, который вы ищете, - добавить строку ниже в ваш ~/.vimrc файл. Он сообщает Vim, что вы хотите настроить команду для запуска при запуске Vim, но поскольку это зависит от загружаемых плагинов, вы не хотите запускать ее, пока не будет завершена вся инициализация:

autocmd VimEnter * NERDTree

Если, однако, вас раздражает тот факт, что курсор всегда начинается в окне NERDTree, вы можете добавить вторую автокоманду, которая переместит курсор в главное окно:

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p
person Douglas Mayle    schedule 19.09.2009
comment
Не знаю почему, но у меня это не работает. Мне нужно позвонить: NERDTreeToggle внутри vim, чтобы все равно показывать nerdtree - person hgf; 09.12.2010
comment
Если вы используете такой сценарий, как vimpager, вам следует переместить эти строки в свой /.vim/after/plugin/NERD_tree.vim скрипт, чтобы он не выполнялся с отключенными плагинами. - person Joshua Olson; 23.04.2011
comment
Вам не нужны две отдельные команды autocmd: autocmd VimEnter * NERDTree | wincmd p - person Dave James Miller; 22.04.2012
comment
Могу я просто указать фактический путь, с которого я хочу начать? - Ага работает с папкой (только без косой черты в конце) - person AturSams; 15.09.2014
comment
Я предпочитаю делать следующее: autocmd VimEnter * NERDTree, а затем autocmd VimEnter * if argc() | wincmd p | endif. Таким образом, курсор находится на NERDTree, если я не открывал конкретный файл, но если я выбрал файл, он запускается в главном окне. - person user2275806; 15.04.2015

Мне нравится видеть NERDTree только тогда, когда я запускаю vim без аргументов файла, поэтому я добавил это в свой .vimrc:

autocmd VimEnter * if !argc() | NERDTree | endif
person gsf    schedule 09.05.2012

Вы работаете в системе Windows или unix-y?

Если вы используете систему unix-y, вы помещаете плагины в ~/.vim/plugin. Вот как выглядит мой каталог плагинов:

$ ls ~/.vim/plugin
NERD_tree.vim  scratch.vim  scratchfind.vim

После этого сразу начинает работать. Попробуйте запустить vim вот так:

$ vim .

Он должен открыть текущий каталог в дереве NERD.

Если вы работаете в Windows, добавьте сюда плагины: C:\Program Files\Vim\vim70\plugin


Чтобы NERDTree загружался автоматически при запуске vim, запустите его из командной строки следующим образом:

$ vim -c "NERDTree" some_file.txt

Вы можете установить для этого псевдоним в своем .bashrc:

alias vimt='vim -c "NERDTree" $1'

Теперь всякий раз, когда вы запускаете vimt (вместо vim), вы также открываете NERDTree в левой части окна.

Вы также можете добавить сочетание клавиш для запуска NERDTree в вашем .vimrc следующим образом:

function OpenNERDTree()
  execute ":NERDTree"
endfunction
command -nargs=0 OpenNERDTree :call OpenNERDTree()

nmap <ESC>t :OpenNERDTree<CR>

Теперь, когда вы нажмете Esc, затем t, откроется NERDTree.

person Steven Kryskalla    schedule 19.09.2009
comment
Я использую Unix-машину. У меня установлено NERDTree, мне нужно, чтобы NERDTree запускался, когда я набираю vim в командной строке. Чтобы файловый браузер всегда открывался слева, как в Textmate. Я не знаю, что добавить в vimrc для этого, я пробовал: NERDTree, но он, похоже, не распознает команду ... - person chutsu; 19.09.2009
comment
Подумал, что я бы добавил, что есть: NERDTreeToggle, встроенный в сопоставление, которое вы можете сопоставить, что делает вашу настраиваемую функцию довольно избыточной. - person Gavin Gilmour; 19.09.2009
comment
Отличный совет alias vimt='vim -c "NERDTree" $1' - person pedrosaurio; 04.06.2013

В соответствии с инструкциями NERDTree вы можете просто использовать pathogen.vim. Установите его с помощью:

mkdir -p ~/.vim/autoload ~/.vim/bundle; \
curl -Sso ~/.vim/autoload/pathogen.vim \
        https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim

Добавьте это в свой .vimrc:

execute pathogen#infect()

затем установите NERDTree:

cd ~/.vim/bundle
git clone https://github.com/scrooloose/nerdtree.git

А если вы хотите автоматически открывать NERDTree при запуске Vim, добавьте в свой .vimrc следующее:

autocmd vimenter * NERDTree
person TenJack    schedule 27.01.2013

Здесь есть небольшая проблема.

Если вы вызываете vim --noplugin или используете сценарий, который использует режим --noplugin, например vimpager , это вызовет эту ошибку:

Error detected while processing VimEnter Auto commands for "*":
E492: Not an editor command: NERDTree

Чтобы этого избежать, введите вместо этого команду ~/.vim/after/plugin/NERD_tree.vim:

autocmd VimEnter * NERDTree

Также было бы неплохо проверить, доступен ли NERDtree, то есть:

if exists("loaded_nerd_tree")
    autocmd VimEnter * NERDTree
endif
person Mikel    schedule 23.04.2011
comment
Хороший ... Я также использую Vim в качестве пейджера и просто добавил аргумент для отключения автокоманд ... export MANPAGER='col -bx | mvim -c ":set ft=man nonu nolist" -c ":autocmd!" -M -R - > /dev/null 2>&1' - person Edward J Beckett; 19.06.2012