シェルコマンドの結果を.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', ... ]

ref: :h system


13

LANGが環境変数の場合は、次のようにします。

let language = $LANG

または、さらに簡単:

if $LANG == 'en'
…
endif

これは私のあまりにも一般的な質問に正確に答えているわけではありません...しかし、さらに良いです!ありがとう。
フェッフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.