Hari ini, saya menemukan saya .vimrc
tidak berpengaruh. Itu baik-baik saja beberapa jam yang lalu.
Ketika saya meluncurkan vim with $vim --plugin
, :scriptnames
echoed nothing: .vimrc
file tidak bersumber. (Catatan: /etc/vimrc
telah dihapus untuk men-debug masalah ini.)
Kemudian saya mencoba google dan menemukan $VIMINIT
variabel yang mencurigakan.
Inilah nilai dari $VIMINIT
:
$ echo $VIMINIT
set number
Dokumentasi Vim tentang 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 (*)!
Saya tidak dapat memahami dokumentasi vim sepenuhnya. Tampaknya $VIMINIT
dapat mengacaukan startup vim.
Jelas $VIMINIT
:
$ VIMINIT=
$ echo $VIMINIT
Masalah masih ada.
vimrc
invocation
Feng Yu
sumber
sumber
$VIMINIT
memiliki preseden atas.vimrc
file apa pun . Dan itu memenuhi aturan pertama datang pertama dilayani. Jadi ya.vimrc
diabaikan.Jawaban:
Memperluas jawaban @ mMontu; Vim mencari inisialisasi dalam urutan daftar itu sampai menemukan satu. Karena
$VIMINIT
variabel didahulukan ke.vimrc
file, itu memuaskan pencarian dan opsi lain setelah itu diabaikan .Alasannya masih belum berhasil setelah:
Apakah (1) Anda menetapkan variabel lokal, bukan variabel lingkungan. Yang perlu diekspor:
(2) ini masih tidak berfungsi karena
VIMINIT
masih didefinisikan:Apa yang perlu terjadi adalah penghapusan dari lingkungan bersama-sama:
(Perintah ini khusus untuk Bash. Ubah sesuai dengan shell pilihan Anda jika perlu.)
sumber
Anda mungkin salah mengerti dokumentasi:
Jadi jika Anda menggunakan VIMINIT, vimrc tidak akan dimuat.
Anda menyetel $ VIMINIT ke perintah Ex
set number
, yang tidak apa-apa menurut dokumen. Tetapi jika lebih suka vimrc, Anda harus memasukkanset number
pada file itu daripada menggunakan $ VIMINIT. Anda menyebutkan bahwa Anda mengaturnya menjadi kosong dan vimrc Anda masih belum dimuat, tetapi Anda sebenarnya harus menghapus variabel.sumber