Aujourd'hui, j'ai trouvé que mon .vimrc
ne prenait pas effet. C'était ok il y a quelques heures à peine.
Lorsque j'ai lancé vim avec $vim --plugin
, je n'ai :scriptnames
fait aucun écho: le .vimrc
fichier n'était pas d'origine. (Remarque: a /etc/vimrc
été supprimé pour déboguer ce problème.)
Ensuite, j'ai essayé de google et j'ai trouvé une $VIMINIT
variable suspecte.
Voici la valeur de $VIMINIT
:
$ echo $VIMINIT
set number
Documentation Vim sur VIMINIT
:
c. Four places are searched for initializations. The first that exists
is used, the others are ignored. The $MYVIMRC environment variable is
set to the file that was first found, unless $MYVIMRC was already set.
- The environment variable VIMINIT (see also |compatible-default|) (*)
The value of $VIMINIT is used as an Ex command line.
- The user vimrc file(s):
"$HOME/.vimrc" (for Unix and OS/2) (*)
"s:.vimrc" (for Amiga) (*)
"home:.vimrc" (for Amiga) (*)
"$VIM/.vimrc" (for OS/2 and Amiga) (*)
"$HOME/_vimrc" (for MS-DOS and Win32) (*)
"$VIM/_vimrc" (for MS-DOS and Win32) (*)
Note: For Unix, OS/2 and Amiga, when ".vimrc" does not exist,
"_vimrc" is also tried, in case an MS-DOS compatible file
system is used. For MS-DOS and Win32 ".vimrc" is checked
after "_vimrc", in case long file names are used.
Note: For MS-DOS and Win32, "$HOME" is checked first. If no
"_vimrc" or ".vimrc" is found there, "$VIM" is tried.
See |$VIM| for when $VIM is not set.
- The environment variable EXINIT.
The value of $EXINIT is used as an Ex command line.
- The user exrc file(s). Same as for the user vimrc file, but with
"vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc" is
used, depending on the system. And without the (*)!
Je ne pouvais pas comprendre complètement la documentation de vim. Il semble que cela $VIMINIT
puisse gâcher le démarrage de vim.
Clair $VIMINIT
:
$ VIMINIT=
$ echo $VIMINIT
Le problème existe toujours.
vimrc
invocation
Feng Yu
la source
la source
$VIMINIT
a un précédent sur tout.vimrc
fichier. Et il satisfait à la règle du premier arrivé, premier servi. Donc oui.vimrc
est ignoré.Réponses:
Développer la réponse de @ mMontu; Vim recherche l'initialisation dans l'ordre de cette liste jusqu'à ce qu'il en trouve une. Étant donné que la
$VIMINIT
variable a priorité sur le.vimrc
fichier, elle satisfait la recherche et toute autre option après cela est ignorée .La raison pour laquelle cela n'a toujours pas fonctionné après:
Si (1) vous définissez une variable locale et non une variable d'environnement. Cela doit être exporté:
(2) cela ne fonctionnera toujours pas car
VIMINIT
est toujours défini:Ce qui doit arriver, c'est le retrait de l'environnement tous ensemble:
(Ces commandes sont spécifiques à Bash. Modifiez-les en fonction de votre shell préféré si nécessaire.)
la source
Vous avez probablement mal compris la documentation:
Ainsi, si vous utilisez le VIMINIT, le vimrc ne sera pas chargé.
Vous définissez $ VIMINIT sur une commande Ex
set number
, ce qui est correct selon les documents. Mais si vous préférez un vimrc, vous devez l'inclureset number
dans ce fichier au lieu d'utiliser $ VIMINIT. Vous avez mentionné que vous définissez à vider et votre vimrc était toujours pas chargé, mais vous devez réellement désinitialiser la variable.la source