Bir kabuk komutunun sonucu .vimrc dosyasındaki bir değişkene ayıklansın mı?


22

Benim .vimrc dosyamda, benim durumumda, harici bir komutun sonucunu bir değişkende saklamak istiyorum:

$ echo $LANG

Böylece benim vimrcdosya olurdu:

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

Şimdiye kadar nasıl yapacağımı bulamadım. Komut modunda, :read !echo $LANGaradığım içeriği mevcut dosyama ekleyeceğini buldum. Ama bir vimrc dosyasına nasıl yazacağımı bilmiyorum.

Yanıtlar:


22

Bunu şu systemişlevle yapabilirsiniz:

let language = system('echo $LANG')

Bonus puan: Çıktınız bir listeyse, systemlistbunun yerine bir listeyi geri almak için kullanabilirsiniz . Örneğin

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

ref: :h system


13

Bir LANGortam değişkeni ise şunları yapabilirsiniz:

let language = $LANG

Veya daha da basit:

if $LANG == 'en'
…
endif

Bu benim çok genel soruma tam olarak cevap vermiyor ... ama daha da iyi! Teşekkürler.
Feffe
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.