2011年8月8日月曜日

開発環境勉強会の感想

開発環境勉強会へ行ってきたので、適当に感想とかを書いておきます。
各々の発表者の内容は、スライドや感想、ustを見ればある程度分かると思うので割愛します。

XMonadの話 pi8027



XMonadについて、ソースコードを含めて詳細に解説してくれていました。
もう一度XMonadを試してみようかとも思ったけれど、Window Managerへの興味が薄れている今日このごろです。

ちなみに、VimとEmacsを併用していたのが印象深かったです。意外とVimも使っているらしい。
シェルは「zshの本」で覚えたzshらしいです。
たしかにこの本はよくまとまっていますね。

Vimについて Shougo


私の発表。原稿は、本日書いた別ページである「開発環境勉強会の原稿」に公開しているので参照してください。
内容は、私とVimのラブロマンス物語です。
なぜか会場は笑いにつつまれていました。私は真面目にやっているんですよ!

スーツとEmacsと開発環境 kiwanami


lingrのEmacs部屋とかではよく会話をしていますが、リアルでkiwanamiさんを初めてみました。
cacoo.elやcalfwなどはやはりすごかったです。あの非同期処理いいなぁ。
「オフライン重要」が印象的でした。私もそう思います。
ネットワークはいつ切れるか分かりません。
ちなみに、EmacsではPDFを読んでいないらしい。ですよねー。

ベンチマークドリブン駆動開発 nyaxt


いかに集中できる開発環境にするか、というのは興味深いものでした。
私も、もっと作業に集中できるようにしないと。
遊ぶ環境は別マシンにする、というのはなるほどと思いました。
確かに私も誘惑の少ないLinux環境で作業していると、はかどります。

XKeyRemapについて m2ym


auto-completeのm2ymさんの発表。
最近elispを書いていないらしい。情熱が薄れてしまったみたいです。

XKeyRemapは汎用的なキーマッピング変更ソフト。ただし、まだ未完成らしい。
「自分はやる気がなくなった。他の人やってください」 えっ……。

TryIt.vim, Phrase.vimで多言語を効率よく学ぶ t9md


もともとEmacs使いでしたが、「手首痛い問題」によりEmacsを引退することになったらしいです。

TryIt.vimは選択したテキストをTryItバッファに貼りつけてQuickRun実行する。
QuickRunとの違いは、複数のバッファから切り貼りできるところだろうと思いました。

Phrase.vimはサンプルコードを集めて勉強するのに使うらしいです。
スニペットと似ていますが、目的が違うようです。
なかなか面白い試みだと思いました。

オレオレ環境の話 shinichiro_h


オレオレトロイで自己管理。すごい。
なぜか、一番に起動しているソフトがw3mでした。なんと……。
w3mが環境となっているらしい。その発想はなかった。
w3mで一番重要な設定:「今開いているページをChromeで開く」に吹いた。
やはりw3mだけでは生きていけないらしいです。

shinichiro_hさんは、オレオレWindowManagerを使っていて、
Windowを使ったシューティングゲームをデモしていました。
なにそれすごい。そして極めつけはメモリ使用量900KB!
今どきのWindow Managerが霞んで見えます。

貧乏人のためのマルチディスプレイ構築環境 tomy_kaira


6台ディスプレイすごい。さすがに、私はこんな環境は使いこなせないなぁ。

貧者のための入力デバイス todesking


HHKは高いので、Majestouchを切りとったお話。
「キーボードはいまだにDIYが通用する領域」は名言でした。

Dvorakについて kjm


これは良いDvorak講座。いや、私は使う気になれませんが……。

おまけ Shougoの開発環境


発表中に簡単に触れましたが、ここにも書いておきますね。

OS:Windows 7/Ubuntu 10.10
端末:Vim, ckw, GNOME Terminal, screenは使っていない
エディタ:Vim
シェル:vimshell, nyaos, zsh
ファイラー:vimfiler, あふw, Nautilus
VCS: git
キー配列:US, Vim only sticky shift
日本語入力:eskk.vim, ATOK 2008, uim-skk
キーボード:HHK Pro2
マウス:MX Revolution
Window Manager:Vim, Explorer, GNOME
PDFビューワ:Smatra PDF Viewer, Evince, AdobePDF Viewer

基本的にVim中心の生活なので、Vim以外にあまり凝ったことはしていません。
今回参加した限りでは、皆Window Managerにこだわりがあるようです。
しかし、自分の場合ほとんどVim内で生活していて、Vimさえあれば他はどうでも良いという性格なため、
他の環境はどうでもよかったのだということに気付きました。だからWindow Managerに興味がなかったんですね。
だから、私のWindow ManagerはVimです。

まとめ


余談ですが、会場はLinux(Ubuntu/Debian)が多かったですね。
やはり、LinuxのほうがWindow Managerもいじれるし、開発環境の最適化に熱心な人が多いのだろうか。
Macもそこそこ居ましたが、予想していたよりは少なかったです。
ちなみに、Emacs/Vimは半々くらいだったような気が……。
いろんな環境の人達がいて、なかなか新鮮な発表を聞くことができました。
今度は関東のEmacs勉強会で「Vimから見たEmacsについて」を発表したいので、誰か招待してください:-)

開発環境勉強会の原稿



<br /> /home/shougo/勉強会/開発環境勉強会/development.vp <br />


Vimについて




まずは自己紹介











  • Shougoです。

  • 知っている人は知っている

  • 得意な言語は当然Vim script

  • 私のプレゼンは「抜群な安定感」らしい

  • 職業:普通のVim scripter(ということに……)

  • 今回はせっかくなのでVimでプレゼンするよ!




今まで作ったプラグイン









  • neocomplcache, vimshell, vimfiler, vimproc, unite.vim, echodoc

  • Emacs使いの人は、これに脳内で変換:

  • auto-complete.el, eshell.el, dired.el, comint-mode.el, anything.el, eldoc.el




今回のスライドの内容









  • 昨年はVimプラグイン中心に話をした

  • 今年はさすがに疲れたので、違うことをテーマにスライドを作っている

  • どうせプラグインの話は自分以外にもやってくれる人がいる

  • Yokohama.vim #1: 「Shougoの開発環境」

  • ujihisa.vim: 「5分でまなぶVimとVim plugin」

  • 開発環境勉強会:「Vimmerの異常な愛情」「Vim界 News in 2011」




第一部・Vimmerの異常な愛情



またはなぜShougoがテキストエディタについて心配するのを止めて
Vimを愛するようになったか

はじめに



プログラマにとって、テキストエディタとは一生涯のパートナーであり、
それを選択するということは、一生の伴侶を決定することに相当する。
ここで紹介するのは、紆余曲折を経てVimに辿り着いた男の物語である……。

初恋はVisual Studio









  • 私はVisual Studioでプログラミングを始めた

  • つまり、初恋のエディタはVisual Studio

  • あのころは、GUIプログラミングにゲームプログラミングと希望に燃えていた(遠い目)




様々なエディタに浮気していたあの頃









  • Visual Studioはそのころ有料だった上、動作が遅かった

  • さらにスクリプト言語には使いにくい

  • 様々なエディタに浮気しつつ、サクラエディタに落ちつく

  • エディタへの恋物語も波瀾万丈

  • これが俗に言う、「エディタ活動」略して「エディ活」と呼ばれるものである

  • ちなみに、この勉強会も「エディ活」の一種ですよね:-)




Vimとの出会い









  • 私とVimとの出会いは5年くらい前

  • 第一印象:「このエディタは変態だ」

  • 動作が気持ち悪いと思っていた




サクラエディタに限界を感じる









  • サクラエディタはカスタマイズに限界があった

  • Vimは豊富なシンタックスハイライトや様々なプログラミング言語に対応していたのが魅力的

  • Vimが気になり始め、本格的に手を出すことに

  • テキストファイルの関連付けをGVimにして、スパルタで操作を覚える

  • xxdでバイナリファイルを編集する程度には成長する




Linuxに手を出す









  • zshやscreenを覚える

  • Vimを毎日使って、カスタマイズを覚える

  • 設定はコピペだったけど……。

  • Vimの力が段々分かってくる

  • Vimへの恋が始まったのはこの頃?

  • ちなみに、このころEmacsも一応使えるようになっていた




kana氏のブログに衝撃を受ける









  • 書いてあることが全然分からない

  • 自分はVimのことを知らなかったのだと実感する

  • 言うなれば、C言語で初めてポインタを理解したのと同程度の衝撃

  • ちなみに、このとき.vimrcは300行くらい

  • Vimを本格的に勉強しようと思った

  • Vimへの恋が愛へと変わりつつある




lingrのvim-users.jpに参加する









  • ちょくちょく発言し始める

  • この頃はkanaさんがよくvim-users.jpに居て、いろいろ教えてもらっていた

  • 質問した瞬間に答えが返ってくる、恐しい場所だった

  • 今はほとんどkanaさんはいない……。




autocomplpop.vim(acp.vim)の挙動を調査する









  • 以前から、autocomplpop.vimをLinuxで使うと日本語入力が暴走するバグに悩まされていた

  • そのころ、autocomplpop.vimはメンテナンスされていなかった

  • kana氏と協力して原因を突きとめることに成功




neocomplcacheの誕生









  • autocomplpop.vimの実装を見るにつれ、Vimの補完の限界を痛感する

  • もう補完システムを自分で作ったほうが良いと思った

  • auto-complete.elに負けたくなかったのも理由

  • altautocomplpopという名前だったが、紛らわしいので改名する

  • neo+complete+cache=neocomplcacheという名前になる




そして伝説へ……









  • この頃には、.vimrcは1500行を越える

  • いつのまにか、色んな人達を追い抜いていた

  • もうVimがないと生きていけない

  • その後はvimshellを公開したり、vimprocの開発を引き継いだり……

  • vimfiler, unite.vimとかを作る

  • どうしてこうなった!




私にとってのVimは?









  • 環境であり、OSであり、VMであり、大事なパートナー

  • かれこれ、5年以上付き合い続けている

  • リアルでも、5年以上毎日付き合うというのは大変なはず

  • それはテキストエディタであっても同じ

  • 毎日Vim scriptを書くためには、やはりVimに対する愛がないとできない

  • Vimに対する愛をいつまで続けることができるかが重要

  • 一時の恋では、エディタとの関係は長く続かない

  • 「エディタへの恋は愛に変えよう」




番外:なぜEmacsは選ばれなかったのか?









  • 自分の環境が長らくWindowsメインだったから

  • WindowsでのEmacsは地獄

  • あれはLinux/UNIX環境でEmacsに慣れている人が、Windows環境で無理矢理使うもの

  • 初心者にはオススメできない

  • Windows環境でEmacsをマスターできた人がいたら、秘策を教えて欲しい




第一部・完



皆さんも、この勉強会で一生のパートナー(ツール)を見付けましょう!

第二部・Vim界 News in 2011









  • 去年は、Vim 7.3でVim界が大いに盛り上がった(自分の中では)

  • 残念ながら、今年はVimがバージョンアップする気配なし

  • Bramさんが忙しいらしい……。

  • 来年に期待。Vim 7.4になるか、Vim 8.0になるかは分からない

  • 個人的にはVim 8.0に来て欲しい




Emacs界の盛り上がり









  • 最近はEmacs界が勢い付いている

  • 去年の「Emacsテクニックバイブル」、今年の「優しいEmacs Lisp講座」

  • Software Designにおける「Emacsのトラノマキ」の連載

  • 三月にはEmacs 23.3がリリースされ、Emacs 24も開発中




Vim界の悲哀









  • Vim界には、良質な記事や書籍が不足している

  • まともにVim scriptを書ける人が書いた書籍がほとんどない

  • これはVim界の大きな損失

  • Vim勉強会に参加すると、必ずといっていいほど聞かれるのが

  • 「Shougoさんは、Vimの書籍を書かないんですか?」

  • この声になかなか答えられないのが悲しかった




と、いうわけで……。









  • 今年、ついにVimの書籍が刊行される!

  • 書名は「Vimテクニックバイブル」


  • 中身は「Emacsテクニックバイブル」のVim版

  • イメージカラーはVimグリーン

  • EmacsテクニックバイブルはEmacsブルー(パープル) :-P

  • ./Emacs_cover.jpg




Vimテクニックバイブル









  • unite.vimで進化する新しいVimの常識を教えます。

  • あなたはVimの本当の姿を知っていますか?




Emacsテクニックバイブルのキャッチコピー









  • anything.elで新しいEmacsの世界を教えます。

  • あなたはEmacsを使えていますか?




今までにないほどの豪華執筆陣!









  • taku_o(名無しのVim使い)

  • yukimi

  • mattn(webapi-vim, zencoding.vim, Vimにパッチ多数)

  • thinca(quickrun, ref.vim)

  • fuenor(QFixHowm, QFixGrep, JPFormat.vim, Vim-UTF8)

  • Shougo(neocomplcache, vimshell, vimproc, unite.vim, ...)




プラグインの紹介を中心とした豪華な内容!









  • Tipsの数は全部で150

  • 定番からマイナーまで幅広く解説している

  • プラグイン製作者が執筆していることも!

  • vimfiler, netrw, quickrun, ref.vim

  • vimshell, Conque, skk.vim

  • neocomplcache(スニペット機能の解説を含む), zencoding.vim

  • QFixHowm, QFixGrep, JPFormat.vim

  • autodate.vim, project.vim, ...




Vim scriptが分からない初心者でも安心!









  • :helpの読み方

  • Vim script基礎文法最速マスター(改訂版)

  • マッピングについて

  • オプションについて

  • Vimプラグインの管理

  • :autocmd




最近のVimといえば、unite.vimは外せないよね!









  • unite.vimは1つのChapterを贅沢に使用して解説

  • おそらく、30〜40Pageくらいある

  • 他のプラグインとの連携

  • カスタマイズ方法についての解説

  • source, kind, action, filterの解説

  • sourceの作り方まで載っている!

  • 作者が自ら書いているから、情報が正確で安心

  • unite.vim Ver.2.2対応(一応)

  • あまりに新しい機能は解説できていませんが……

  • これを読めばあなたもunite.vimマスターに




もちろん、Emacsの人達にもオススメ









  • Emacsを使っている人も、異文化交流は重要

  • 同じ環境で満足していたら、何も生まれない

  • Vimや他のエディタからも刺激を受けるべき

  • だからこそ、この開発環境勉強会に参加しているはず

  • この本を読めば、最近のVimの機能が分かる

  • 例:unite.vimとanything.elの違いが分かる

  • 一身上の理由により、Vimに乗り換えるときも安心:-)




現在確定している情報









  • ページ数は384P。Emacsテクニックバイブルと同じ。

  • 値段は¥2, 980+税

  • なんとか¥3000は切った……。

  • 若干Emacsテクニックバイブルより高い

  • 発売日は9月終わり?

  • 詳しい情報については、今後順次発表される予定




おわり









  • それでは、ご静聴ありがとうございました!

  • またどこかの勉強会で会いましょう

  • Happy Vim scripting!




2011年7月25日月曜日

Vim plugin開発の「行き詰まり」を打破する6つの方法

元ネタ「人生の「行き詰まり」を打破する6つの方法

プラグイン開発の行き詰まりは……


Vimプラグイン開発は長丁場です。いくら考えても、ニッチもサッチもいかない難題がおとずれることがあります。
すべての行き詰まりは、「こんなことVimにはできないんじゃないか?」という行き詰まり「感」です。それは、私たちが感じている一つの感情。
今日は、Vimプラグイン開発における行き詰まり「感」を解消する6つの突破口を紹介します。

1.「Vimの限界を突破する質問」を投げかける



「あなたが今、Vimの限界を感じていることは何ですか?」
「あなたがそのVimの限界を感じるたびに、自分の頭のなかでくりかえしている"問題"や"つぶやき"は何ですか?」
「あなたがそのVimの限界をこえるために役立つ答えをくれる、新しく画期的な問題は何ですか?」

この質問は、Vim scripterのShougoさんが、相談者のVim限界をこわすために考案されたものです。

人の脳はとても、単純なコンピューター。同じ問題には、同じ解法を、新しい問題には新しい解法を返します。

えてして人は同じ問題ばかりを頭のなかでくりかえしループしているのですが、こうしてそれを「見える化」することで、Vimによる新しい解決策が見つかることがあるのです。

2.「Vimコントロールの輪」を見なおす


たとえば、ある画期的なVim pluginを作りたい場合は:
内側の輪(自分で直接、変えられるもの) ... 自分の設定、自分のプラグイン、外部コマンド、外部インタフェース、外部ライブラリ
外側の輪(自分で直接、変えられないもの) ... Vimの関数、組み込みコマンド、仕様、Bramさんのポリシー

行き詰まりを感じたときに、私たちがよくやってしまうのは「自分が変えられないこと(外側の輪)にモンモンと悩んでしまうこと」。

大切なのは、自分が今・ここで直接、変えられるものだけをハッキリ切り分けること。そこだけに注力し、他はスパッとやめてしまいましょう。

「幸福への道はただ一つしかない。それは我々の意志の力では、どうにもならないVimの仕様について、悩むことをやめることにある。」
ビーム・カーネギー

3.「召喚」する


自分では、解決できない問題にであったら、それを解決したことがあるエキスパートVim scripterをvim-users.jpのなかで、「召喚」しましょう。
眼をとじて、深呼吸をし、やりたいことを簡潔にまとめたら「その人を召喚」してみてください。
何を感じていますか? 何をいっていますか? どうVim scriptを書いていますか?
きっと、あなたと違う新しい答えのヒントが見つかるはずです。

4.世界をunite化して考える


世界的に有名な「unite.vimによるカイゼン」。そのコツは、どこにあるのでしょう?
それは「世界をunite化して考えること」。
今までのインタフェースをすべてunite化する勢いで改善策を考えるという手法です。
人の頭はどうしても、今までのインタフェースに引きずられがちです。だから行き詰まってしまう。何ごとも「思い切って、unite化して改善できないか考えてみる」というスタンスが大事なのです。

5.脱力して、静かに継続する


行き詰まり感には、「他のプラグインで実装されるのではないか」という恐怖や焦りがつきまとっています。
それによってバグを仕込んだり、やる気がなくなったりするがために、うまくいかないのです。

Vim界が変化することにも、時間がかかります。
実は何も「行き詰まってはおらず」、冷静、丁寧、正確に、静かに物ごとを継続することで、少しずつうまくいっているのかもしれません。
Vim scriptは大変奥が深いです。その深淵を垣間見るためには、一年や二年のVim scriptingでは不十分です。
10年間メンテナンスするつもりで、気長に開発しましょう。
neocomplcacheやvimshellのように、三年以上継続して開発するその熱意こそがVim scriptには求められます。

ビムナムの禅僧であるビム・イズ・オールは言いました。
「微笑んで、深呼吸して、ゆっくりVim pluginを開発しよう」
脱力して、一行ずつ、静かに継続。

6.思い切って、Vimのない生活もする


「体の疲れは、Vim scripting力をも落ち込ませる」ーーこれはVim学的にも明らかで、だれもが経験していることですが
肝心なときに忘れていたりします。

人は長い間Vim scriptのみに尽力することは難しいです。
何か大きな壁にぶち当たった場合、時にはVimやPCのない環境でVim scriptのアイディアをじっくりと練ることが効果的です。
Vim plugin開発はPCやVimの存在には依存せず、脳内や手書きのノートでも十分可能であることがVim plugin開発者のShougo氏により実証されています。

「Vim pluginに対するやる気がでない。ちょっと待って……。もしかして、私、疲れてる?」
自分にこう聞いてみるだけでいいのです。もし、答えがイエスなら、思い切ってVimプラグイン開発に休みを取りましょう。
Vim休暇を使うもよし、ネットサーフィンに出かけるもよし、ちょっと早寝するのもよし、ゲームに興じるのもよし、です。
 ゆっくり休んで、Vim scripting力を充電し終わったら、意外とケロッとしているかも!?

Vimの限界は、頭のなかでつくられたもの


Vimにおいて、本当にしょうがないことは、だれもがキッパリあきらめています(例:Vimの画像表示)。

行き詰まり「感」があるということは、まだVimで実現できる可能性があると、心の深いところは感じていること。
Vimから一歩引いて、スローダウンして、Vimの周囲を大きく考えて見れば、意外とカンタンに道は開ける。

2011年6月19日日曜日

earthquake.gemをWindowsで試してみた件

jugyoさんが開発した、earthquake.gem
最近はtermtterではなく、こちらの方が良く開発されているため、vimshell対応もするべく調べています。
シンタックスを対応させたので、ようやくvimshellでも普通に動くようになりました。が、自動更新はカーソル位置がおかしくなったりしますね。
もっと調査が必要です。

それはともかくとして、earthquake.gemはインストールが面倒くさいです。
Ruby 1.9を使っているので、まぁそっちに乗り換えればよいのですが
ディストリビューションの多くはruby = Ruby1.8だったりしているので……。


この記事のように、RVMなんかを一緒に使おうとしたらハマるし。個人的にRVMは嫌いです。

さてLinuxではearthquake.gemを使うことができるようになったんですが、どうやらWindowsで使っている人がまずいない。
私はtermtterをWindowsでも使用しているので、非常に困ります。
ということでWindowsで試してみました。
とりあえず、bin/earthquakeを実行してみて、エラーになるモジュールを片っ端からgem installしていきます。

しかし、twitter-streamをインストールしようとするとNative extensionのビルドでエラー。

今度はDevelopment Kitを使ってみた。
次はeventmachineのコンパイルでエラー。勘弁してください。


cmain.cpp:752:6: error: cannot convert 'stat*' to '_stati64*' for argument '2' to 'int _fstati64(int, _stati64*)'


検索してみると、やはり同じところで悩んでいる人がいて情報を発見。
http://stackoverflow.com/questions/3649252/cannot-install-thin-on-windows
eventmachineは入ったんだけど、gemが古いeventmachine-0.12.10をインストールしようとする……。

$ gem specific_install -l git://github.com/voloko/twitter-stream.git

で何とかすることにした。またeventmachineでエラーが出た。
というか、gemsのeventmachineだれか新しくしてください……。どうして放置されているんだ。


結論:WindowsでRubyを使うのは苦行。昔からそうですけど、WindowsでRubyは使いにくいですよね。どうしてこうなった。
twitter-streamのインストールも失敗。earthquake.gemが自動更新しようとするとエラーになります。

ちょっと試してみた感じ、Windows環境でもエスケープシーケンスが普通に表示されていますね。
vimshellから使うので問題はないですけど、Windows環境のことを全く考えていないのはどうなのかな……。

2011年5月15日日曜日

ujihisa.vim行ってきました

表題の通り、ujihisa.vimに参加したので今のうちに感想とかでも書いておきます。
UST無かったのが残念ですけど、詳しい内容については他の人の感想ブログでも読めばおそらく察しが付くと思うので、私は適当に思ったこととかを書き連ねておきます。

1.ujihisaさんの「shadow.vim紹介」
私は作業をしていたので、あまり見てませんでした。shadow.vimはJava Script/Coffee Script書くひとには便利なのかなーと思ったり。

2.kanaさんが.vimrcをDisる
これは面白かった。他の人の.vimrcには摩訶不思議な設定がたくさんありますね……。
私も昔はあんな.vimrcだったなぁ、とか思い出しながら見ていた。

3.niwaさんの「Twitter社でのVim+α」
どうやらTwitterでVimを使っている人はものすごく少ないらしい。
TextMateやEclipse使いが多い。
もっとVim使いが増えると良いですね。
残りは時間が余ったので? ユニコードの話。
ややこしい問題が多すぎる……。

4.guyonさん「Vim-tinyの紹介」
突貫で作ったらしい。Vimの機能制限版Vim-tinyの紹介。
512MBしかないLinux Boxではサイズが小さい
Vim-tinyが便利らしい。

5.ujihisaさんの「vital.vim解説」
プラグイン製作者に必須のプラグインvital.vimの解説。
Vimプラグイン製作者は毎日車輪の再発明をしているので、このライブラリは便利です。

6.Shougoの「5分で分かるVimとVim plugin(仮)」
私の発表です。実は、開発環境勉強会でこれを発表しようとしていました。
が、先日の大地震により断念。今回、スライドをパワーアップさせて発表することになりました。
いつもは真面目な発表なので、今回は不真面目です。
参加者からは「これはひどい」「一瞬会場間違えたかと思いましたが、考えてみればいつも通りでした」と絶賛の嵐でした。
スライドは公開しています。こちら

7.sora_h君のカオスな発表
会場でスライドと発表するためのプラグインを作っていました。
内容はsora_h君の一日。metarwで作った自作プラグインの紹介、Rubyの効果的なバグ報告の仕方、など。
バグ報告の仕方については、Vimのプラグインでもそのまま使えるなーとか思った。

ちなみに、その後は座談会とかする予定だったんですけど、思ったよりも時間が長びいて、
私がプラグインのバグ修正とかに一生懸命だったおかげで流れてしまいました。
残念だったなぁ……。

2011年4月25日月曜日

普通のVim使いのYokohama.vim #1感想

タイトル通り、Yokohama.vim #1に参加してきたので、その感想です。
ちなみに、詳細な感想については他の人たちがもっと優秀なまとめを書いてくれるので省略します。

・Vim Levelでシャッフルと自己紹介
今回のVim Levelシャッフルはあまり意味がなかったような……。グループ分けはなし。
なぜか私が一番レベル高いということになってしまったし。
ぼくはふつうのVimつかいです。
もしkanaさんが来てくれていたら、kanaさんはおそらくLvが9~10なので、一番レベルが高かったはずなんですけどね。
あのレベル分けはネタなので、もっと良いレベル分けの方法があると良い、という話をthincaさんとしました。

時間がそれほどないということで、自己紹介はテーブル毎。偶然ですが、るびきちさんと同じテーブルになれてよかったです。

・「ふつうのVim使いの開発環境」
私の発表です。資料はこちら
実はお流れになった開発環境勉強会用のスライドを発表する予定だったのですが、
開発環境勉強会がいつ開催されるかよく分からなかったので、予定を変更して自分の開発環境晒しにしました。
本来はよくある地味な発表なんですが、それでは詰まらないと思ったため
いくつかネタを仕込んだり、開発における裏話もしました。

・「るびきちさんとの対談」
残念ながら、ここはustなしで参加者だけの特別セッション。使用しているエディタの枠を越え、二人でかなり盛り上がりました。
ただ、他の人は置いてきぼりになってしまったような。
るびきちさんと私の考えがかなり似かよっていて面白かったです。
開催者のguyonさんには、時間をオーバーしてしまって済みません。
実はkanaさんも含めて、三者対談というのをやりたかったんですけど。
内容については、#yokohamavimのTweetや他の人の感想を見れば大体分かるかと。
残念ながら、聞けなかったそこのあなたも大丈夫。実はこの対談は……。以下続報を待つように。

休憩を挟んで、

・VimとEmacsユーザー交流セッション
ここも実はるびきちさんと議論を交わしていました。
あまり真面目に回答していないけど、あれで良かったのだろうか……。
みんなの回答のまとめは、おそらくguyonさんがしてくれると思うので、楽しみに待ちましょう。

・Vim Golf
実は私Golfぜんぜんできないんです。なぜかというと、素のVimだと発狂するから。
Golfは他の人に任せます……。
記念品として貰った、Yokohama.vimのノベルティが格好良かったですね。

・懇親会
るびきちさんが参加してくれなかったのは残念だったのですが、私を含めて十数人の方が参加してくれました。
前回はたった6人だったので大きな進歩。
こちらとしても、thincaさんのvcs.vimを見れたり、
snippets_completeに要望を貰ったりとなかなか得るものがありました。

・総括:
るびきちさんが来てくれたのもありますが、かなり充実した一日を過ごすことができました。
会場のセッティングと司会進行をしてくれたguyonさん、ありがとうございます。
機会があれば、またるびきちさんといろいろ話をしたいですね。
ちなみに、開発環境勉強会で使う予定だったスライドは5月のujihisa.vimで使用する予定です。お楽しみに!

2011年4月18日月曜日

Software Design 2011年5月号レビュー&感想

今回久しぶりにレビューするのはSoftware Design 2011年5月号です。Vim&Emacs特集ということで、ついカッとなって購入してしまいました。後悔はしていません。
しかし、最近雑誌を購入するのはエディタ特集のときだけ……。

第一章


基本的な話なので省略。

第二章


findの使い方が載っているのは良いですね。あまり使わないとよく引数を忘れます。procの説明もあって、あれ? この特集ってエディタの話が主だったはずじゃ……。

第三章


サーバ管理とファイル編集の話。エディタの話が全然でてきません……。

第四章


ここはようやくVimの話。ということで、詳しいレビュー(というか正誤表?)をお送りします。

Vim基本編



P.45
「某OS付属のチープなエディタ」……「メモ帳」ですね。分かります。

「分割したウィンドウを閉じるのは「:q」コマンドです」……まぁ、間違ってはいないですが、:closeのほうが良いと思います。:qだと、ウインドウが一個のときに終了してしまうので。おそらく、:closeは冗長だから:qを紹介したんでしょうね。:qは、「ウインドウが一個のときは終了、そうでないときはアクティブなウインドウを閉じる」という動作をします。ちゃんと説明すれば混乱することはないと思いますが、初心者には分かりにくいかもしれません。

P.46
リスト1……nmapを使ってはいけません。nnoremapを使いましょう。nmapだと、キーマッピングが展開されてしまいます。例えばkanaさんのように、: -> ; とキーをマッピングしている場合に問題が発生します。nmapとnnoremapの違いを理解している人は少ないので注意が必要です。
:bpよりは、:bprevious, :bnよりは、:bnextのほうが良いと思います。.vimrcに書くときはできるだけコマンドを省略しないようにしましょう。

修正例:

nnoremap <C-p> :bprevious<CR>
nnoremap <C-n> :bnext<CR>

Vimプラグイン編:
紹介されているのは、surround.vim, NERD_commenter.vim, unite.vimです。ちなみに、unite.vimが雑誌で紹介されるのは初めて!


unite.vim
私の書いたプラグインなので、ここは詳しくフォローしておきます。
unite.vimはgithubにもありますが、vim.orgにもあります。ただし、vim.orgにあるのはまだ古いバージョンのため、githubの紹介しておいたのは正解でしょう。できれば、git cloneで取ってくる部分の解説があると良かったですね。

-buffer-nameに関する解説がないのはちょっと致命的です。ファイルやバッファ系のsourceを指定する場合は、:Uniteの引数に-buffer-name=filesとしないと、~が展開されません。人によってはひどく不便になる可能性があります。

この特集では、unite.vimのsourceが一つしか指定されていません。これでは機能がFuzzyFinderやku.vimとあまり変わらず、unite.vimの特徴が生かせません。sourceを複数指定して横断検索できることを触れておくと、良かったと思います。

細かい部分ですが、unite.vim, unite, Uniteと表記が揺れているのが気になります。ちなみに正式名称は検索しやすいように、unite.vimです。

第五章


ようやくEmacs特集です。初心者向けのレスキュー技が細かく書かれているのがすごく印象的でした。こういう記事は今まで見たことがなかったので。Emacs使ってみたけどよく分からなくなってしまった初心者には役立つ記事でしょう。Emacsからのシェルの起動ということで、M-x terminal-emulatorが紹介されていました。個人的には、M-x terminal-emulatorよりはM-x ansi-termやM-x multi-termの方が一般的かな、と思います。この章で一番驚いたのは、井上さんがeshell使いだったことです。私もvimshellを開発しているので、eshellの良さはよく分かります。最近るびきちさんもeshellに乗り換えたようですし、eshell界隈が熱くなってきましたね。

第六章


端末使用時のトラブルシューティング的な章。Windowsでtelnetからのリモートログインのやり方が載っていたのは、ちょっと珍しい記事だと思いました。

結論


Vimの部分は思っていたよりもよく書けていました。unite.vimが初めて雑誌に紹介されていたのも嬉しいです。Emacsの解説は比較的少なかったのですが、「Emacsトラノマキ」が最近レベルが高くなってしまっているので、初心者に配慮したのでしょう。エディタ好きなら買うしかない号だと、私は思います。管理者向けの話も多いので、エディタをよく使う管理者にもオススメ。