Man On a Mission

システム運用屋が、日々のあれこれや情報処理技術者試験の攻略を記録していくITブログ…というのも昔の話。今や歴史メインでたまに軍事。別に詳しくないので過大な期待は禁物。

【Linux】 Vim使用中にシェルコマンドを使う

今回はVimの話を少々。
Vimって何?という方は、そもそもこんな記事読まないと思いますが、もし居られたら以前の記事などご参照ください。

oplern.hatenablog.com

本題:Vim使用中にシェルのコマンドを実行する

Vimでの編集中、シェルコマンドを実行したい時があります。
そんな時の一応のLinuxの作法としては、

  1. Ctrl+ZでVimを一時停止する。
  2. シェルコマンド実行後、fgコマンドでVimを再開する

というやり方となります。
しかしながら、これは結構めんどくさい。

もし、単発のシェルコマンドでよいのであれば、exモード(ノーマルモードで「:」入力)から「!シェルコマンド」で実行できます。

:!シェルコマンド
ex:ディレクトリのファイル一覧表示
:!ls

実行後はEnterを入力することで、Vimに戻ります。

ちなみに、以下コマンドで最後に実行したシェルコマンドを実行できます。
(これはVimから「!」コマンドで実行したコマンドのことです。別途シェルを立ち上げてコマンドを打ってたりしてても、当該コマンドを実行できるわけではありません。)

:!!

さらに、Vimを一時中断して、シェルへ移動するコマンドもあります。

:shell
または
:sh

Vimに戻るにはシェル上でexitコマンドを打ちます。

シェルコマンドの実行結果をVimに読み込む

Vimで編集中のファイルに、シェルコマンドの実行結果を出力したい場合は以下コマンドで実現できます。

r !シェルコマンド
※「r」と「!」の間にスペースを入れなくても実行可能です。