2017-04-09 8 views

答えて

2

シェルコマンドの出力をレジスタに保存します。この場合も有効な式として認識されないコマンド自体は保存しないでください。

システム()関数は、文字列としてのシェルコマンドの出力を取得し、現在のバッファあなたのファイルにコマンドを適用するには

を望んでいた正確に何をすべき

:let @+ = system('pandoc -f markdown -t html') 

をお試しください"expand"関数を使用してファイル名をコマンドに追加することができます。

:let @+ = system('pandoc -f markdown -t html ' . expand("%")) 
+0

私の問題を調べてくれてありがとう@pappix。あなたの提案を試みると、開いているままのcmdが返されます。 C:¥Windows¥system32¥cmd.exe/c(pandoc -f markdown -t html ^> C:¥Users¥PP¥AppData¥Local¥Temp¥VIoF94E .tmp 2 ^> ^&1) ' とクリップボードには何もありません。残ったアイデアは? – AikenCura

+0

別のコマンドで試しましたか?私はコマンド 'ls'(list dir)として発行するlinuxシステムでそれをテストし、それは私のために働いた(私はpandocを持っていない)。なぜ私はそれが動作していないのかわかりませんが、あなたが発行しようとしている特定のコマンドの問題かもしれないと思います。 画面に表示された出力は何ですか? cmdを終了してvimに戻ったら、Enterキーを押してみたことがありますか? 発行しているコマンドは、 'pandoc -f markdown -t html'と違っていますか? – pappix

+1

バッファ内の現在のファイルにコマンドを適用する場合は、次のように「expand」を使用してファイル名を追加できます。 ':let @ + = system( 'pandoc -f markdown -t html'。expand "%")) ' この詳細情報を含めるように答えが更新されました – pappix

関連する問題