vim-users.jp

Hack #189: Emacsのプラグインに対応するVimプラグイン

Posted at 2010/12/17
このエントリーをはてなブックマークに追加

Vim使いのなかには、様々な理由によりEmacsから乗り変えてきた人も多いかと思います。しかしEmacsからVimに乗り換えようとする場合、キーバインドの違いもさることながら、自分が今まで使っていたEmacsのプラグインと対応するVimのプラグインにはどのようなものがあるか、についてはほとんど情報がありません。ここではEmacsのプラグインと対応するVimプラグインを紹介します。

anything.el≒FuzzyFinder, ku.vim, unite.vim

anything.elとはインタフェースを統一するプラグインです。 「Emacsテクニックバイブル」にて大々的に紹介され、Emacsのキラープラグインとして名高いです。 Vimにも当然それに相当するものが複数存在します。 FuzzyFinderはns9tksさんが開発したプラグインで、高機能なことが特徴です。 Fuzzyと名前についているだけに、候補の曖昧検索ができます。学習機能と複雑なアルゴリズムにより、最適な候補を簡単に選択することが可能です。 FuzzyFinderで開けるsourceは、バッファ、最近使ったファイル、タグなどです。ただし、それぞれのsourceを同時に検索することはできません。 一年ほど開発が止まっていたのですが、最近になって更新が再開されたようです。今後も目が離せません。 ku.vimはVim界の神ことkanaさんが開発したプラグインです。 FuzzyFinderのように曖昧検索もできますが、標準ではタグ検索ができないなど、機能はFuzzyFinderよりも少ないです。 しかし、ku.vimの魅力は豊富な拡張性とユーザーが自由にsourceを追加できることにあります。 anything.elのように、sourceを統合できるku.vim Ver.0.3というものが開発されていて、私も以前使っていたのですが、最近は更新されていないので残念です。 unite.vimは筆者が開発したプラグインで、今までのanything系プラグインを統一することを目指しています。 Vimの補完を使わず自前で検索などを実装していること、Normal mode/Insert modeの両方に対応、sourceの統一、豊富なカスタマイズ、複数候補のマークが特徴です。 sourceを追加すればタグ検索も可能です。最近までマイナーでしたが、徐々にユーザーの数が増えてきています。

dired.el, wdired.el≒netrw, vimfiler

dired.elはEmacsに標準で添付されているファイラーです。 必要十分な機能は揃っていて、情報も多いので人気があります。 ただし、設定しないと標準では使いづらいです。 Vimに標準添付のファイラーとしては、netrwというものがあり、:Exploreで立ち上げることができます。 こちらもシンプルなファイラーで、kanaさんのように普段から愛用する人もいるようです。 しかしファイル操作という観点からいうと、netrwは使いにくいです。 ディレクトリ毎にバッファが残ってしまうのも難点で、私は好きじゃありません。 よって、私が開発したのがvimfilerです。 Windowsで有名な二画面ファイラーである、あふのような操作感を目標にしています。 二画面ファイラーですが、一画面でも普通に使えます。 ただしnetrwに実装されている、リモートファイルや圧縮ファイルのアクセスはまだ実装されていません。 ネットワークドライブへのアクセスは可能です。

eldoc.el≒echodoc

eldoc.elはエコーエリアに関数の引数を表示させることができるプラグインです。 これと同様なものとして、私はechodocを開発しました。 現在neocomplcacheが対応しています。 eldocのように対応プラグインが自由に機能を追加できるのですが、難点として、まだドキュメントがありません。

org-mode.el≒howm-mode.vim, QFixHowm, VimOrganizer

org-modeはEmacs用のドキュメント編集環境です。あの「るびきち」さんがEmacsテクニックバイブルの執筆に使っていたほどの機能を持ちます。 メモ書きだけなら、howm-mode.vimというものがあります。QFixHowmはより高機能のようです。howm-mode.vimは更新が止まっていますが、QFixHowmはまだメンテナンスされています。 長らく、Vimにはorg-modeのようなものは存在しなかったのですが、最近になりVimにおけるorg-modeクローンが現れました。それがVimOrganizerです。 このヘルプを見れば分かるとおり、かなり高機能のようです。

auto-complete.el≒AutoComplPop, neocomplcache

Emacsの自動補完としては、m2ymさんが開発したauto-complete.elが有名です。これはどうやら、Vimの補完ウインドウを参考にして作られたようです。 Vimで対応するプラグインとしては、AutoComplPopneocomplcacheが挙げられます。 これらの詳細については、他のHacksで散々やってきたのでここでは触れません。

shell-mode.el, comint-mode.el, eshell-mode.el ≒vimproc, vimshell

shell-mode.elはEmacs内でシェルを起動するプラグイン、eshell-mode.elはEmacsでシェルを模倣するプラグイン、comint-mode.elは外部インタプリタと通信するプラグインです。 eshell-mode.elは外部シェルに依存しないため、貧弱なシェルしかないWindowsでも使えます。 残念ながら、Vimにはshell-mode.elに相当するようなものはありません。 しかし、eshell-mode.elに相当するvimshellがあるので代用できます。当然外部のシェルに依存しないので、Windows環境でも動作します。 iexeコマンドや:VimShellInteractiveを使うとシェルを起動することもできます。 vimprocは外部コマンドと通信するためのプラグインです。コマンドラインのパーサを内蔵しており、vimshellが依存しています。 Windows環境でも動作しますが、使用するためにはコンパイルが必要です。

ansi-term.el, multi-term.el ≒Conque, vimshell

ansi-term.elやmulti-term.elはEmacs内で端末を模倣するプラグインです。 シェルプログラムを起動することで、shell-mode.elの代わりになります。 動作はあまり高速ではありませんが、根強い人気があるようです。 Vimで動作する端末のプラグインとしては、Conquevimshellが挙げられます。 Conqueは端末を模倣するためのプラグインです。EmacsやVimが内部で動作するなど、それなりに完成度が高いです。 ただし、プラグインの構造はごちゃごちゃしています。動作にはPythonインタフェースが必要で、Windowsでは動作しません。 vimshellは本来シェルを模倣するプラグインですが、端末機能を内蔵しているため、texeコマンドを用いてcursesプログラムを実行することができます。 ただし、まだ動作は不完全です。 Windowsでtexeを動作させるためには、fakecygptyとCygwinのインストールが必要です。 詳しくはヘルプを参照してください。

Shougo

もどる
blog comments powered by Disqus