で調達しているvimスクリプトがあり--cmd "source path/to/file.vim"
ます。完全なコマンドはもう少し長く、最後のコマンドは vim を終了することです。
vim --cmd 'source path/to/file1.vim' [... source other files] --cmd ':q'
これらのファイルでは、.vim でメッセージを vim に出力する処理を行っていますechomsg
。これらのメッセージを にキャプチャしたいstdout
。
問題は、この処理の一部が で少しスリープする必要があることですsleep
。ただし、実行するsleep
と、vim は画面を再描画します。その結果、最初にエコーされたメッセージは、この画面の再描画で部分的にクリアされます。
Vim を終了すると、メッセージがシェルで正しく順番に出力されていることがわかりますが、断続的な再描画により表示が乱れます。
私が思いついた回避策の 1 つはwritefile
、stdout を使用する代わりにメッセージをファイルに書き込むために使用することですが、その後、進行状況を表示する機能が失われます。
エコーされたメッセージをvimscriptからstdoutにキャプチャするより良い方法はありますか? これらは進行状況メッセージであるため、発生したメッセージを表示したいと思います。
ありがとう。