Jak dodać NERDTree do pliku .vimrc


118

Jak dodać NERDTree do mojego .vimrc?


Zaktualizowałem odpowiedź. Nie jestem pewien, czy możesz dodać go do swojego .vimrc, aby robić co chcesz, ale wiem, że możesz uruchomić vima z wiersza poleceń w sposób, który automatycznie otwiera NERDTree. Spójrz :)
Steven Kryskalla

Odpowiedzi:


199

W porządku, poprzednia wersja była nieco lakoniczna, ale odpowiedzią, której szukasz, jest dodanie poniższej linii do ~/.vimrcpliku. Mówi Vimowi, że chcesz ustawić polecenie uruchamiane podczas uruchamiania Vima, ale ponieważ zależy to od różnych wtyczek, które mają być załadowane, nie chcesz go uruchamiać, dopóki cała inicjalizacja nie zostanie zakończona:

autocmd VimEnter * NERDTree

Jeśli jednak denerwuje Cię fakt, że kursor zawsze zaczyna się w oknie NERDTree, możesz dodać drugą autokomendę, która przeniesie kursor do głównego okna:

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p

Nie wiem dlaczego, ale to nie działa dla mnie. Muszę zadzwonić: NERDTreeToggle inside vim, aby mimo wszystko pokazać nerdtree
hgf

Jeśli używasz skryptu takiego jak vimpager, powinieneś przenieść te linie do swojego /.vim/after/plugin/NERD_tree.vimskryptu, aby nie próbował wykonywać się z wyłączonymi wtyczkami.
Joshua Olson

9
Nie potrzebujesz dwóch oddzielnych autocmd:autocmd VimEnter * NERDTree | wincmd p
Dave James Miller

czy mogę po prostu określić rzeczywistą ścieżkę, od której chcę zacząć? - Tak działa z folderem (tylko bez ukośnika na końcu)
AturSams

1
Wolę wykonać następujące czynności: autocmd VimEnter * NERDTreea następnie autocmd VimEnter * if argc() | wincmd p | endif. W ten sposób kursor znajduje się na NERDTree, jeśli nie otworzyłem określonego pliku, ale jeśli wybrałem plik, zaczyna się w oknie głównym.
user2275806

20

Lubię widzieć NERDTree tylko wtedy, gdy uruchamiam vima bez argumentów plikowych, więc dodałem to do mojego .vimrc:

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

19

Czy korzystasz z systemu Windows lub unix-y?

Jeśli jesteś w systemie unix-y, umieszczasz wtyczki ~/.vim/plugin. Oto jak wygląda mój katalog wtyczek:

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

Po tym od razu zaczyna działać. Spróbuj uruchomić Vima w ten sposób:

$ vim .

Powinien otworzyć bieżący katalog w widoku drzewa NERD.

Jeśli używasz systemu Windows, umieść wtyczki tutaj: C:\Program Files\Vim\vim70\plugin


Aby NERDTree ładował się automatycznie po uruchomieniu vima, uruchom go w ten sposób z linii poleceń:

$ vim -c "NERDTree" some_file.txt

Możesz ustawić dla tego alias w .bashrc:

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

Teraz za każdym razem, gdy uruchomisz vimt(zamiast vim), otworzysz także NERDTree po lewej stronie okna.

Możesz także dodać klawisz skrótu, aby uruchomić NERDTree w .vimrcten sposób:

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

nmap <ESC>t :OpenNERDTree<CR>

Teraz, gdy trafisz Escwówczas tbędzie to pop otwarte NERDTree.


Używam maszyny Unix-y. Mam zainstalowany NERDTree, potrzebuję NERDTree, aby uruchamiał się po wpisaniu vim w wierszu poleceń. Aby przeglądarka plików zawsze otwierała się po lewej stronie, jak w Textmate. Nie wiem, co włożyć do vimrc, żeby to zrobić, próbowałem: NERDTree, ale wydaje się, że nie rozpoznaje polecenia ...
chutsu

2
Pomyślałem, że dodam, że istnieje wbudowane mapowanie: NERDTreeToggle, do którego można mapować, co sprawia, że ​​funkcja niestandardowa jest raczej zbędna.
Gavin Gilmour

1
Doskonała wskazówkaalias vimt='vim -c "NERDTree" $1'
pedrosaurio

8

Zgodnie z instrukcjami NERDTree możesz po prostu użyć pathogen.vim . Zainstaluj go za pomocą:

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

Dodaj to do swojego .vimrc:

execute pathogen#infect()

następnie zainstaluj NERDTree:

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

A jeśli chcesz automatycznie otwierać NERDTree podczas uruchamiania Vima, dodaj do swojego .vimrc:

autocmd vimenter * NERDTree

7

Odpowiedzi tutaj mają niewielki problem.

Jeśli wywołasz vim --nopluginlub użyjesz skryptu, który używa --noplugintrybu, takiego jak vimpager , spowoduje to ten błąd:

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

Aby tego uniknąć, wpisz polecenie ~/.vim/after/plugin/NERD_tree.vim:

autocmd VimEnter * NERDTree

Dobrym pomysłem może być również przetestowanie, które NERDtreejest również dostępne, tj .:

if exists("loaded_nerd_tree")
    autocmd VimEnter * NERDTree
endif

1
Good One ... Używam również Vima jako pagera i po prostu dodałem argument wyłączający automatyczne polecenia ... export MANPAGER='col -bx | mvim -c ":set ft=man nonu nolist" -c ":autocmd!" -M -R - > /dev/null 2>&1'
Eddie B

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.