Shougoさんは痛くなんかない! ~VimFilerのどこがいいかも語る~ (Vim Advent Calendar 13日目)

Vim Advent Calendar の13日目です。

最初はVimFilerのいいところをEmacsのdiredと比較し書くだけにしようと思っていたのですが、その前に痛いニュースのネタまとめに出たらしい「Vimと過ごすイチャラブクリスマス ~そして伝説へ~」が実は痛くない、というか深いということを解説しようと思います。
失礼ながら僕も今回見直すまでちゃんと深く読めていませんでした。もしタイトルから侮ってそこまで読んでいない方がいたらその方達にも深く考えてほしい。
なぜ痛くないかを具体的な言葉に翻訳して解説するという野暮なことをします。
(原文でも文が進むにつれてイチャラブというような感じから真面目かつ具体的に説明されるようになっているので解説とか必要ないかもしれないんですが)
最初メインにしようとしてた「VimFilerのいいところ解説」はオマケになってしまいました。

Shougoさんは痛くなんかない!

もう12月となりクリスマスが近付いてきましたが、Vimmerの皆さんはいかがお過ごしでしょうか。
クリスマスの予定はもう決まりましたか。まだ決まっていない?
ならば、今年の冬はVimと一緒のクリスマスというのはどうでしょうか。
クリスマスは普段はできないVimとの愛を深める良い機会です。
幸い、Vimとのデートにはお金がかかりません。PCからVimを起動するだけでよいのです。
ノートPCさえあれば、どこでもVimとイチャイチャし放題です。
筆者オススメのデートコースは以下の通りです。 (Vimと過ごすイチャラブクリスマス そして伝説へ イントロより)

この界隈の人は常にVimEmacsを起動しています。起動してないほうがおかしい。
そして時間がある休日(クリスマス)に愛を深める(設定を見直す)傾向があります。
仕事中にもやってはいると思うのですが、仕事中に大っぴらに時間を取りまくるのはこの界隈の人でもさすがに憚られるものがあると思います。
「イチャイチャ」を翻訳すると「設定or拡張を書く」ということになります。
ちなみにこの設定、拡張を書き快適な作業環境を得ることは快感であり、Emacs or Vimから離れたくないという症状になります。
故にイチャイチャという言葉は的確です。

長い間Vimを使用していると、不要になった設定が貯まってくることでしょう。
大晦日にやっても良いのですが、大晦日はVimとの新居(PC)の掃除で忙しいはず。
この機会に、Vimの設定を見直しましょう。汚ない設定では、Vimから嫌われてしまいますよ。
デート前には身だしなみを整えるのも大事ですよね。
おそらく、皆さんのVimの設定には、他の人からのコピペが多数含まれているはず。
それは良くないですね。コピペは「だめゼッタイ!」です。
訳が分かる設定だけを導入しましょう。
分からないコマンドや分からない設定については、まず:helpを参照しましょう。
Vimの知識を増やすチャンスです。
ちなみに:helpを参照するときは、一覧を表示できるunite-helpを用いるのがオススメです。(Vimと過ごすイチャラブクリスマス そして伝説へ デートコース1より)

これは正確には「Vimから嫌われる」というより、「Vimとそれほど一緒にいたくなくなってしまう」かと思います。
コピペがよくないというのも同感です。
Vimの優秀なhelpシステムを用い、理解することを怠るとVimとイチャイチャする(積極的に設定or拡張を書く)レベルには至りません。

同様に、不要になったプラグインも見直しましょう。
プラグインの管理には、pathogen.vimやvundle.vim, neobundle.vimといった
プラグイン管理プラグインを使用すると楽です。
この機会に導入しておくと良いでしょう。
筆者のオススメは、neobundle.vimを使用することです。
vundle.vimがもつほとんどの機能に加え、unite.vimと連携してプラグインをインストールしたり削除できます。
「neobundle.vimのおかげで彼女(Vim)との仲が深まりました!」など嬉しい報告が続々届いています(妄想)。(Vimと過ごすイチャラブクリスマス そして伝説へ デートコース2より)

プラグイン管理プラグインは確かに仲が深まる効果をもたらします。
というかもう使わないということが考えられなくなりました。
再起動とかシェルに離れる時間は常人からすれば僅かですが、Vimユーザにとってその断絶は非常に大きく、ノリが失われてしまうので使うべきです。

Vimとラブラブになるためには、できるだけVimと過ごす時間を取らなければいけません。
仕事でだけVimと過ごすというのは勿体無いです。
我々は仕事でも趣味でもVimと一緒に過ごすことができる幸運に恵まれているのですから。
いつでもVimと過ごすために、vimfilerやvimshellをインストールしましょう。
Explorerやzsh, screenといった軟弱なツールは窓からポイしてください。
さらに、unite.vimやneocomplcacheをインストールすることで、より濃密なVimとの時間を堪能することができます。

これらのプラグインはVim pluginで拡張することができ、Vim scriptで設定を行います。
Vimを愛する人達には無くてはならないものです。
Vimに慣れていない人には使いこなすのは難しいですが、
Vimへの愛があれば、それくらいの障害は乗り越えられることでしょう。
えっ、Vim scriptが分からない? それはなんてこと。

Vim scriptはVimとのコミュニケーションを図るために無くてはならないスキルです。
英語なんて学んでいる暇があったらVim scriptを勉強するべき。
だいたいなぜVim scriptプログラマの求人やVim scriptを書くだけのお仕事はないんだ。
私はC言語ではなくVim scriptで全てのコードが書きたい。
Vim scriptを書いていると心が落ちつく。Vim script最高!
おっと、イカンイカン。つい本音が出てしまいました。 (Vimと過ごすイチャラブクリスマス そして伝説へ デートコース3より)

仕事(プログラム書き)、趣味(ファイル[テキストファイル以外も]整理、探索)ということになるでしょうか。
先ほども出た小さな時間の断絶(ファイラやシェルに移るの)もノリに大きな影響を与えるのでVimFilerやvimshellを使うべきです。
これら(ファイラ改善やshellの組み込み)はみんなVimでもやりたいと思っていたことでありながらShougoさんのような挑戦者はほとんどいなかった分野でしょう。讃えられる、応援されるべきです。その心意気もしこの表現から汲み取れてなかった人いたらそこまで感じてあげてほしい。

クリスマスこそ、Vim scriptを勉強してVimと一緒にプラグインを作成しましょう。
愛するVimとの共同作業です。
最初から難しい課題に取り組むのは大変なので、最初はプラグインの改造をしたり、
ftpluginやちょっとしたプラグインを作成すると良いでしょう。
.vimrcに書いた設定を汎用的にしてプラグイン化するのも良い方法です。
例えばthincaさんはそういう方法でプラグイン化するのをよくやっているようです。
最近では、unite.vimのsourceを作成するのが流行しているため、それをやってみるという手があります。
ちなみに、neocomplcacheを使うと簡単にVim scriptを書くことができます。
neocomplcacheはVim scriptを書くプログラマのために最適化されているからです。
他の言語にも対応していますが、それはオマケです。 (Vimと過ごすイチャラブクリスマス そして伝説へ デートコース4より)

具体的に真面目なことを書かれています。
neocomplcacheVim scriptを書くプログラマのために最適化されている」のを最も身近に体感できるのは自動補完時に出てくるポップアップ中の説明文ではないかと思います。こういった普通の人にとってはあまり大きな意味を感じられないかもしれないことがVim愛する人達にとってはいかに大きな意味を持つかということは文面からはわからないかと思います。これ以外にもShougoさんの魂のこもった最適化がneocomplcacheにはあるはずです。

Vimとの仲がかなり深まったと思ったあなた、しかしそのうち関係がマンネリ化してしまうからもしれません。
それを防ぐために、Vimコミュニティに参加してみましょう。
いわゆる、町内会や保護者会みたいなものだと思ってください。
周囲にVimmerがいなくて寂しい思いをしているそこのアナタ、ぜひとも参加するべきです。
他人がどのようにVimと良好な関係を続けているかを観察することで、あなたのVimにとても良い影響を与えるはずです。
vim-users.jpやvim-jpでは、あなたの参加をいつでもお待ちしています。
もちろん、Vimに貢献したいというメンバーも随時募集中です。
私はvim-users.jpに育てられてVim scriptを書くようになったので、もっと仲間が増えるといいなと思っています。(Vimと過ごすイチャラブクリスマス そして伝説へ デートコース5より)

だんだん真面目度が上がってきますが、孤独な戦いは厳しくコミュニティの力は偉大です。
そして日本のVimコミュニティには非常に強力なメンバーがいます。

Vimとのデートを楽しんだ後は、Vimへの愛を囁きながら眠りに付きましょう。
心配しなくても、Vimはいつもあなたと一緒に居ます。Vimとは心でも繋っているのです。
大事なことは、クリスマス終了後もVimとの愛を深めていくことです。
クリスマスは切っ掛けにすぎません。
これを実践して、皆さんがよりVimを愛するようになれば幸いです。
もちろん、Vimと一緒に新年を向かえるのも非常に良い心掛けではないかと思います。(Vimと過ごすイチャラブクリスマス そして伝説へ デートコース6より)

僕も結構寝る前に限らず自然とよくVimとかEmacsの設定を考えたりします。
人の思考はわからないのですが似たような人多いのかもしれない。

えっ、この記事は単に自分のプラグインの宣伝をしているだけじゃないかって?
私は純粋にVimとの過ごし方を解説しているだけだというのに、何て失礼な!(Vimと過ごすイチャラブクリスマス そして伝説へ 結びより)

実際Shougoさんのneocomplcache, unite, vimfiler, neobundleといったプラグインVimを使う上でと必須になった現在、純粋にVimとの過ごし方を解説したらShougoさんのプラグインになるというのは自然です。

繰り返しになりますが、タイトルから侮らずにちゃんと読んでみて考えてもらうとかなりいいこと仰っていることがわかります。
では次にLingrで発言してからやるやる詐欺になっていた「Emacsのdiredと比較したdiredのいいところ」を述べようと思います。

Emacsのdiredと比較したVimFilerのいいところ」

2画面ファイラである

2画面ファイラの方がよいのは移動先のパスを入力する必要がないからです。
VimFilerのファイルツリーの移動はhjklでできるのでファイル操作先の表示は非常に迅速に行えます。
また日本語パスも移動だけで設定できるので非常に便利です。

C-jの移動ヒストリが便利

Emacsでもanythingがあればヒストリ表示できるのですがファイラはファイラのヒストリと分かれている方が便利という気がします。
Emacsでもdiredにいるときはanythingのヒストリでdiredのバッファを上に出すとかあるのかな。

vimfiler_switch_to_drive, vimfiler_switch_to_home_directory, vimfiler_switch_to_root_directory が便利

これは「あふ」にインスパイアされた機能かと思われますが非常に便利です。diredにはありません。

以上でーす。