Vim:警告:入力は端末から出ていません。

Vim:警告:入力は端末から出ていません。

私は高度なLinuxユーザーではないので、いくつかの新しい概念を理解するのは難しいです。私は最近コマンドについて読んxargsで、いくつかの例をテストしたかったです。そのうちの1つは私を本当に混乱させました。

理論は次のとおりです。に存在しないファイルの編集を開始しvim(を使用して)、vim someFile編集後にのみ:qwファイルを生成できる場合は(を使用して)echo、次のようにxargs同じ操作を実行できます。

echo "someFile" | xargs vim

xargsechofromの出力を取得し、stdoutパラメータとして渡しますvim。ただし、これにより次のエラーが発生するようです。

Vim:警告:入力は端末から出ていません。

最も奇妙なことは、vimエラーが印刷されてから1秒後にファイルが開きますが、保存して終了するとvim端末に完全にバグが発生することです。端末を変更するには、tmuxウィンドウを閉じる必要があります。すべてのプロセスが完了すると、ファイルが作成され、内容は期待どおりになります。ここに何か問題があることは明らかでしたが、その理由はまったくわかりませんでした。

私はこれを見つけました質問StackOverflowにありますが、私の質問には答えません。

ベストアンサー1

stty sane端末の問題を解決します。

これは、子プロセスで開かなかったxargsために発生します。tty

「open tty」オプションを追加する必要があります-oxargs

echo "sane" | xargs -o stty

その後、stty sane端末に接続して実行されます。エラーは発生しません。

echo "sane" | xargs stty

BSDではエラーが発生します。

stty:stdinは端末ではありません

Linuxの場合:

stty: '標準入力': デバイスに不適切な ioctl

これは私にとって効果的です。

echo /etc/hosts | xargs -o vim

おすすめ記事