Comment ajouter NERDTree à votre .vimrc

118

Comment ajouter NERDTree à mon .vimrc?

chutsu
la source
J'ai mis à jour ma réponse. Je ne suis pas sûr que vous puissiez l'ajouter à votre .vimrc pour faire ce que vous voulez, mais je sais que vous pouvez exécuter vim à partir de la ligne de commande d'une manière qui ouvre automatiquement NERDTree. Jetez un oeil :)
Steven Kryskalla

Réponses:

199

D'accord, la version précédente était un peu laconique, mais la réponse que vous recherchez est d'ajouter la ligne ci-dessous dans votre ~/.vimrc fichier. Il indique à Vim que vous souhaitez configurer une commande à exécuter au démarrage de Vim, mais comme cela dépend de divers plugins à charger, vous ne voulez pas l'exécuter tant que toute l'initialisation n'est pas terminée:

autocmd VimEnter * NERDTree

Si, cependant, vous êtes ennuyé par le fait que le curseur démarre toujours dans la fenêtre NERDTree, vous pouvez ajouter une deuxième autocommande qui déplacera le curseur dans la fenêtre principale:

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p
Douglas Mayle
la source
Je ne sais pas pourquoi mais cela ne fonctionne pas pour moi. Je dois appeler: NERDTreeToggle à l'intérieur de vim pour montrer quand même
nerdtree
Si vous utilisez un script tel que vimpager, vous devez déplacer ces lignes vers votre /.vim/after/plugin/NERD_tree.vimscript, afin qu'il n'essaie pas de s'exécuter avec les plugins désactivés.
Joshua Olson
9
Vous n'avez pas besoin de deux autocmd séparés:autocmd VimEnter * NERDTree | wincmd p
Dave James Miller
puis-je simplement spécifier le chemin réel dans lequel je veux commencer? - Yup fonctionne avec un dossier (juste pas de barre oblique à la fin)
AturSams
1
Je préfère faire ce qui suit: autocmd VimEnter * NERDTreeet puis autocmd VimEnter * if argc() | wincmd p | endif. De cette façon, le curseur est sur NERDTree si je n'ai pas ouvert un fichier spécifique, mais si j'ai choisi un fichier, il démarre dans la fenêtre principale.
user2275806
20

J'aime voir NERDTree uniquement lorsque je lance vim sans arguments de fichier, j'ai donc ajouté ceci à mon .vimrc:

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

Êtes-vous sur un système Windows ou unix-y?

Si vous êtes sur un système unix-y, vous insérez des plugins ~/.vim/plugin. Voici à quoi ressemble mon répertoire de plugins:

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

Après cela, il commence à fonctionner tout de suite. Essayez d'exécuter vim comme ceci:

$ vim .

Il devrait ouvrir le répertoire courant dans l'arborescence NERD.

Si vous êtes sous Windows, vous mettez des plugins ici: C:\Program Files\Vim\vim70\plugin


Pour que NERDTree se charge automatiquement lorsque vous démarrez vim, exécutez-le comme ceci à partir de la ligne de commande:

$ vim -c "NERDTree" some_file.txt

Vous pouvez définir un alias pour cela dans votre .bashrc:

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

Maintenant, chaque fois que vous exécutez vimt(au lieu devim ), vous ouvrirez également NERDTree sur le côté gauche de la fenêtre.

Vous pouvez également ajouter une touche de raccourci pour démarrer NERDTree de .vimrccette manière:

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

nmap <ESC>t :OpenNERDTree<CR>

Maintenant , quand vous frappez Escalors til sautera NERDTree ouvert.

Steven Kryskalla
la source
J'utilise une machine Unix-y. J'ai NERDTree installé, ce dont j'ai besoin est d'avoir NERDTree pour démarrer lorsque je tape vim dans la ligne de commande. Pour qu'un navigateur de fichiers s'ouvre toujours à gauche, comme dans Textmate. Je ne sais pas quoi mettre dans le vimrc pour faire ça, j'ai essayé: NERDTree mais il ne semble pas reconnaître la commande ...
chutsu
2
Je pensais que j'ajouterais qu'il existe un mappage intégré: NERDTreeToggle que vous pouvez mapper, ce qui rend votre fonction personnalisée plutôt redondante.
Gavin Gilmour le
1
Excellent conseilalias vimt='vim -c "NERDTree" $1'
pedrosaurio
8

Selon les instructions de NERDTree, vous pouvez simplement utiliser pathogen.vim . Installez-le avec:

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

Ajoutez ceci à votre .vimrc:

execute pathogen#infect()

puis installez NERDTree:

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

Et si vous souhaitez ouvrir automatiquement un NERDTree au démarrage de Vim, ajoutez ce qui suit à votre .vimrc:

autocmd vimenter * NERDTree
TenJack
la source
7

Les réponses ici ont un problème mineur.

Si vous appelez vim --nopluginou utilisez un script qui utilise un --nopluginmode tel que vimpager , cela provoquera cette erreur:

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

Pour éviter cela, mettez la commande à la ~/.vim/after/plugin/NERD_tree.vimplace:

autocmd VimEnter * NERDTree

Et cela pourrait également être une bonne idée de tester ce qui NERDtreeest également disponible, à savoir:

if exists("loaded_nerd_tree")
    autocmd VimEnter * NERDTree
endif
Mikel
la source
1
Good One ... J'utilise aussi Vim comme téléavertisseur et j'ai simplement ajouté un argument pour désactiver les autocommandes ... 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
la source