0

!command 構文を使用して、常に vim からシェル コマンドを実行しています。

画面に 1 つのコマンドの結果が表示されているときに ! を押すと、もう一度 (別のコマンドを実行するつもりで)。下部のコマンドを除いて、画面全体が黒くなります。

なぜこれが起こるのですか?私の意見では、以前のシェル コマンドの出力を画面に表示しておくと便利です。

後続のコマンドで画面が空白にならないようにする設定はありますか?

4

1 に答える 1

3

前の外部コマンド出力がまだ表示されているときに、Vim が「続行するには ENTER を押すか、コマンドを入力してください」というプロンプトを表示:!すると、実際に出力がクリアされます。これは、Vim のコマンド ライン ( で入力する:) が常に画面の下部にあるためです。これを回避する方法はありません。

あなたの問題を解決するために、多くの人がscreentmuxのようなターミナル マルチプレクサを使用し、Vim を分割して 2 つのウィンドウで別のシェルを使用することをお勧めします。その後、マルチプレクサのコマンドを使用して Vim に移動したり、Vim から移動したり、必要に応じて対応するウィンドウのサイズを変更したりできます。

それがなければ、Vim だけを使用する場合の回避策は、コマンド出力をスクラッチ バッファーにキャプチャすることです。

:new | 0read !ls

基本的なコマンドです。プラグインまたは Vim Tips Wiki には、より精巧な実装があります。

Vim 内にターミナルを実装しようとするプラグイン ( ConqueShellのような、Kent に感謝します!) もありますが、前述のマルチプレクサには制限があります。

于 2013-09-04T15:14:38.410 に答える