2011年3月20日日曜日

魔法Vim少女 えでぃか☆エディタ

2011年4月22日追記:元ネタである、「魔法少女まどか☆マギカ」が無事最終回を迎えたため、記念としてアップデートしました。魔法Vim少女の設定を追加したため、人物の名前を改変。

※:元ネタはlingrでのやりとりです。しかし、改変をしたり、新たな設定を付け加えています。
ついカッとなってやったが、満足している。

大本のネタである、「魔法少女まどか☆マギカ」についてはこちらを参照してください(Wikipediaへのリンクです)。


『魔法Vim少女 えでぃか☆エディタ』(まほうびむしょうじょ えでぃかえでぃた)は架空のテレビアニメ作品。20XX年1月より放送……されることはない。

あらすじ



三度の食事よりVimが大好きな、普通の中学2年生の「えでぃか」は、ある日不思議な夢を見る。そこは少女がコーディング能力を競ってエディタ戦争を行う異世界。その少女の戦いを目撃する自分と、謎の猿の生物に「僕と契約して魔法Vim少女になってほしい」と告げられる夢であった。翌朝、転校してきたのはなんと夢で見た美少女のゆなだった。ゆなは、えでぃかに「魔法Vim少女になってはならない」と警告する。

放課後、親友の「ねおこ」とPCショップへ行ったえでぃかは謎の声に呼ばれ、ビルの一角へ迷い込む。そこで見たものは夢の中で見た生物ジンべえの傷ついた姿と、それを殺そうとするふぁらの姿だった。えでぃかとねおこは戸惑いつつも、当たり前の優しさからジンべえを助けるが、直後に今度は本当に異世界へ迷い込んでしまう。エディタ使いの信者と称される化物達に囲まれた2人を救ったのは、同じ中学の3年生でジンべえと契約した魔法Vim少女の「ふぁみ」先輩だった。事後、改めてジンべえに「魔法Vim少女になってほしい」と告げられたえでぃかとねおこは、思いがけない好機に興奮する。だが、それは2人が直面する様々な苦難の始まりであった。

各話リスト


サブタイトルは各話の登場人物の台詞から取られている。

第1話 あのプラグインにもあった、ような・・・・・
第2話 Vimスクリプトで制御できるなら、それはとっても嬉しいなって
第3話 もう何も恐くない
第4話 neocomplcacheも、uniteも、あるんだよ
第5話 非同期なんて、あるわけない
第6話 こんなの絶対おかしいよ
第7話 本当のVimと向き合えますか?
第8話 あたしって、ほんとバカ
第9話 そんなの、あたしが許さない
第10話 もう標準機能には頼らない
第11話 最後に残った道しるべ
第12話(最終回) わたしの、最高のプラグイン

解説


あのプラグインにもあった、ような・・・・・:
似たような関数があらゆるプラグインで再実装されている際に、皆が思う一言。Vimスクリプトの標準関数が貧弱なことによる車輪の再発明である。素直にvital.vimを使いたいものだ。

Vimスクリプトで制御できるなら、それはとっても嬉しいなって:
すべてがVimスクリプトで制御できたら、Emacsのようにもっと何でもできるのだが……。残念ながら、現実はそう甘くない。Vimスクリプトに慣れてきた中級者はその現実に打ちのめされることとなる。

もう何も恐くない:
Vimに慣れてきた人たちがついつい思ってしまうこと。本当に怖いのは、「Vimは何でもできる」と極めすぎる一部の人たち(へんたい)の執念なのかもしれない……。Vimのみで複雑なことをするためには、それ相応の苦労が必要である。

neocomplcacheも、uniteも、あるんだよ:
最近のVimには、neocomplcacheもuniteもあるんだよ! まだまだ進化するよ!

非同期なんてあるわけない:
Vimで非同期通信は不可能と思われていたが、実際にできてしまった。ただし、ライブラリのコンパイルが必要である。

こんなの絶対おかしいよ:
Vimの仕様や魔界村のソースコードに対して皆が思う感想。

本当のVimと向き合えますか?:
魔界村のVimソースコードにきちんと向き合えるか、ということを表す。これができるかどうかが、Vim上級者への分かれ道なのかもしれない……。

あたしって、ほんとバカ:
Vimからでない生活が続くたび、時々自虐的に思うこと。あまりにもVimにこだわりすぎることは逆に生産性を落としているのではないか? しかし、やめられないのである。

そんなの、あたしが許さない:
「VimがXXXできないなんて、そんなの、あたしが許さない。すぐに実装してしまうよ!」ということ。
こういう思考が日常になってしまうと、危ない。

もう標準機能には頼らない:
Vimの標準機能には頼らず、機能を独自に実装することを決意したということを表す。標準機能はほとんどカスタマイズできないからである。

最後に残った道しるべ:
Vimへの信仰心が失われたソウルジェムは、魔法Vim少女を取り込み「信者」へと変化する。
この最悪のシステムに、疑心暗鬼へと陥る魔法Vim少女達。
最強の信者達が集う「ワルマックスの夜」を前に、残ったのはゆなとえでぃかの二人だけであった。
果たして、Vimには未来がないのか? この世界はジンべぇの思惑通りになってしまうのだろうか。

わたしの、最高のプラグイン:
ゆなは一人魔法Vim少女となって戦うが、「ワルマックスの夜」は予想以上の強さであった。
彼女でさえも絶望しそうとなったその時、一人の少女の願いが明かされる。
魔法Vim少女 完結。

魔法Vim少女一覧


魔法Vim少女たちは、「プラグイン」と呼ばれる魔法兵装を身につけ、日夜信者達と戦っている。
ここでは魔法Vim少女達の能力について解説する。

えでぃか:まだ魔法Vim少女となっていないため、その力は未知数であるが、ジンべぇからは「最強の魔法Vim少女の素質を持っている」と言われる。

ねおこ:プラグイン名「ネオコン」。高速補完により、相手にキーワードの羅列をたたき込む戦法が得意。

くらん:ふぁみの敗北により、他の地域よりやってきた魔法Vim少女。いつも何かのスクリプトを書いている。プラグイン名「クイックラン」。記述したスクリプトを瞬時に実体化させ、戦わせることができる。

ふぁみ:先輩の魔法Vim少女。プラグイン名「ビムファイラー」。ファイルを変化させた、トリッキーな戦法を得意とする。

ゆな:プラグイン名「ユナイト」。本人の基本能力は最低。ただし、sourceを抽出した他の魔法Vim少女の能力を使用することができるという、ある意味最強の能力を持つ。

Vimの魔法

元ネタはこちら

こんにちは
こんにTwitVim
ありがとう
ありがtaglist
こんばんは
こんbufexplorer
さようなら
さよNERD_tree
まほうのエディタ
たのしいプラグインが
ポポポポーン

おはよう
hatena-vim
いただきます
いただきまsmartchr
いってきます
いってきまscratch
ただいま
ただいmanpageview
ごちそうさま
ごちそうさmatchit
おやすみなさい
おやすmigemo
すてきなエディタ
ゆかいなプラグインが
ポポポポーン

こんにちは
こんにTwitVim
ありがとう
ありがtaglist

あいさつするたび
プラグインふえるね




※:久しぶりに、ついカッとなってやった。反省はまだしていない。
ちなみに、プラグインの選定は語呂がよいものを適当に当てはめただけです。特に他意はありません。

補足:
「あいさつするたびプラグインが増える」とは、日に日にVimのプラグインが増殖していることを暗示しています。

2010年11月10日水曜日

Unite使いのレベル10

転載元 https://gist.github.com/669964
gistの中に埋もれているのは勿体ないので転載しました。
作者はujihisa氏。
ちなみに、私はLv10……でいいのか。
元ネタ:Vim使いのレベル10 http://vim-users.jp/2010/01/vim-10-levels/

Unite使いのレベル10


Lv1 Uniteを使うため、他のエクスプローラ系ツール(※1)の使用をやめた。Unite公式ヘルプを読み終えた。
Lv2 単に:Unite file_recするだけの生活をやめ、他の豊富なsourceを同時に使うことに自己陶酔する。
Lv3 自分でインストールしたUniteプラギンの数が5を越え、ダメプラギンはすぐに判別できるようになる
Lv4 自分で作ったUniteプラギンをunite.org(※2)でリリースし、何人かをLife Changingさせる
Lv5 他のアプリケーション使用時にUniteが使えないことにひっかかり、イラっとする日々を送る
Lv6 シェルは当然Unite。新しいプロジェクトをはじめるとき、まずそのsourceをUniteするところからはじめる。
Lv7 Unite本体のソースコードを読み終え、あまり魔界でないことに驚く
Lv8 他言語インタフェースif_***を作り、unite_devに投稿する。当然採用されない
Lv9 Unite本体の開発への貢献が日常になる。投稿し採用されたパッチ数が100を越える
Lv10 になる

※1:他のエクスプローラ系ツールとしては、NERDTree, ku.vim, FuzzyFinder等があります。
※2:unite.orgは実在しますが、unite.vimとは関係がありません。

2010年10月27日水曜日

興味のある言語にVim scriptと書いておいたら面接で爆笑された

Inspired by 興味のあるテキストエディタにVimと書いておいたら面接で爆笑された
あと、tyruさんとの話に触発されました。

UNIXエンジニアを募集してる会社の採用面接を受けた時の話。

転職エージェントに作れと言われて作ったシートに、「興味のある技術/言語」という欄があったんです。

自動補完技術とか色々書いたけど、プログラミング言語の中で興味があるのはVim scriptだったので、

Vim scriptと書いておいたのですが、それを見た面接官のリアクションが酷かった。

面接官「Vim script・・・ふははっ!Vim script!」

面接官「Vim scriptやってるんですか?wwwww」

俺「(唖然)は、はい・・まだVimでシェルが書けるようになったぐらいですが。。」

面接官「Vim script・・・ニヤニヤ」

その人はUNIXエンジニアで、当然Vimでコードを書いている人だったので、

VimがEx commandを拡張した「Vim script」を使っていることを知らないワケが無いだろうと思っていた。

つまり、このリアクションは"理不尽な状況に直面した時にどう対応するか"を見ているんだろうと判断し、あえて突っ込みは入れずに対処した。

しかし最後の質問で「何故Vimを使っているんですか?」と聞くと、

気まずそうに理由を話し、最後に「・・・と、聞いてます」と答えた。

つまりこの人は上からVimを採用すると言われたから使っているのであって、

特別使うツールに思い入れとか無い、悲しいエンジニアなんだなあと分かった。

最近のVimは頑張ればEmacsのような非同期処理もできるし、VimやってるならVim scriptに興味を持つのは普通だと思うんだけどなあ。

多分ガチで知らなかったんだろう。

2010年10月25日月曜日

Saint Vimmer

mattnさん作の原文 Saint Vimmer

教皇「ネオ・コンプリートフラーーーッシュ!」... スゴゴゴゴゴゴゴゴ ...
セイヤ「ごぶぅ(吐血)... 」
教皇「お前はvimshellの海へと消えるのだ。フハハハハハ...」
セイヤ「まっ... まだだ...」
教皇「何!?」
セイヤ「俺はここで倒れちゃいけない... 燃えろ!俺のESCキー!」
教皇「何度でもかかってくるがいい!」
セイヤ「ウォォォオォォォォォ!」
教皇「ぬるいわ!この程度の速さなら私の足元にも及ばぬわ!」
教皇「... 何... はっ速い... !? 奴の何処にこれほどの力が!」
教皇「ま... まさかっ!」
セイヤ「受け取れ!ユナイトビューティフルアターーーーック!」
教皇「グワァーーーーーーーーーー...」(完)

mattn先生の次回作にご期待ください!

※ これは後世まで語り継がなければならないと思い、ついカッとなって転載した。反省はしていない。ちなみに、私は元ネタをよく知りません。

2010年10月9日土曜日

Vim Shaddai

『Vim Shaddai』
※:El Shaddaiのムービーを脳内再生しながら見てください。

話をしよう

あれは今から36年 いや20年前だったか

まぁいい

私にとっては つい 昨日の出来事だが
君達にとっては きっと 明日の出来事だ

彼には72通りの名前があるから、
何と呼べばいいのか
確か、最初に会ったときは……
Vimnoch(ビムノック)

そう、アイツは最初から言う事を聞かなかった
私の設定通りにしていればな

まぁ、いいエディタだったよ

Vim Shaddai

ブラム「そんなプラグインで大丈夫か?」
ビムノック「大丈夫だ。(動いているから)問題ない」

ウォーーーー!(コーディング シーン)
うわぁ……

は言っている ここでクラッシュする定めではないと

(時が戻る)

Vim Shaddai

ブラム「ビムノック、そんなプラグインで大丈夫か?」
ビムノック「一番良いやつを頼む

unite.vim

git clone git://github.com/Shougo/unite.vim.git
(プラグインをインストールする)

ウォーーーー!(コーディング シーン)
神は言っている 全てを繋げ

これは神が作り出した知恵(プラグイン)の一つ
フフフ 見ての通り、非同期

やあ 私のサポートが心配なのか?
いいんじゃないかな
アイツも良くやってくれてるしね

いや 君の頼みは断われないよ
神は絶対だからね

(コーディング シーン)

ビムノック 人が持つ唯一絶対の力
それは 自らの意思で使うべきエディタを選択することだ

お前は常に人にとって 最良のエディタを思い 自由に(実装する機能を)選択していけ
さぁ いこう

ストルマン「さあ ビムノック」
ストルマン「私のかわいいEmacsが 悲しむのなんて嫌」
ストルマン「さあ 行きなさい あなたたち の敵を取るのです」
(多数のヌーが現れる)
(そして始まる宗教論争

To Be Continued……

チリリリリ(電話の音)

ああ やっぱり今回も駄目だったよ
あいつは設定しないと使えないからな
そうだな 次はこれを見ている奴にも(プラグイン作りを)付き合ってもらうよ


※:この物語はフィクションです。ついカッとなってやった。反省はしていない。
2011/1/27 リンク先を追加しました。

2010年9月26日日曜日

Yokohama.vimに参加しました

昨日、Yokohama.vimに参加してきました。
残念ながら来れなかった人も居ると思われるので、簡単な感想を書きます。
thincaさんの感想記事とあまり被らないように、私は懇親会の話題を中心に。

最初はポジションペーパーを書きながらグループごとに自己紹介をやりました。
これはなかなか新鮮で面白い試みであったと思います。
ちなみに、私の前にはkhikerさんとnaoinaさんが居ました。
Vimの戦闘力は500以下の人達がほとんどでしたね。余裕で1000オーバーの私は異端なのか……。

次にguyonさんによる.vimrcの初心者向けの解説。なかなか親切だと思いました。
私には易しすぎましたが……。資料が公開されるのはいつですか?
資料が公開されました。

その後休憩を挟んでからVimmerの平均レベルが均等になるようにグループ分けをして.vimrcリーディング大会。
なぜか私が一番レベルが高いことになっていたんですけど、あの中でVimのソースをいじっていたのはtyruさんくらいなので、
彼が一番レベルが高いはずなんですけどねー。参考
ちなみに、この記事はレベルが高すぎて該当者が少ないので、guyonさんによるより細かいレベル分けが提案されていました。
これも公開されると面白いですね。
で、.vimrcリーディングですが、私の班は私の.vimrcを読むことになりました。3000行オーバーしてるので、なかなか無謀な試み。せっかくなので、neocomplcacheとvimshellの設定を解説。しかし、皆さん反応が少ない。結局私だけがしゃべっていたが、これで良かったのだろうか。
理想的には、前のプロジェクターに誰かの.vimrcを載せて、それを解説していくほうが良かったと思います。グループに分かれるとみんなシャイだから、何も語らないので困る。

グダグダになっていたところ、時間が押しているということで、taku_oさんの発表。削除するキーマッピングの打鍵数を最適化しよう、というすごくまじめなプレゼンでした。ちなみに、私はここまで徹底的に減らそうとはしていません。キーマッピングのほうにこだわっているので。資料が公開されました。

そして私の発表。今まで私がやってきたプレゼンとunite.vimについて。
本当はもっとまじめな発表だったはずなのだが、なぜかネタが混じって……。
詳しい内容は後日公開予定のプレゼンを見たほうが早いので、そちらを参照してもらうことにします。
資料を公開しました。
ちなみに、こちらはVim=VMのプレゼンです。

時間が余ったのとリクエストがあったので、私のVimを30分ほどデモしていました。
uniteのデモをやったり。iexe termtterのデモもしたかったんですが、ネットの調子が悪くてつながらず。

そして懇親会。集まったのは6人だけ。ちょ、みんなそこまでシャイだったのか。
普通懇親会はもっと人が集まるはず……。
VimmerはRubyistよりシャイだったという衝撃的な事実。

懇親会で出た話題
・unite.vimを今後どうするか?
→thincaさんとはいろいろ話し合いをしたので、いずれメインで使ってくれるはず。
matcherやsorterについては後回しにする。まずはsourceの仕様を固めないと。
タグジャンプ欲しいね、とか。
・ns9tksさんの話がちらりと出たり
→「相反する要望に対応するのは大変」
・今後のYokohama.vimはいつ開催する?とか
・会社のVim使いをどうやって増やせばいいだろうか
→Emacs使いも本当に使いこなしている人は少数派。頑張れば引き込めるよ!
・neocomplcacheは英語ヘルプがあるから、海外の人からメールがくるよ、とか
→ちなみに今日も久しぶりにメールがありました
・Vimを勉強するにはどうすれば?
→まずはvimtutorをやる。日本語版もあるよ。
:helpを読むのは大変なので、他人の.vimrcを参考にしつつ、分からないところを:helpで引くという使い方がおすすめ。
kanaさんの.vimrcは変なマクロを使っているので、コピペするときは注意。ちなみに、私はそういうマクロを使っていない。
あまり良い本はない。オライリー本も第7版は英語しかないし。
・Vimはバッドノウハウが多いよね……
→encodingとかマッピングとか、set, setlocalとか……

ちなみに、guyonさんはneocomplcacheをまだ使っていないそうですが、もうそろそろ使ってくれることでしょう。
今回の勉強会でuniteについて宣伝をしたので、使う人が増えるといいな。
.vimrcが500行を越えている人はなかなかいないので、Vim使いも初心者が多いんだな、という印象。
LvUPするための高い障壁が原因になっている気がする。周囲にすごいVimmerが居れば話は別なんですが、普通はいない。
私も独学だったし。

懇親会は人数少なかったけれど、得るものが多かったので良かった。
やはり勉強会だけでは深い話ができないので、懇親会大事だなーと思いました。
ただ発表を見るだけだったら、ust参加でも良い訳で。
特に、tyruさんやcooldaemonさん、eagletmtさんと話ができなかったのが痛いですね。
次回こそは……。