Untuk memastikan bahwa perilaku tidak terpengaruh oleh konfigurasi pribadi saya, saya ingin memulai Vim dengan cara yang mengabaikan semua file konfigurasi yang diinstal pengguna, seolah-olah Vim baru saja diinstal baru untuk pertama kalinya dan pengguna telah menjalankannya segera.
Ini dibahas dalam FAQ yang menunjukkan bahwa jawabannya adalah memulai Vim dengan perintah berikut:
vim -u NONE -U NONE -N -i NONE
Ini mendapatkan sebagian besar jalan di sana, tetapi runtimepath
opsi masih berisi ~/.vim
dan, terutama,, ~/.vim/after
(jadi misalnya jika saya kemudian mengaktifkan deteksi tipe file dan mengubah tipe file, kode di ~/.vim/after/syntax/the_relevant_filetype.vim
akan dieksekusi).
Saya dapat mengatasi masalah khusus ini dengan menjalankan perintah berikut saat startup *:
:set runtimepath-=~/.vim
:set runtimepath-=~/.vim/after
... tapi saya tidak yakin apakah:
- Ini adalah solusi yang tangguh: Apakah itu satu-satunya jalur yang dapat menyebabkan konfigurasi pengguna berlaku? Apakah ada hal lain yang belum saya pikirkan?
- Ada cara yang lebih baik untuk mencapai hasil yang diinginkan.
* Dengan menggunakan --cmd
atau -u vimrc
shell argumen, atau cukup dengan mengetiknya secara manual.
EDIT : Ini adalah satu contoh spesifik dari jenis masalah yang saya coba untuk perbaiki (Meskipun saya ingin solusi untuk memperbaiki masalah lain yang mungkin saya belum temui.):
Buat file ~ / .vim / after / ftplugin / c.vim, berisi konten:
noremap i :echom "This is not default behaviour"<CR>
Sekarang kami memiliki beberapa konfigurasi yang dipasang pengguna yang ingin kami abaikan. Mari kita coba solusi yang disarankan oleh FAQ.
Jalankan Vim dengan perintah:
vim -u NONE -U NONE -N -i NONE
Masukkan perintah:
:filetype plugin on :set ft=c i
Perilaku yang diinginkan : Vim harus masuk ke mode Sisipkan. Inilah yang akan dilakukan jika tidak ada konfigurasi pengguna.
Perilaku yang diamati : Vim mencetak "Ini bukan perilaku default"
HOME=/dev/null vim -u NONE
:?:cd ~
, tetapi juga lokasi defaultviminfo
file adalah $ HOME, yang dapat menyebabkan E138. Saya kira membuat direktori baru yang kosong dan menggunakannya untuk $ HOME mungkin merupakan solusi terbaik.-u NONE
?/tmp
mungkin lebih baik, itu adalah pikiran pertama saya, tetapi kemudian saya memilih / dev / null sebagai lubang hitam. ... Atau semacamnyaHOME=$(mktemp -d) vim ...
.-u NONE
? Tergantung pada perilaku apa yang Anda butuhkan, saya kira.Jawaban:
Pada Vim 8.0.1554 (sayangnya belum Neovim), Anda dapat menggunakan
vim --clean
. Metode ini direkomendasikan oleh:help bugs
.:help --clean
dokumen:sumber
$HOME
variabel. Pengembang Goodjob Vim. Dan terima kasih atas jawabannya!--clean
juga bekerja denganneovim
pada master sekarang ( github.com/neovim/neovim/commit/… , untuk dimasukkan dalam 0.4.0), tetapi tidak mengecualikan direktori home.Salah satu cara untuk menghilangkan file khusus pengguna adalah dengan menggunakan nilai yang berbeda
$HOME
. Agar tidak ada yang dapat dibaca, atau ditulis (seperti viminfo), Anda dapat menggunakan/dev/null
:Ini akan menyebabkan kesalahan
viminfo
, jadi, Anda bisa membuat folder sementara, atau menggunakan yang sudah ada (seperti/tmp
):Dengan
$HOME
,-u NONE
mungkin tidak diperlukan, tergantung pada apa yang telah ditambahkan administrator Anda ke seluruh sistemvimrc
. Sebagai contoh, pada semua sistem lab saya mengelola, saya menambahkan/etc/vim/vimrc.local
(bersumber secara default dikemas Vim ini/etc/vim/vimrc
) yang memilikinocompatible
,syntax
, dll, set, danfiletype on
juga.sumber
Saya tidak bisa menjawab banyak dari itu tetapi satu hal yang saya tidak lihat disebutkan, dan sedang menjawab interpretasi dari apa yang ada di judul
beberapa telah menyarankan
vim -u NONE
atauvim -u NORC
itu dalam beberapa hal barebones sedikit lebih dari sekadar tidak ada file vimrc. Ketika saya mengetik 'i', itu tidak mengatakan 'masukkan'. Anda mungkin ingin itu masih mengatakan 'masukkan'. Jika Anda mulai vim dengan file vimrc Anda kosong maka itu akan menampilkan insert
itu karena vim memuat konfigurasi default terlebih dahulu.
Anda bisa mengarahkan vim ke file default itu untuk mendapatkan efek dari file vimrc Anda kosong. Periksa yang Anda miliki
/etc/vim/vimrc
, dan Anda dapat melakukannyavim -u /etc/vim/vimrc
atau di osx, file defaultnya adalah/usr/share/vim/vicmrc
sumber
vim --clean
akan memuatdefaults.vim
. Jawaban ini mengacu pada sistem vimrc (Lihat:help system-vimrc
.), Yang saya pikir tidak dimuat olehvim --clean
.:help defaults.vim
), mungkin lebih baik untuk mengubah kata-katadefault config
untuksystem vimrc
dalam jawaban ini. Atau bahkan lebih baik, diskusikan keduanya dalam jawabannya!Dari Vim-FAQ 2.5 :
sumber
ensure that none of the behaviour I'm seeing is caused by user config
- maka tampak seperti Anda coba lakukan persis apa yang dijelaskan dalam FAQ ini. Saya sudah membaca kembali pertanyaan Anda dan masih belum mengerti alasan apa yang Anda sebutkan.runtimepath
pengaturannya.runtimepath
? Sepertinya default untuk opsi ini, seperti yang dijelaskan dalam:help rtp
. Bagaimana nilai ini memengaruhi tes Anda?