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


118

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


Я обновил свой ответ. Я не уверен, что вы можете добавить его в свой .vimrc, чтобы делать то, что хотите, но я знаю, что вы можете запустить vim из командной строки таким образом, чтобы NERDTree открывался автоматически. Взгляните :)
Стивен Крыскалла

Ответы:


199

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

autocmd VimEnter * NERDTree

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

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p

Не знаю почему, но у меня это не работает. Мне нужно позвонить: NERDTreeToggle внутри vim, чтобы все равно показывать nerdtree
hgf

Если вы используете скрипт, например vimpager, вам следует переместить эти строки в свой /.vim/after/plugin/NERD_tree.vimскрипт, чтобы он не запускался с отключенными плагинами.
Джошуа Олсон

9
Вам не нужны две отдельные команды autocmd:autocmd VimEnter * NERDTree | wincmd p
Дэйв Джеймс Миллер,

Могу я просто указать реальный путь, с которого я хочу начать? - Да работает с папкой (только без косой черты в конце)
AturSams

1
Я предпочитаю делать следующее: autocmd VimEnter * NERDTreeа затем autocmd VimEnter * if argc() | wincmd p | endif. Таким образом, курсор находится на NERDTree, если я не открыл конкретный файл, но если я выбрал файл, он запускается в главном окне.
user2275806

20

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

autocmd VimEnter * if !argc() | NERDTree | endif

19

Вы работаете в системе 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.


Я запускаю машину Unix-y. У меня установлено NERDTree, мне нужно, чтобы NERDTree запускался, когда я набираю vim в командной строке. Чтобы файловый браузер всегда открывался слева, как в Textmate. Я не знаю, что добавить в vimrc, чтобы сделать это, я попробовал: NERDTree, но он, похоже, не распознает команду ...
chutsu

2
Думаю, я бы добавил, что есть: NERDTreeToggle, встроенный в сопоставление, которое вы можете сопоставить, что делает вашу пользовательскую функцию довольно избыточной.
Гэвин Гилмор,

1
Отличный советalias vimt='vim -c "NERDTree" $1'
Pedrosaurio

8

В соответствии с инструкциями 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

7

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

Если вы вызовете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

1
Хороший ... Я также использую Vim в качестве пейджера и просто добавил аргумент для отключения автокоманд ... export MANPAGER='col -bx | mvim -c ":set ft=man nonu nolist" -c ":autocmd!" -M -R - > /dev/null 2>&1'
Эдди Б.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.