Ekstrak hasil perintah shell ke variabel dalam file .vimrc?

22

Dalam file .vimrc saya, saya ingin menyimpan dalam variabel hasil dari perintah eksternal, dalam kasus saya:

$ echo $LANG

Sehingga vimrcfile saya akan memiliki:

let language = output(!echo $LANG)
if language == 'en'
   nnoremap <somekey> <ohanotherkey!>
end if

Sejauh ini saya tidak dapat menemukan cara melakukannya. Saya telah menemukan bahwa dalam mode perintah, :read !echo $LANGakan memasukkan file saya saat ini konten yang saya cari. Tapi saya tidak tahu bagaimana cara menuliskannya dalam file vimrc.

Feffe
sumber

Jawaban:

22

Anda dapat melakukan ini dengan systemfungsi:

let language = system('echo $LANG')

Poin bonus: jika output Anda adalah daftar, Anda dapat menggunakan systemlistsebaliknya untuk mendapatkan kembali daftar. misalnya

let files = systemlist('ls')
" ['bin', 'dev', ... ]

ref: :h system

nobe4
sumber
13

Jika LANGmerupakan variabel lingkungan yang bisa Anda lakukan:

let language = $LANG

Atau, bahkan lebih sederhana:

if $LANG == 'en'
…
endif
muru
sumber
Ini tidak persis menjawab pertanyaan saya yang terlalu umum ... tetapi bahkan lebih baik! Terima kasih.
Feffe