Home > Vim Hacks > Hack #3: Vimから外部コマンドを呼び出す

Hack #3: Vimから外部コマンドを呼び出す

外部コマンドの呼び出し

このHackではVimから外部のコマンドを呼び出す方法を紹介します。Vimだけでなく、外部コマンドの力を借りることでグッと編集効率を上げることができます。

単純な例

最も単純な外部コマンドの呼び出しはExモードで「!」を使うことです。

:!外部コマンド
:!ls
:!ruby %
:!svn ci %

Vimのコマンドで「%」を入力すると自動的に今開いているファイルのパスに置き換えられます。つまりそれぞれ、シェル上で「ls」「ruby /example/hoge.txt」「svn ci /example/hoge.txt」と実行しているのと同義です。

呼び出したコマンドの結果を挿入する

svnやrubyなどそのまま外部コマンドを呼び出すだけでも意味のあるものとは別にlsのように実行するだけではあまり意味がないものもあります。(結果が知りたいというだけなら別ですが)「:r」と「:!」を組合せることで外部コマンドの結果を挿入することができます。

:r!外部コマンド
:r!date

上記のように「:r」と「:!」と組合せることでdateの結果を開いているファイルに挿入することができます。例えばあるディレクトリ内にあるファイル一覧やsvn stの一覧をテキストで扱いたいという場合に便利です。他にもrubyやperlなどのワンライナーで動的に文字列や数式の結果を挿入することも可能です。

指定した範囲に外部コマンドを適用させる

範囲を指定してから「:!」を使用すると、指定した範囲に対して外部コマンドを実行し、かつ実行結果に置き換えてくれます。よくある例が選択範囲に対してcatを行番号付きで実行し、その結果に置き換えるというものです。

:'<,'>!cat -n

まとめ

いくつか例を示しましたが、このようにVimは非常にラクに外部コマンドと連携を取ることが可能です。Vimだけではちょっと大変だなということも外部コマンドを使えばラクにできることも多いです。まずは普段よく使うコマンドをVimから呼び出すことでラクができないか考えてみるといいのではないでしょうか。

ukstudio

このエントリーをはてなブックマークに追加
はてなブックマーク - Hack #3: Vimから外部コマンドを呼び出す
Share on Facebook
Post to Google Buzz
Bookmark this on Google Bookmarks
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://vim-users.jp/2009/04/hack3/trackback/
Listed below are links to weblogs that reference
Hack #3: Vimから外部コマンドを呼び出す from Vim-users.jp

Home > Vim Hacks > Hack #3: Vimから外部コマンドを呼び出す

Search
Feeds
Links
  • 公式
  • 勉強会
  • 情報
  • コミュニティ
  • Meta
    Etc
    Creative Commons License
    This blog is licensed under a Creative Commons License.

    Return to page top