Витягнути результат команди оболонки до змінної у файлі .vimrc?


22

У своєму .vimrc-файлі я хотів би зберегти у змінній результат зовнішньої команди, в моєму випадку:

$ echo $LANG

Щоб мій vimrcфайл мав:

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

Поки я не міг знайти, як це зробити. Я виявив, що в командному режимі :read !echo $LANGвставив би в мій поточний файл той вміст, який я шукаю. Але я не знаю, як записати його у файл vimrc.

Відповіді:


22

Це можна зробити за допомогою systemфункції:

let language = system('echo $LANG')

Бонусний бал: якщо ваш вихідний список, ви можете скористатись systemlistнатомість для повернення списку. напр

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

посилання: :h system


13

Якщо LANGце змінна середовище, ви можете просто зробити:

let language = $LANG

Або ще простіше:

if $LANG == 'en'
…
endif

Це точно не відповідає моєму занадто загальному питанню ... але ще краще! Спасибі.
Feffe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.