Извлечь результат команды оболочки в переменную в файле .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.