2017-10-25 12 views
0

私はいくつかのテキストを見つけて、シェルコマンドの結果である他のテキストに置き換えたいと思っています。これは動作していない私の裁判、次のとおりです。コマンドの結果をvimコマンドに挿入してください

:40,43s/'height': 650/'height': system('python -c "import random; print(random.randint(500, 600))"')/g 

Vimはsystem('python -c "import random; print(random.randint(500, 600)')部分を評価する必要はありません。

これを修正してください。

答えて

4

「シェルコマンド」が正しくありません。あなたのコマンドでは、これらの引用符('"が)

  • あなたのコマンド内のすべてのカッコ(..)がペアになっている場合は、少なくともチェックする必要がありますがペアになっている場合は、少なくともチェックする必要があります

    • 。 vimの:sコマンドについては

    、あなたは、式の結果を得るために\=を使用する必要があります。詳細は:h :s\=をご参照ください。

    あなたの例:

    :40,43s/\v('height':) 650/\=submatch(1)." ".system('python -c "import random; print(random.randint(500, 600))"')/ 
    

    あなたのコマンドは、上記の行で修正されました。

  • +0

    コマンドが数字を返すときに改行を削除するようにちょっと編集する: ':68,77s/\ v( 'height' :) 650/\ submatch(1)。"システム( 'python -c "import random; print(random.randint(500,600))")[: - 2]/' –

    関連する問題