Vim は実際の端末に接続されていることを想定し、それに適したコードを送信します。
ターミナルをリセットします
reset
最も簡単な回避策:
locate 50local.policy | xargs gvim
根拠gui vim は端末を必要としません
さもないと:
vim $(locate 50local.policy)
根拠vim は、端末に直接接続されて開始されます(子プロセスとしてではxargs
なく、端末の代わりにパイプに接続された stdin/stdout を使用してサブシェルで実行されます)。と言うようなものです
vim /usr/some/dir/50local.policy /usr/local/some/dir/50local.policy
あるいは
引数を指定して vim を起動するのではなく、vim から引数を追加することで、この問題を回避できます。実際、シェルがvimを実行するよりも、Vimはシェルを実行する方がはるかに優れています。
vimで:
:args `locate 50local.policy`
:rewind
これにより、目盛りの間にシェルコマンドから返されたファイルに引数リストが設定されます。:rewind は、そのリストの最初のファイルに移動します。複数の一致を編集していた場合は、これを試してください。
:w|next
この一連のコマンド (| で区切られている) は、現在のバッファーをファイルに書き込み、args リスト内の次のファイルに移動します。