Hack #152: VimとGVimの相違点について知る
Posted at 2010/06/05ツイート
普段何気なく使っているVimとGVimですが、二つのVimには様々な違いがあります。違いを正しく知って、使い分けることが真のVim使いへの近道です。
Vimの利点
GUIがなくても動作する
sshでリモートログインしてVimを使用する場合、当然ですがGVimは使用できません。
screenやシェルとの連携が楽
GVimでは外部コマンドを呼び出すとDos窓が開いたり(Windows版)、細かな動作が端末時と異なったりと、連携しづらい面があります。 特にユーザーからの入力が必要な場合に厳しいです。screenと連携できるのもVimのみです。外部コマンドを別のscreenで実行しながらVimを併用するというやり方がオーソドックスでしょう。
GVimの利点
描画が高速
端末は古い仕様を引きずっているので基本的に描画が遅いですが、GVimは高速に動作します。特に、Macの端末は描画が遅いようです。
フルカラーが使用できる
特にWindowsの端末はひどく、16色しか使用できません。下線など、GVimにしかない機能もあります。GVim用のcolorschemeを256色環境で使用するには、雑多な設定が必要であるなど、手間もかかります。この辺りの設定については、[Hack #64: 256色ターミナルでVimを使用する]を参照してください。
日本語が使用しやすい
端末の場合、日本語の特殊記号の描画が乱れることがあります。 IMEとの連携も簡単です。端末の場合はそうもいかないので、skk.vimやUIMのvi協調モードを使う必要があります。
設定が簡単である
端末上のVimだと、一部に摩訶不思議な設定をしないと動作しないことがあります。
特殊なキーを利用できる
端末では使用できるキーにかなり制限があります。
複数のGVimを開くことができる
端末ではscreenを使用するか、端末のタブ機能を使うしかありません。
クリップボードを使用できる
端末でクリップボードと連携するにはkana氏の作成した、fakeclip.vimをインストールする必要があります。使い方に癖があるので、注意が必要です。
マウスとの連携
キーボード派からは邪道と言われるかもしれませんが、右クリックでポップアップメニューが使えるのは便利です。
アイコンの使用
エラー部分にxpm形式のアイコンが使用できます。表示がわかりやすくなって便利です。
自由なフォントの使用
通常のVimの場合、フォントは端末に制限されてしまいます。GVimではEmacsのように英字と日本語でフォントを変更したり、フォントの大きさを変えるのも自由自在です。ただし、Mac OS X以外ではプロポーショナルフォントは使用できません。Mac OS Xでプロポーショナルフォントを使用する方法については、次のHackを参照してください。[Hack #92: Vimでプロポーショナルフォントを使う (Mac OS X編)]
Emacsではどうか
EmacsはGUI版で画像が表示できたり、ツールチップに対応しているなど、圧倒的にGUI版が高機能であるうえに、 外部シェルとの連携やEmacsを端末化することも容易です。 よって、screenと連携したり、リモート接続する場合を除きGUI版を利用する人が多いようです。
GVim+vimshell
GVimには前述の通り、欠点もあります。しかしWindowsでは端末とシェルがしょぼすぎる上に、外部コマンドも貧弱、screenもないのでGVim一択となることでしょう。外部コマンドの連携についても、vimshellと併用することで、シェルが必要な作業の90%はこなせると思います。ただしvimshellにはパイプがまともに使えないなどのバグがあります。cursesを用いた複雑なプログラムも動作しないため、そのようなときは端末上のVimを使用せざるをえないでしょう。
筆者の使用環境
筆者はWindowsでもLinuxでも、ほぼGVimのみを使います。なぜなら筆者はVim上ですべての作業を完結させたいと考えていることに加え、端末の描画が遅いことが気になるからです。 日々のシェルを使用する作業はGVim内からvimshellの機能を用いて行います。 どうしようもなければ、時々端末も使用しますが、動作確認でもない限り端末上のVimはほとんど使用しません。
Shougoもどる
blog comments powered by Disqus