将shell命令的结果提取到.vimrc文件中的变量?


22

在我的.vimrc文件中,我想将外部命令的结果存储在变量中,以我为例:

$ echo $LANG

这样我的vimrc文件将具有:

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

到目前为止,我还没有找到方法。我发现在命令模式下,:read !echo $LANG会将所需的内容插入到当前文件中。但是我不知道如何将其记录在vimrc文件中。

Answers:


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 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.