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さんと話ができなかったのが痛いですね。
次回こそは……。

2010年9月3日金曜日

WEB+DB PRESS Vol.58 「Emacs活用∞」レビュー

LingrのEmacs部屋で「Emacs活用∞」について話していたら、tomoyaさんに「ぜひレビューしてください!」と言われてしまったので、こちらでレビューをしておこうと思います。
ちなみに、私は去年の「Vimの流儀」号とこちらの「Emacs活用∞」しかWEB+DB PRESSを購入したことがありません。どんだけエディタに毒されているんだ、私は……。

では、それぞれの項目について簡単な紹介とレビューをしておきます。

Emacsの世界へようこそ


この章はEmacsの紹介が主です。キーボード配列の変更という、初心者には敷居が高い設定も含まれます。

最初に知っておきたい基礎知識


Emacsのインストール方法と、設定ファイルのディレクトリ構成、基本的なキーバインドの紹介です。
よくある解説が続くので、熟練者には物足りないでしょう。

自分好みにカスタマイズするためのポイント


Elispのインストール方法、auto-installの紹介です。簡単なカスタマイズについても触れられています。

導入必須の便利な拡張機能


各種プラグインの紹介です。解説はかなり駆け足。やはりページ数が足りなかったようです。

Emacsの操作性に革命を起こす「Anything」


この特集のメインだと思われる、anything.elの紹介。anything.elのインストール方法以外に、設定やコマンドの定義方法も載っています。
が、こちらもページ数が足りないのか、「anything.elのソースを作成する」までは触れていません。

思考を即コード化する開発環境


開発に役立つ拡張機能の紹介です。私が知っているような有名所が多かったですね。最後にEmacsコミュニティについて若干触れています。
この特集を読んで、Emacsの開発に協力できるような人が増えるといいですね。

まとめ


本特集は基礎知識を高めることに重点を置いているようです。
Emacsテクニックバイブルでは基礎知識をかなり省いて、プラグインの紹介を重視しているため、
この特集を読んでから、Emacsテクニックバイブルを読むのがよいでしょう。
残念だったのは解説がかなり駆け足だったのと、Emacs lispについてはほとんど触れられていなかったこと。
るびきちさんがEmacs lisp解説本の構想を練っているようなので、そちらに期待したいです。
あとはSoftware Design誌に連載されている、「Emacsのトラノマキ」がいつ単行本化するのかが気になっています。
なぜか最近勢いにのっているEmacs陣営。これはVimも負けていられませんね。

2010年8月28日土曜日

Vim Kaigi 2010に行ってきました

昨日からRuby Kaigi 2010が開催され、その中の企画イベントとして「Vim Kaigi 2010」が開催されました。
これなかったVim使いもたくさんいると思うので、詳細について詳しく書きたいと思います。

Highlights of Vim 7.3 by kana


最近リリースされたばかりのVim 7.3の新機能についてkanaさんから解説がありました。
Vim 7.3は日本語情報が少ないので貴重ですね。

Persistent undo


アンドゥ情報の保存をする機能。有効にするためには、set undofileを.vimrcに追加する。デフォルトでは開いているファイルと同じ場所に保存するが、別の場所にすることも可能。

Conceal text


マーカーなどを隠す機能。前からパッチは存在していたが、ようやく本体に取り込まれた。
texのシンタックスファイルも対応していて、対応する記号を変換したりできる。
これを利用すれば、Haskellのlambdaも置き換えたりできる。やってみたが微妙だったらしい。

relative number


「私はいらない」とはkanaさんの談。たしかに番号が気持ち悪い。jやkをcount付きで移動するときには便利なのかな。

colorcolumn


人によっては欲しいらしい。カラムをハイライトできる機能。複数のカラムもハイライトでき、相対的にも設定できる。

その他


gettabvar(), undotree(), など。みなさんVim 7.3を使いましょう! という内容でした。

neocomplcacheで実現する究極補完環境 by ShougoMatsu


私の発表。内容はneocomplcacheについてで、スライドを見た方が早いと思います。
neocomplcacheで実現する究極補完環境
時間が余ったので、unite.vimやvimshell, vimfilerをデモしたりしました。が、かなりグダグダになってしまった。

Yokohama.vim by guyon


内容はスライドが公開されているので、それを見たほうが……。
Yokohama.vimの宣伝もありました。私は参加する予定。unite.vimの宣伝ができるといいなぁ。

ぼくがEmacsからVimに乗り換えた3つの理由 by _shimada


Railsのエンジニア。ジュンク堂に本が売っているらしい。Emacs歴は10年以上だが、左小指が限界になってVimに移行。左肩までダメージがくるようになったそうです。リアルでそういう人がいるんですね……。
rails.vim, surround.vim, snipMateを使っているそうです。

苦労したこと


サーバに入ると素のviが使えない


S式が使えない


Vimの中でEval bufferする方法がない


→quickrun, vimshellを勧めておきました。

vi怖い by nanki


sudo viしてファイルを壊してしまったという恐怖の体験談。compatible modeこわいです。
nankiさんはObjective-Jのオムニ補完を書いたらしいので、それの紹介もありました。
ちなみに、neocomplcacheはObjective-J対応を果たしました。

gdgd Q & A


LTも終わると、あとは質疑応答と私とkanaさんが適当にデモをやったりしました。が、さすがにそれでも長すぎた……。

まとめ


kanaさんを始めとする色んなVimmerと会えて、面白かったです。自分のプラグインの宣伝もできたし:-P。ちなみに、隣の席がbasyuraさんだったので驚きました。
ku.vimの読み方は「くー」らしいです。ちなみにkanaさんは現在Vim scriptを書いていないらしく、ku Ver.0.30のリリースは期待できなさそう。
やはりunite.vimを頑張るしかないのかな。
Vim Kaigiは最初50人くらいいて、Emacs部屋から椅子を借りてくるなど、「どうしてこうなった!」状態でしたが、3時間後にはメンバーが三人になり、強制撤収となりました。