vimshellでVimでの開発をシームレスに行う その2
前回の内容より続きです。
vimshellで実際にプログラムを実行する
vimshellの基本機能を理解したところで、実際にコードを書いて実行してみましょう。
今回使用するコードは特に意味はないC言語のコードです。内容には一切の突っ込み禁止です。
とりあえず以下のようなテストコードを用意しました。
#include <stdio.h> int main () { int i = 0; i = 3; if (i == 3) { i = 4; } i *= 2; for (i = 0; i < 5; ++i) { printf("i = %d \n", i); } }
なんの変哲もないただのC言語プログラムです。
別に必要ないけどMakefileを書いておいてgccでmakeしましょう。
おもむろにvimshellを呼び出し、makeと入力してビルドを確認します。
プログラムを実行する
実行するのには様々な手段があります。
まずは一番ノーマルな方法で。
これでvimshell上に実行されたプログラムが出力出来ます。
これは一番ノーマルな方法ですが、プログラムの実行方法は他にも色々とあります。
iexeを使ってgdbでデバッグ
"iexe"はプログラムを対話コマンドに特化し実行します。
% iexe gdb test.exe
インタプリタを起動しプログラムの入出力を行う事が出来ます。
上のように実行すると、なんとVim上でgdbが動きます!!
これでVim上でプログラムの実行とデバッグまで出来るようになりました。
基本的な開発ならこれで十分なはずです。
もちろん、iexeはこれ以外にもスクリプトを実行するインタプリタの端末用途として使用出来ますし、これだけに留まりません。
使い方はユーザー次第でいくらでも広がります。
全てはVim上で完結し、Vimのフル機能を使用する事が出来るという最大のメリットがあります。
その他にも様々な実行方法
vimshellは"iexe"以外にもGUIを実行するのに特化した"gexe"というものがあります。
これはゲームプログラムなど、GUIを必要とするものに対して使用出来ます。
更にvimshellには端末コマンドに特化した"texe"もあります。
まだまだ不完全ではありますが、iexeなどでは実行出来ないような特殊なものを実行する事が出来ます。
動作も不安定でCygwinの導入が必須だったりと敷居は高いですが、よりvimshellの可能性をみたいという人にオススメ。
"texe"と同種のプラグインとしてConque Shellというものがあったりしますが、こちらもまだまだ発展途上といった感じ。
しかし可能性は無限大。ぜひ活用してみましょう。
vimshellで快適なVimライフを
と、ここまで様々に取り上げてきましたがこれでもvimshellの機能としてはほんの一部です。
まだまだvimshellには可能性があり、他のプラグインと連携した際にはこれ以上ない快適な開発環境になると思います。
私は仕事でもvimshellを活用し、VisualStudioといったIDEを必要としない生活を送っています。
もちろんIDEにも素晴しいところがあり、それらを否定する気はありませんがVimには他のIDEには絶対にないものがあります。
neocomplcacheやunite.vimだけではなく、Vim自身のもつ機能と合わせていけば仕事や開発を更にシームレスに行える事でしょう。