viでbashコマンドを入力して標準出力を取得できますか?
シェルで何かを探したいという理由で、viを閉じて再び開くことがしばしば退屈であることがわかりました。
答え1
はい、たとえば、そうしたい場合は、ls
次のことを試してください。
:!ls
シェルを作成するには、次のようにします。
:shell
答え2
私はctrl+z
viを寝て、シェルで必要なものを実行し、fg
viを再起動する傾向があります。あなたの質問に対する正確な答えではありませんが、これは非常に迅速な作業方法であることがわかりました。
バックグラウンドでviを開くのを忘れた場合(忙しいときに発生する可能性がある)、ログアウトシェルを使用しようとすると、バックグラウンドジョブが実行中であることを示す警告ctrl+d
メッセージが表示され、そのジョブを閉じるかログアウトできます。もう一度Ctrl + Dを押してみてください。また、同じファイルを2回再開しようとすると再起動警告が表示されるので、a
abortを押してからfgを実行してviに戻ることができます。
答え3
「標準出力の取得」に言及したので、次のことができます。
:r! command
コマンドの出力がファイルに追加されます。
:<range>!command
コマンドで範囲の内容をフィルタリングします。 [例: :1,$!wc
]
答え4
コロンと感嘆符を使用して、シェルパスとシェルスクリプトからすべてのコマンドを実行できます。このコマンドはvi / vimプログラムを実行し、その環境を使用しているユーザーとして実行されることに注意してください。
:!<command>
viは実行時に有効な環境を使用するため、親コマンドと同じパスを使用します。一部のシェルはパスにプログラムキャッシュを保持し、viはこのキャッシュを使用できない可能性があることに注意してください(使用するシェルとバージョンによって異なります)。したがって、バイナリが多いと誤ったエラーが発生する可能性があります。バイナリが同じ名前のバイナリよりも実行されています。