[Vim問題] VimからOSコマンドを直接実行する方法は何通り?

アイキャッチ:OSコマンド実行

この記事では、Vimでプラグインを使わずに「OSコマンドを直接実行する」ためのコマンドについて、ご紹介します。

[解答] 2通り

Vimコマンド1. :!{コマンド}

:!{コマンド}

EXモードで、!からはじめた文字列はOSのコマンドとして実行されます。

Linux や Mac であれば、その実行の経過や結果は Vim 内で表示されます。一方、Windows であれば、コマンドプロンプトが起動して実行されます。

NeoVimで直接コマンド(date)を実行した結果
Neovimで直接コマンド(date)を実行した結果

Vimコマンド2. :terminal {コマンド}

:terminal {コマンド}
:term {コマンド}

Vim 8.0 から実装された、Vimのウィンドウ内で端末エミュレーターを実行する機能です。

Neovimで terminal を起動した結果
Neovimで terminal を起動した結果

端末エミュレータ(ターミナル または コマンドプロンプトなど)と Vim のウインドウを行き来する必要が無くなります。

この terminal コマンドを使って、直接コマンドを実行できます。

Neovimで terminal でコマンド実行した結果
Neovimで terminal でコマンド実行した結果

補足

他にもいくつか似たようなコマンドがあり、部分的にOSコマンドを実行したのと同じ効果が得られます。

例えば、下記のようにコマンドを使うと Vim上から主なプログラミング言語を直接実行することができます。

:py または :python {コマンド}  (Python2のコマンドを実行する)
:py3 または :python3 {コマンド} (Python3のコマンドを実行する)
:rub または :ruby {コマンド}   (Rubyのコマンドを実行する)
:pe または :perl {コマンド}   (Perlのコマンドを実行する)

また、vim-quickrunのプラグインを利用すると、編集中のソースコードに対してだけですが、その実行結果を分割した別ウィンドウに表示してくれる機能もあります。

:QuickRun

このVimコマンドの補足情報

  • 利用頻度[star rate=3]
  • 便利さ[star rate=5]
  • 覚え易さ[star rate=4]

関連するVimヘルプ

Vimからは、下記のコマンドでヘルプを確認できます。

:help !
:help !cmd
:help terminal

ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。

参考書籍

こちらの書籍が参考になります。

[temp id=3]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Vim力アップして、そろそろ上級 Vimmer の仲間入りしたいIT系エンジニアの端くれです。読んでくる訪問者の皆様と一緒に、Vim力を上げていくことができる記事が書ければと考えています。