So fügen Sie NERDTree zu Ihrer .vimrc hinzu

118

Wie füge ich NERDTree zu meiner .vimrc hinzu?

Chutsu
quelle
Ich habe meine Antwort aktualisiert. Ich bin nicht sicher, ob Sie es zu Ihrer .vimrc hinzufügen können, um das zu tun, was Sie wollen, aber ich weiß, dass Sie vim über die Befehlszeile so ausführen können, dass NERDTree automatisch geöffnet wird.
Werfen

Antworten:

199

Okay, die vorherige Version war etwas knapp, aber die Antwort, die Sie suchen, besteht darin, die folgende Zeile in Ihre ~/.vimrcDatei einzufügen. Es teilt Vim mit, dass Sie einen Befehl einrichten möchten, der beim Start von Vim ausgeführt werden soll. Da dies jedoch von verschiedenen zu ladenden Plugins abhängt, möchten Sie ihn erst ausführen, wenn alle Initialisierungen abgeschlossen sind:

autocmd VimEnter * NERDTree

Wenn Sie sich jedoch darüber ärgern, dass der Cursor immer im NERDTree-Fenster startet, können Sie einen zweiten automatischen Befehl hinzufügen, der den Cursor in das Hauptfenster bewegt:

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p
Douglas Mayle
quelle
Ich weiß nicht warum, aber das funktioniert bei mir nicht. Ich muss anrufen: NERDTreeToggle in vim, um Nerdtree trotzdem zu zeigen
hgf
Wenn Sie ein Skript wie vimpager verwenden, sollten Sie diese Zeilen in Ihr /.vim/after/plugin/NERD_tree.vimSkript verschieben, damit es nicht versucht, mit deaktivierten Plugins ausgeführt zu werden.
Joshua Olson
9
Sie brauchen keine zwei separaten Autocmds:autocmd VimEnter * NERDTree | wincmd p
Dave James Miller
Kann ich einfach den tatsächlichen Pfad angeben, in dem ich beginnen möchte? - Yup arbeitet mit einem Ordner (nur kein Schrägstrich am Ende)
AturSams
1
Ich mache lieber folgendes: autocmd VimEnter * NERDTreeund dann autocmd VimEnter * if argc() | wincmd p | endif. Auf diese Weise befindet sich der Cursor auf NERDTree, wenn ich keine bestimmte Datei geöffnet habe, aber wenn ich eine Datei ausgewählt habe, wird sie im Hauptfenster gestartet.
user2275806
20

Ich möchte NERDTree nur sehen, wenn ich vim ohne Dateiargumente starte, also habe ich dies zu meiner .vimrc hinzugefügt:

autocmd VimEnter * if !argc() | NERDTree | endif
gsf
quelle
19

Sind Sie auf einem Windows- oder Unix-System?

Wenn Sie auf einem Unix-System arbeiten, fügen Sie Plugins hinzu ~/.vim/plugin. So sieht mein Plugin-Verzeichnis aus:

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

Danach funktioniert es sofort. Versuchen Sie, vim wie folgt auszuführen:

$ vim .

Es sollte das aktuelle Verzeichnis in der NERD-Baumansicht öffnen.

Wenn Sie unter Windows arbeiten, fügen Sie hier Plugins ein: C:\Program Files\Vim\vim70\plugin


Damit NERDTree beim Starten von vim automatisch geladen wird, führen Sie es folgendermaßen über die Befehlszeile aus:

$ vim -c "NERDTree" some_file.txt

Sie können hierfür einen Alias ​​festlegen in .bashrc:

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

Wenn Sie jetzt vimt(statt vim) ausführen, öffnen Sie auch NERDTree auf der linken Seite des Fensters.

Sie können auch eine Tastenkombination hinzufügen, um NERDTree folgendermaßen zu starten .vimrc:

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

nmap <ESC>t :OpenNERDTree<CR>

Nun , wenn Sie schlagen Escdann twird es geöffnet NERDTree Pop.

Steven Kryskalla
quelle
Ich verwende eine Unix-y-Maschine. Ich habe NERDTree installiert. Ich brauche NERDTree, um zu starten, wenn ich vim in die Befehlszeile eingebe. Damit öffnet sich immer ein Dateibrowser nach links, wie in Textmate. Ich weiß nicht, was ich in das vimrc setzen soll, um dies zu tun, ich habe versucht: NERDTree, aber es scheint den Befehl nicht zu erkennen ...
chutsu
2
Ich dachte, ich würde hinzufügen, dass es ein: NERDTreeToggle-integriertes Mapping gibt, dem Sie zuordnen können, wodurch Ihre benutzerdefinierte Funktion ziemlich redundant wird.
Gavin Gilmour
1
Ausgezeichneter Tippalias vimt='vim -c "NERDTree" $1'
Pedrosaurio
8

Gemäß den NERDTree-Anweisungen können Sie einfach pathogen.vim verwenden . Installieren Sie es mit:

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

Fügen Sie dies Ihrer .vimrc hinzu:

execute pathogen#infect()

Installieren Sie dann NERDTree:

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

Wenn Sie einen NERDTree beim Start von Vim automatisch öffnen möchten, fügen Sie Ihrer .vimrc Folgendes hinzu:

autocmd vimenter * NERDTree
TenJack
quelle
7

Die Antworten hier haben ein kleines Problem.

Wenn Sie vim --nopluginein Skript aufrufen oder verwenden, das den --nopluginModus wie Vimpager verwendet , wird der folgende Fehler verursacht:

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

Um dies zu vermeiden, geben Sie ~/.vim/after/plugin/NERD_tree.vimstattdessen den folgenden Befehl ein :

autocmd VimEnter * NERDTree

Und es könnte auch eine gute Idee sein, zu testen, ob auch NERDtreeverfügbar ist, dh:

if exists("loaded_nerd_tree")
    autocmd VimEnter * NERDTree
endif
Mikel
quelle
1
Gut ... Ich benutze Vim auch als Pager und habe einfach ein Argument hinzugefügt, um automatische Befehle zu deaktivieren ... export MANPAGER='col -bx | mvim -c ":set ft=man nonu nolist" -c ":autocmd!" -M -R - > /dev/null 2>&1'
Eddie B
7
" NERD Tree
nmap <silent> <special> <F2> :NERDTreeToggle<RETURN>
SergioAraujo
quelle