Termasuk di vimrc?

11

Apakah mungkin untuk memasukkan file eksternal yang bersumber di file vimrc?

Apakah sesederhana masalah hanya dengan menambahkan source somefile?

Leandand00
sumber

Jawaban:

15

Tidak seperti itu :source, :runtimetidak perlu jalur absolut untuk bekerja. Ini jauh lebih baik daripada :sourcemembangun pengaturan portabel.

Lihat :help :runtime.

Dalam contoh berikut, kami memberi tahu Vim untuk mencari vimrcfile di direktori yang diberikan oleh runtimepathvariabel. Karena ~/.vim/adalah direktori pertama dalam daftar, runtime vimrcberfungsi seperti :source ~/.vim/vimrctanpa perlu menyediakan jalur yang bergantung pada sistem.

Dalam ~/.vimrc:

runtime vimrc
romainl
sumber
4

Jawabannya harus bergantung pada apa yang ingin Anda sebar di beberapa file. Ada beberapa cara berbeda untuk memiliki konfigurasi di beberapa file. Catatan: perbedaan antara runtimedan sourcetelah dijelaskan, saya tidak akan mengatakan apa-apa lagi tentang hal ini.

Begitu. Anda juga harus memperhitungkan apa. Saat ini, kami jarang memiliki kebutuhan untuk menggunakan soatau rudari .vimrc. Namun, saya masih melakukannya hanya dalam dua kasus:

  • pastikan plugin non-autoload dimuat sebelum akhir .vimrc (untuk mendefinisikan hal-hal lain yang bergantung pada plugin ini)
  • memuat pengaturan spesifik OS

Untuk kasus lain:

  • untuk definisi fungsi, ada plugin autoload;
  • untuk penyorotan sintaksis, skema warna, ada file khusus di direktori eponymous;
  • untuk pengaturan spesifik tipe file, ada plugin tipe file (memiliki autocommand di .vimrc adalah solusi yang buruk, yang tidak menskala);
  • untuk pengaturan khusus proyek, ada plugin seperti local_vimrc;
  • untuk set pemetaan atau fitur kompleks lainnya, ada plugin di mana kita dapat mengelompokkan kembali definisi tematik;

Pada akhirnya, saya miliki di .vimrc saya:

  • opsi global diatur dengan :set
  • prosedur yang dibutuhkan oleh manajer plugin yang saya gunakan
  • berbagai konfigurasi untuk plugin yang saya gunakan (saya menimpa ikatan kunci default di .vimrc)
  • dan beberapa hal (sebenarnya terlalu banyak) yang saya bawa selama 20 tahun.
Luc Hermitte
sumber
3

Ya, atau bahkan adil so somefile. Lihat :help so.

pengguna3224237
sumber
2

Sebagai kompleI saya memiliki baris ini di vimrc saya yang mungkin menarik bagi Anda. Saya gunakan kemudian untuk sumber vimrc lokal yang saya tidak simpan di kontrol sumber dotfiles saya:

" Source a local vimrc {{{
    if has('win32')
        let $MYLOCALVIMRC = $HOME . "/_local.vim"
    else
        let $MYLOCALVIMRC = $HOME . "/.local.vim"
    endif

    if filereadable($MYLOCALVIMRC)
        source $MYLOCALVIMRC
    endif
" }}} 

Bagian pertama yang mendefinisikan nama file ke sumber mungkin tidak menarik untuk Anda, tetapi bagian kedua yang memeriksa apakah file dapat bersumber sebelum sumber itu bisa menarik.

Perhatikan bahwa :h sourcemenyatakan:

Baca perintah Ex dari {file}. Ini adalah perintah yang dimulai dengan ":"

Jadi ini akan memungkinkan Anda untuk sumber file yang berisi vimscript tetapi Anda tidak dapat sumber langsung file yang mengandung bahasa lain dengan metode ini, bahkan jika baris pertama berisi shebang kanan ( #!/bin/...)

statox
sumber