サブプロセスを使用して Vim を呼び出し、引数を渡そうとしています。例えば:
subprocess.call(['gvim.exe', ''' "+map <F5> :echo 'Hello!'<cr>" '''])
このコマンドはコマンド ラインで機能します。
> gvim.exe "+map <F5> :echo 'Hello!'<cr>"
そして、私がヒットF5すると、こんにちはと言われます。
サブプロセス呼び出しは機能しません。タスク マネージャーでプロセスを見ると、文字列が次のようになっていることがわかります。
"\" +map <F5> :echo 'Hello!'<cr>\""
私が期待したものとはまったく違いますし、Vim が期待しているものでもないと思います。サブプロセスが何らかの形で引用符をエスケープしているように見えますが、その理由はわかりません。
これを期待どおりに動作させる方法はありますか?