Як додати 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
Дейв Джеймс Міллер

Чи можу я просто вказати фактичний шлях, з якого я хочу почати? - Yup працює з папкою (просто ніякої косою рисою в кінці кінців)
AturSams

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

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.