Saya membagikan file konfigurasi VIM saya di antara beberapa komputer. Namun, saya ingin beberapa pengaturan spesifik untuk komputer tertentu.
Misalnya, ukuran font pada laptop resolusi tinggi harus berbeda dengan desktop resolusi rendah. Dan yang lebih penting, saya ingin gVIM di Windows untuk berperilaku lebih windowsy dan MacVim di OSX untuk berperilaku lebih maccy dan gVIM di Linux untuk berperilaku seperti biasa. (Itu mungkin sentimen aneh, tapi saya sangat terbiasa untuk beralih mode mental ketika berpindah OS)
Apakah ada cara untuk membuat beberapa pengaturan di .vimrc
mesin-atau OS-dependent?
vim
operating-systems
vimrc
dependencies
bastibe
sumber
sumber
has('gui_running')
jika Anda perlu membedakan antara mode tty dan mode GUI.has('mac')
itu benar untuk semua Mac atau hanya Mac OS-X. Lihat:help feature-list
daftar lengkapnya.has('unix')
. Kesalahanku.has("mac")
. Dugaan saya adalah bahwa mereka menggunakan beberapa tambalan yang benar-benar membuat fitur tes berfungsi. Jika Anda mengandalkanhas("mac")
tes, lakukan beberapa tes untuk memastikan itu didukung pada vim Anda.Untuk menguji mesin tertentu, Anda dapat menguji output dari
hostname
perintah. Sebagai contoh,Anda juga dapat menguji nilai variabel lingkungan yang tersedia:
The
$DISPLAY
variabel juga dapat berguna.sumber
system('hostname')
adalahmachine.mycompany.com\n
, jadi saya harus mengubah perintah penggantisubstitute(system('hostname'), '\.\_.*$', '', '')
.Saya memiliki cuplikan ini di
vimrc
:Ini hanya dijalankan
source $HOME/.$HOSTNAME.vimrc
jika ada. Saya sudah menggunakanhostname()
dan penggabungan, Anda juga bisa menggunakan lebih ringkasexpand('$HOME/.$HOSTNAME.vimrc')
jika Anda tahu bahwa$HOSTNAME
selalu ditetapkan.sumber
Jawaban sebelumnya tentang deteksi OS tidak mendeteksi OS X di MacVim untuk saya (dan juga tidak menggunakan
has("macunix")
seperti yang disarankan oleh dokumentasi).Inilah yang saya gunakan untuk membedakan antara Windows dan OS X:
Catatan yang
has("win32")
bekerja untuk saya, bahkan dalam 64 bit Vim pada Windows 64 bit.Anda juga bisa menggunakan tes serupa
uname
di dalamif has("unix")
blok untuk membedakan rasa Unix lainnya. Jalankan sajauname
atauuname -a
dari baris perintah untuk melihat apa yang perlu Anda bandingkans:uname with
. Lihat juga:h matchstr()
jika Anda perlu membandingkan hanya sebagian dari output uname.sumber
Dengan banyak mesin, daftar semua nama host di
.vimrc
dapat menjadi membosankan, mungkin lebih mudah untuk membedakan antara rasa unix yang berbeda:sumber
Anda bisa memasukkan hal-hal khusus-OS ke dalam kustom .gvimrc untuk setiap mesin, dan menggunakan .vimrc umum pada semuanya. Kedua file dibaca ketika GVim dimulai, hanya .vimrc dibaca ketika Vim non-gui dimulai.
sumber
Mengenai pemisahan antara Linux dan Windows - Anda dapat dengan mudah memasukkan pengaturan yang berbeda
.vimrc
dan_vimrc
, karenanya.sumber