ラベル SublimeText の投稿を表示しています。 すべての投稿を表示
ラベル SublimeText の投稿を表示しています。 すべての投稿を表示

2014年4月2日水曜日

Web 製作者のための Sublime Text の教科書レビュー

この記事は Vim Advent Calendar 2013 123日目の記事である。今回は先日発売された
Web 製作者のための Sublime Text の教科書」のレビューを行う。えっ、Vim の話題
じゃないって? Vimmer の間には Sublime Text の書籍に興味がある者もいるだろう
し、「Vimmer の視点で見た Sublime Text 本のレビュー」というのは VAC のネタとし
て十分需要があると判断したのだ。VAC は執筆が綱渡りの状態のようだし、ここで支援
しておこうと思ったのも理由としてある。バトルエディターズでもお 馴染みかもしれな
いが、Sublime Text は Web 界隈を中心に最近人気を博して いるテキ ストエディタで
ある。

Sublime Text は Dreamweaver 等からの移行はよく見掛けるが、Emacs/Vim からの本格
的な移行はそれほ ど多くない。ただし、Emacs/Vim に馴染めなかった層の取り込みは
狙っているようであ る。Sublime Text はテキストエディタだが、IDE 的な機能も取り
込んでおり、エディタ と IDE の中間的存在と理解するとよいだろう。あらゆる意味
で、「イマドキのテキスト エディタ」なのである。Emacs/Vim よりも機能が整理されて
いる分拡張性は低いが、後発なだけに 設計が洗練されているとも言える。

この本は「Web 製作者のための」と冠するだけあってなんとフルカラーであり、画面写
真をふんだんに盛り込んでいる。HTML, CSS, JavaScript 関連の本はフルカラーである
ことが多いので、それらをイメージしてもらうとよいだろう。これが Emacs/Vim の教科
書ならばフルカラーというのはまずありえない。ユーザー層の違いを垣間見る ことがで
きる。多数のスクリーンショットはとても分かりやすく、初心者には理解が早いに違い
ない。

もちろん、Sublime Text のパッケージマネージャである Package Control についても
触れられている。私はこの本で Sublime Text のパッケージマネージャが以前のバー
ジョンのプラグインをバックアップしていることを知った。自作パッケージの作り方も
多少解説をしている。とはいえ、それがこの本のメインではないので簡単に流される程
度である。

この本で一番役立つといってよい部分はプラグインの紹介である。多数の Sublime Text
のプラグインがスクリーンショット付きで解説されている。私は Sublime Text ユー
ザーではないのだが、普通の人はここだけでこの本の元は取れるかもしれない。ただ
し、パッケージのチョイスが Web 系(特にデザイナー系)に偏っているので注意してほし
い。「Web 製作者のための」本であるので当然だが、それを予め理解しておかないと
「自分の必要なプラグインは紹介されてなかった」となりかねない。

最近開発が進んでいるバージョンである Sublime Text3 にも対応。Sublime Text3 は機
能の改良が進んでいるらしく、これが広く使われるようになれば Sublime Text は第三
のエディタとして更に頭角を表してくる可能性はある。

Vim ユーザーとして見ても、この本は十分に価値のあるものだった。今は別のエディタ
を使っている人達もこの本を読んで Sublime Text について勉強することは悪くないと
思う。私はせっかくだから、この本で勉強した知識をバトルエディターズ中で生かせな
いものかと考えている。

2013年5月19日日曜日

編集王(エディットキング) バトルエディターズ 第2話:彼の名は暗黒美夢王(後編)

注意:この物語はフィクションです。実在する人物・団体・ソフトウェア・テキストエ
ディタとは一切の関係がありません。宗教論争をする意図もありません。

注意:この物語を読んだところで、テキストエディタの知識が付くわけがありません。
物語中に存在するテキストエディタのネタはオマージュ程度であり、知っている人がほ
くそ笑む程度のものです。期待しないようにしましょう。

注意:この物語は皆の反応を見るためのテスト版であり未完成です。話の内容は予告な
く変更される可能性があります。

「ルールを守って楽しくエディット!」

--------------------------------------------------------------------------------
Scene 1
--------------------------------------------------------------------------------

「私はこれでターンを終了します」

来夢:EP 4000 メモリ 4/8 メインエディタ Sublime Text2
美夢王:EP 2000 メモリ 6/8 メインエディタ Vim

特殊コマンド「モード変更」の機能が無効となったことにより、Sublime Text2の戦闘力
は元に戻る。今が反撃のチャンスのはずだ。

Sublime Text2 戦闘力 3500 → 1500

信じるしかない。自分のエディタを。我はディスクから渾身のロードを行った。
「我のターン! ロード!」

来夢:EP 4000 メモリ 4/8 メインエディタ Sublime Text2
美夢王:EP 2000 メモリ 7/8 メインエディタ Vim

「こ、このコマンドは!」

「お前、『Vimの後継者』という妄言を撤回する準備はできているか?」

「私は無傷、あなたのEPは2000。この状況で負け惜しみですか。みっともないです」

「ならば我は特殊コマンド『デグレード』の機能を適用する! このコマンドは相手の
プラグインの機能を『インストールしたエディタの戦闘力を400P下げる』に変更する。
プラグインのデグレードの恐しさ、味わうがいい」

 -------------------------------------------------------------------------------
|デグレード:特殊コマンド・永続(デーモン)
|相手のメモリ上のプラグインのもともとの機能を無効にし、次の機能に変更する。
|「このプラグインをインストールしたエディタは戦闘力が 400 P 下がる。選択したプ
|ラグインがメモリ上に存在しなくなった場合、このコマンドをトラッシュに送る。
 -------------------------------------------------------------------------------

Sublime Text2 戦闘力 1500 → 1100

「わ、私のVimが……」

「『Vimtage mode』は封じた。これでお前のエディタは名実共にSublime Textとなった
な。VimでSublimeText に対し、バトル!」

「くっ……」

来夢:EP 3600 メモリ 4/8 メインエディタ Sublime Text2
美夢王:EP 2000 メモリ 7/8 メインエディタ Vim

「これで我はターンエンド」

とりあえず、このターンで相手のプラグインを封じこめることができた。EP も減らせて
上々といったところか。

- TURN 3 -

「よくも私の Vim を……。もう許しません。私のターン、ロード!」

まぁ、最初からSublime Text2はVimではないと思うが。

来夢:EP 3600 メモリ 5/8 メインエディタ Sublime Text2
美夢王:EP 2000 メモリ 7/8 メインエディタ Vim

彼女から感じる、これまでとは明らかに異なる強い気迫。

「これは……。ついに来ました。『Vimtage Mode』がなくても、勝負(エディット)に勝
てばよいのです。勝てば」

もはや彼女にとって、「Vim の後継者」というのはどうでもよくなったようだ。

「Sublime Textの真の恐しさ、あなたに見せてあげます」

どうやら、相手は切り札となるコマンドをメモリからロードすることに成功したらし
い。来るぞ!

「私は特殊コマンド『アップグレード』をSublime Text2に適用します! アップグレー
ドコストとして、EP 1000を支払い、Sublime Text2をアップグレード。エクストラディ
スクより、Sublime Text3 を特殊実行!」

 -------------------------------------------------------------------------------
|アップグレード:特殊コマンド
|アップグレードコスト 1000 を支払うことで、メモリ上の選択したエディタをバージョ
|ンアップしたエディタをエクストラディスクより特殊実行する。プラグインを引き継げ
|るどうかはアップグレードしたエディタの機能に依存する。
 -------------------------------------------------------------------------------

Sublime Text3 戦闘力 1500

「これが……Sublime Text3」

「Sublime Text3はSublime Text2のプラグインを引き継げません。しかし、新しくプラ
グインをインストールすればよいこと。私はSublime Text3に『Package Control』をイ
ンストール! Sublime Text3 にプラグインがインストールされたことにより、Sublime
Text3の戦闘力は 500Pアップ!」

来夢:EP 2600 メモリ 4/8 メインエディタ Sublime Text3
美夢王:EP 2000 メモリ 6/8 メインエディタ Vim

プラグインの互換性がないことにより、Sublime Text2 がインストールしていたプラグ
インがトラッシュに置かれたため、『デグレード』もトラッシュに送られた。

Sublime Text3 戦闘力 1500 → 2000

「Sublime Text3でVimに対しバトル!」

「『モード変更』の機能でこのターンはアタックできないはずでは?」

「確かにその通り。しかし、『モード変更』を使用したのは Sublime Text2です。別
のエディタであるSublime Text3には適用されません」

「そこまで考えてのアップグレードだったか。やるな」

「ふん。あなたに褒められても嬉しくありませんわ」

デグレードを回避したというだけでなく、別のエディタである Sublime Text3を実行す
ることで、モード変更のコストをも回避したというわけか。ああ見 えて、戦略を考えて
いると見える。こちらも全力で相手しないと。我は不思議と高揚していた。これだか
らテキストエディタというのはやめられない。

「全く、テキストエディタは最高だぜ!」

「い、いきなり何を言っているの。私のエディタを見てニヤつくだなんて。この、変態」

「それは聞きずてならないな。変態(へんたい)、じゃなく編集(へんしゅう)と読んでく
れ。その方が落ち着くんだ」

「やはり、テキストエディタの使いすぎで頭がおかしくなったみたいですね。私があな
たの頭をデバッグしてあげます。Sublime Text3でVimにバトル!」

「く……」

来夢:EP 2600 メモリ 4/8 メインエディタ Sublime Text3
美夢王:EP 1500 メモリ 6/8 メインエディタ Vim

「これで私はターン終了です」

--------------------------------------------------------------------------------
Scene 2
--------------------------------------------------------------------------------

「我のターン、ロード!」

来夢:EP 2600 メモリ 4/8 メインエディタ Sublime Text2
美夢王:EP 1500 メモリ 7/8 メインエディタ Vim

「我はプラグイン『neo-snippet』を Vim にインストール! さらにneo-snippetの機能
を適用。EP を 500 支払うことで、メモリ上に neo-snippet トークンをプラグイン扱い
でエディタにインストールする。『ネオ・スニペット・エキスパンション!』」

Vim 戦闘力 1500 → 2000 → 2500

 -------------------------------------------------------------------------------
|neo-snippet:プラグイン・Vim
|このプラグインはVimにのみインストールすることができる。
|機能『ネオ・スニペット・エキスパンション』 EP を 500 支払うことで、メモリ上に
|neo-snippet トークン(機能なし)をプラグイン扱いでエディタにインストールする。
 -------------------------------------------------------------------------------

「VimでSublimeText 3にバトル!」

「ふん、かすり傷です」

来夢:EP 2100 メモリ 4/8 メインエディタ Sublime Text3
美夢王:EP 1000 メモリ 8/8 メインエディタ Vim

「我はこれでターンエンド」

- TURN 4 -

「私のターン。私は『Package Control』の機能で、ロードフェイズをスキップし、
Sublime Text3にプラグインをインストール!  『パッケージ・インストレーショ
ン!』」

Sublime Text3 戦闘力 2000 → 2500

 -------------------------------------------------------------------------------
|Package Control:プラグイン・Sublime Text
|このプラグインはSublime Textにのみインストールすることができる。
|機能『パッケージ・インストレーション』 この機能はロードフェイズにのみ適用できる。
|ロードフェイズをスキップし、エディタにプラグインを1つランダムでインストールする。
|このプラグインがメモリ上に存在しない場合、この機能でインストールされたプラグイ
|ンをトラッシュへと送る。
 -------------------------------------------------------------------------------

「さらにここで、特殊コマンド『インスタント・プラグイン』の機能を適用! さきほ
どインストールしたプラグインの機能を無効にすることで、プラグイントークンをエ
ディタにインストールします」

 -------------------------------------------------------------------------------
|インスタント・プラグイン:特殊コマンド
|機能『インスタント・インストレーション』 自分のメモリ上のプラグインを一つ選択
|する。このプラグインの機能を無効にすることで、プラグイントークン(機能なし)をエ
|ディタにインストールする。
 -------------------------------------------------------------------------------

Sublime Text3 戦闘力 2500 → 3000

「まだ終わりではないわ。Sublime Text3の機能、適用! このコマンドにプラグインが
3 つ以上インストールされている場合、EP を プラグインの数x100支払うことで、この
コマンドは 2 回の攻撃が可能になる。『サブライム・マルチスレッド!』」

来夢:EP 1800 メモリ 4/8 メインエディタ Sublime Text3
美夢王:EP 1000 メモリ 8/8 メインエディタ Vim

そうか、彼女は戦闘力を単に上げるだけでなく、二回攻撃を狙っていたのか。二回の攻
撃は、生半可なコマンドでは対処 が難しい……。

「戦闘力 3000……しかも二回アタックなんて、もう美夢王も終わりだな」
「あーあ、結構盛り上がったのになー」
「残念」

諦めに満ちた声が聞こえてくる。しかし、我はここで終わるわけにはいかない。

「我は特殊コマンド『conceal』を Vim に適用! このターン、Vimはバトルとコマンド
の機能の対象から外れる」

Sublime Text2 戦闘力 3000
Vim 戦闘力 ?

 -------------------------------------------------------------------------------
|conceal:特殊コマンド・速攻(クイック)
|このコマンドの機能はvi/Vimにのみ適用することができる。
|機能『コンシール・スキップ』 自分のメモリ上のVimエディタはこのターンのエンド
|までバトルとコマンドの機能の対象とならない。ただし、このターンのVimはバトルと
|機能の適用を行えず、インストールしているプラグインも無効化される。このコマンド
|の機能は相手のターンでも適用できる。
 -------------------------------------------------------------------------------

「くっ、命拾いしたわね。これで私はターンを終了します」

来夢:EP 1800 メモリ 4/8 メインエディタ Sublime Text3
美夢王:EP 1000 メモリ 7/8 メインエディタ Vim

とっさにコマンドを使わないと危なかった……。

「たとえこのターン、ギリギリで凌いだとしても、戦闘力の差は明白。次の私のター
ン、あなたは終わりです」

「確かに、そうかもしれない。だが、編集(エディット)は最後の最後まで分からないも
のだ。これが、我のラスト・ロード!」

来夢:EP 1800 メモリ 4/8 メインエディタ Sublime Text3
美夢王:EP 1000 メモリ 8/8 メインエディタ Vim

我は、ロードしたコマンド名を見て、確信した。

「クックック、完成したぞ。勝利のアルゴリズムが」

「我はVimにインストールした『neo-shell』の機能を適用! メモリ上のコマンドをト
ラッシュに送ることでこのターンの戦闘力をそのコマンドの戦闘力と同じだけアップさ
せる。『ネオ・シェル・エクステンション!』」

「我がトラッシュに送ったのは、戦闘力 400 のコマンド。よって、戦闘力 400 アッ
プ!」

Vim 戦闘力 2500 → 2900

来夢:EP 1800 メモリ 4/8 メインエディタ Sublime Text3
美夢王:EP 1000 メモリ 7/8 メインエディタ Vim

 -------------------------------------------------------------------------------
|neo-shell:プラグイン・Vim
|機能『ネオ・シェル・エクステンション』 メモリ上のコマンドを一つトラッシュに送
|る。このターン終了まで、このプラグインをインストールしたテキストエディタの戦闘
|力は1.5倍となる。この機能は1 ターンに一度のみ適用可能である。
 -------------------------------------------------------------------------------

Vim 戦闘力 2500 → 2900

「さらに、我はロードしたプラグイン『neo-complete』をVimにインストール!」

 Vim 戦闘力 2900 → 3400
 Sublime Text 3 戦闘力 3000

「そして我は『neo-complete』の機能を適用する! メモリ上のコマンドを一つトラッ
シュに送ることで、Vim の戦闘力を 1.5 倍にする。『ネオ・コンプリート・フラッ
シュ!』」

 -------------------------------------------------------------------------------
|neo-complete:プラグイン・Vim
|機能『ネオ・コンプリート・フラッシュ』 メモリ上のコマンドを一つトラッシュに送
|る。このターン終了まで、このプラグインをインストールしたテキストエディタの戦闘
|力は1.5倍となる。この機能は1 ターンに一度のみ適用可能である。
 -------------------------------------------------------------------------------

来夢:EP 1800 メモリ 4/8 メインエディタ Sublime Text3
美夢王:EP 1000 メモリ 6/8 メインエディタ Vim

 Vim 戦闘力 3400 → 5100
 Sublime Text 3 戦闘力 3000

「戦闘力 5100 ……ですって?」

「VimでSublimeText 3にバトル!」

「きゃああああ!」

来夢:EP 0 メモリ 5/8 メインエディタ Sublime Text3
美夢王:EP 1000 メモリ 4/8 メインエディタ Vim

「さ、Sublime Textに勝った!」
「ス、スゲェエエエエエエ」
「暗黒美夢王!」「暗黒美夢王!」「暗黒美夢王!」
「Vim!」「Vim!」「Vim!」

皆の歓声が心地良い。今も昔も、勝利の味は格別ということか。

「思ったよりやるではないか。楽しい編集(エディット)だったぞ」

我は床にへたりこんでしまった彼女に手を差しのべようとした。
だが、彼女はそれを払いのけると、

「ふん。次回は負けません」

と精一杯の強がりを見せるのだった。

「そうか。じゃあまた今度、な」

久しぶりの編集(エディット)だったが、こういうのも悪くな……うっ。

「くっ……体(エディタ)が不安定になって……力を使いすぎたのか……。我の脳がク
ラッ……シュ」
「ちょっと、どうしたのあなた。しっかりしなさい!」
我の意識があったのはそこまでだった。

--------------------------------------------------------------------------------
Scene 3
--------------------------------------------------------------------------------

気付くと、そこは学校の保健室だった。横にいるのは、誰だろう。どこかで見たことあ
るような。

「あれ、来夢ちゃんだったっけ。ずっと僕のことを看てくれたの。どうもありがとう」
「ふ、ふん。優しい言葉を掛けたところで、私には効きません。あのまま勝ち逃げされ
るわけにはいきませんでしたから。それだけです」

そう言うと、彼女はつーんとそっぽを向いてしまった。

『Vim の後継者』なんて言ってたからお近付きにはなりたくなかったのだけど、僕のこ
とを助けてくれたようだし案外悪い人じゃないのかな。

「ずっと気になっていたんだけど、あなたはもしかしてわざと……」
「ん? 何のこと」
「考えすぎよね」




暗黒美夢王の勝利の完成に湧く教室にて、ある男が暗黒美夢王のエディットの様子を眺
めていた。

「そうか、遂にVimを継ぐ者が現れたか。待ちわびたぞ」
「俺のEmacsで完膚なきまでに叩きのめしてくれる。歴史上幾度ともなく繰り返されてき
た因縁。今こそVimとの決着を付けるのだ……。ククク、ははははは!」

(「第3話:宿命の対決」に続く……)