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.

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


13

Jika LANGmerupakan variabel lingkungan yang bisa Anda lakukan:

let language = $LANG

Atau, bahkan lebih sederhana:

if $LANG == 'en'
…
endif

Ini tidak persis menjawab pertanyaan saya yang terlalu umum ... tetapi bahkan lebih baik! Terima kasih.
Feffe
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.