126 votes

Comment ajouter NERDTree à votre fichier .vimrc ?

Comment ajouter NERDTree à mon fichier .vimrc ?

0 votes

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 depuis la ligne de commande d'une manière qui ouvre NERDTree automatiquement. Jetez-y un coup d'œil :)

210voto

Douglas Mayle Points 7216

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

autocmd VimEnter * NERDTree

Si, toutefois, vous êtes ennuyé par le fait que le curseur commence 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

0 votes

Je ne sais pas pourquoi mais cela ne fonctionne pas pour moi. Je dois appeler :NERDTreeToggle dans vim pour afficher nerdtree de toute façon.

0 votes

Si vous utilisez un script comme vimpager, vous devez déplacer ces lignes dans votre fichier de configuration. /.vim/after/plugin/NERD_tree.vim script, afin qu'il n'essaie pas de s'exécuter avec des plugins désactivés.

10 votes

Vous n'avez pas besoin de deux autocmd séparés : autocmd VimEnter * NERDTree | wincmd p

24voto

gsf Points 171

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

20voto

lost-theory Points 4356

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

Si vous êtes sur un système unix-y, vous mettez les plugins dans le dossier ~/.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 de lancer vim comme ceci :

$ vim .

Cela devrait ouvrir le répertoire actuel dans l'arborescence NERD.

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


Pour que NERDTree se charge automatiquement au démarrage de vim, exécutez-le comme suit à partir de la ligne de commande :

$ vim -c "NERDTree" some_file.txt

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

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

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

Vous pouvez également ajouter une touche de raccourci pour lancer NERDTree dans votre ordinateur. .vimrc de cette façon :

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

nmap <ESC>t :OpenNERDTree<CR>

Maintenant, quand tu frappes Esc puis t cela ouvrira NERDTree.

0 votes

J'utilise une machine Unix. J'ai installé NERDTree, ce dont j'ai besoin, c'est que NERDTree démarre lorsque je tape vim dans la ligne de commande. De sorte qu'un navigateur de fichiers s'ouvre toujours à gauche, comme dans Textmate. Je ne sais pas quoi mettre dans le vimrc pour faire cela, j'ai essayé :NERDTree mais il ne semble pas reconnaître la commande...

2 votes

J'ai pensé ajouter qu'il existe un mapping :NERDTreeToggle intégré auquel vous pouvez vous connecter, ce qui rend votre fonction personnalisée plutôt superflue.

1 votes

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

7voto

user2571881 Points 1787
" NERD Tree
nmap <silent> <special> <F2> :NERDTreeToggle<RETURN>

7voto

Mikel Points 10000

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

Si vous appelez vim --noplugin ou utiliser un script qui utilise --noplugin comme vimpager cela provoquera cette erreur :

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

Pour éviter cela, placez la commande dans ~/.vim/after/plugin/NERD_tree.vim à la place :

autocmd VimEnter * NERDTree

Et ça pourrait aussi être une bonne idée de tester que NERDtree est également disponible, c'est-à-dire :

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

1 votes

Bien vu ... J'utilise aussi Vim comme pagette 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'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X