La première chose à faire est de lancer Vim avec les paramètres par défaut:
vim -u NONE -U NONE -N
Les -u NONE
empêche ViM de se charger votre vimrc, -U NONE
empêche de charger votre Vim gvimrc, et -N
indique à Vim d'utiliser sans compatible avec le mode (ce n'est pas nécessaire, mais la plupart des utilisateurs ne sont pas utilisés Vim en mode « compatible »). Notez que le NONE
doit obligatoirement être en majuscule.
Sous Windows, vous pouvez ajouter ces indicateurs en créant un nouveau raccourci 1 .
Si le problème persiste, alors vous savez que ce n'est pas quelque chose dans votre vimrc.
Si le problème disparaît, il est maintenant causé par quelque chose dans votre fichier vimrc.
Ce n'est pas mon vimrc!
Hourra! Allez poser votre question. N'oubliez pas de mentionner que vous avez essayé de démarrer Vim sans fichier vimrc!
C'est donc mon vimrc, et maintenant?
Si vous ne l'avez pas déjà fait, vous souhaiterez probablement d'abord enregistrer une copie de sauvegarde de votre fichier vimrc.
Vérifiez les plugins
La prochaine chose que vous voudrez probablement faire est de désactiver d’abord tous les plugins; les plugins peuvent changer un peu dans Vim. Si cela résout le problème, essayez de trouver
quel plugin en le réactivant un par un. Une fois que vous avez trouvé quel plugin est à l'origine du problème, vous pouvez essayer de le réparer en lisant la documentation de ce plugin et / ou en posant une question étiquetée plugin-<name>
.
Si ce n'est pas un plugin et que vous n'avez aucune idée de la cause de votre problème, alors c'est une procédure d'essai et d'erreur. Mettez en commentaire une ou plusieurs lignes de votre vimrc, démarrez Vim, vérifiez si le problème se produit et répétez cette procédure jusqu'à ce que le problème ne se produise plus. Le moyen le plus rapide de le faire est:
- Commentez (ou supprimez) environ la moitié de votre fichier vimrc.
- Redémarrez Vim ou ouvrez un nouveau Vim (recharger le fichier vimrc n’est pas suffisant, car les paramètres ne sont pas effacés).
- Le problème est-il maintenant parti? Remettez en place la partie que vous avez retirée (maintenir Vim ouvert et utiliser annuler est utile ici) et répétez l'étape 1 de la partie que vous avez rajoutée.
- Le problème persiste-t-il? Passez à l'étape 1.
En fin de compte, vous devriez avoir une seule option ou une combinaison de quelques options qui cause votre problème. Vous pouvez en savoir plus sur toutes les options de Vim en utilisant:
:help 'option_name'
Les citations sont importantes ici, cela fonctionne généralement sans elles, mais parfois vous vous retrouvez sur la mauvaise page si vous les omettez.
Si vous êtes toujours confus après avoir lu la page d'aide, vous savez où poser une question ;-)
Débogage d'un seul plugin
Si vous souhaitez isoler un seul plug-in, peut-être poser une question à ce sujet, vous souhaitez charger le moins possible, tout en chargeant le plug-in; vous pouvez facilement le faire avec la fonctionnalité de paquets de Vim. Cela nécessite Vim 8 ou une version raisonnablement récente de Neovim.
Créer un nouveau répertoire vide; nous allons utiliser le ~/plugin
chemin dans cet exemple. Maintenant, placez le plugin dans le pack/plugins/start/$name
répertoire normal . Par exemple:
git clone https://github.com/fatih/vim-go.git ~/plugin/pack/plugins/start/vim-go
Créez un test-vimrc
fichier avec le contenu suivant; Cela garantira que Vim chargera des plugins à partir du ~/plugin
répertoire et non du ~/.vim
répertoire:
set nocompatible
set packpath=~/plugin,/usr/share/vim/vimfiles,/usr/share/vim/vim80,/usr/share/vim/vimfiles/after,~/plugin/after
packloadall!
syntax on
filetype plugin indent on
Commencez Vim avec:
vim -U NONE -u ~/test-vimrc
Vous avez maintenant un vimrc minimal avec seulement ce plugin.
Notes de bas de page
1 Par exemple: sur 64 bits de Windows, le raccourci ressemblerait à quelque chose comme ceci: "C:\Program Files (x86)\Vim\vim74\vim.exe" -u NONE -U NONE -N
. Pour le créer, cliquez avec le bouton droit de la souris sur l'Explorateur de fichiers à l'endroit où vous souhaitez utiliser le raccourci, puis sélectionnez Nouveau -> Raccourci et collez le texte du raccourci. Vous devrez peut-être modifier le chemin Vim si votre Vim est installé ailleurs.
-U NONE
si vous avez-u NONE
.Il existe un
-D
paramètre Vim spécialement conçu pour le débogage qui passera en mode débogage après l'exécution de la première commande à partir d'un script.Par exemple, pour exécuter Vim en mode débogage sans plug-ins, exécutez-vous en tant que:
Tapez
n
/next
pour analyser la ligne suivante et maintenez enfoncé Enter.Et
cont
ouq
pour revenir à l'vim
interface.Si vous utilisez une version graphique, insérez une
gui
commande dans votre vimrc pour démarrer le débogage juste après cette commande.Appuyez sur Ctrl+ dpour obtenir la liste des commandes disponibles
Lire la suite:
:help debug-scripts
la source
Comme déjà mentionné, essayez d’abord
vim -u NONE -U NONE -N
de vous assurer que votre vanilla vim fonctionne bien.Ensuite, démarrez vim normalement et vérifiez
depuis vim après le problème, qui affichera tous les avertissements et les erreurs.
Enfin, lancez vim avec la commande suivante
qui créera un fichier journal appelé
logfile.log
,-V9
correspond au niveau de journalisation et tente de reproduire votre problème.la source
Encore un conseil: aussi caveman que cela puisse paraître, j'aime bien ajouter: echom "message" à mon fichier .vimrc pour voir ce qui est exécuté et ce qui ne l'est pas.
Par exemple
Cela m'aide à voir rapidement si le bloc if est en cours d'exécution, etc. Le message sera imprimé sur la console lors du prochain démarrage de vim.
la source
echom
une autre commande intéressante,:messages
vous obtenez le journal complet des messages en écho. Il peut parfois être utile de les regarder après le démarrage.Une chose que j’ai trouvée utile est de conserver une collection de variables qui bascule d’une partie à l’autre de
.vimrc
sorte que vous puissiez la désactiver ou la réactiver sans avoir à commenter. Cela a aussi l’effet secondaire agréable de vous obliger à réfléchir à l’organisation de votre.vimrc
.Voici un exemple de section gardée par un
if
:la source
Mon temps de chargement de vimrc était très lent, environ 400 ms, et je l'ai réduit à 20 ms uniquement en supprimant cette ligne:
Assurez-vous de ne pas avoir d'appels à des commandes externes de ce type.
la source
Voici une procédure simple pour vous aider à démarrer.
:source %
ou:so $MYVIMRC
la source