機能でコマンドをbashの(他の関数の結果として、今のところのは、簡単のためs
に保管しましょう)と私はを通じて、それアウト書き込みしたいですpipeをbash
コマンドに追加します。 (それはパイプでなければならない、この種の入力を引数として受け入れることはできない)パイプストリングは、私は、文字列を持っている
mycommand
をどうすればいいですか、つまり...
にはどうすればいいですか?パイプ経由
:let s = "my string"
:set shell=/bin/bash
:exe "!cat <<< " . shellescape(s)
出力
my string
:ここに文字列経由
function! MyFunc()
let s = "my string"
execute ... !mycommand --flag
endfunction
私はこれがまさに私が探していたものだと思います!なぜあなたは 'echo' + '' 'より' <<< 'を好むでしょうか? –
@PeterVaro、まあ、ここでは文字列が短く、 'echo'や' printf'は必要ありません。私は確信していませんが、私はここでは文字列がパイプではなく子プロセスをフォークしないと思います。しかし、パイプは移植可能です。 –
興味深いことに: 'MyFunc'がhere-stringまたはpipeを持つことができるキーに':call MyFunc() 'をマップすると、どちらも私にヒットする必要がありますを入力します。これはどんな考えですか? –