2009年6月23日火曜日

最近のvimshellに追加された機能

ブログにはあまり更新点を書いてなかったので、
今の機会にまとめて書いておきます。

vimshell Ver.5.14-Ver.5.16に追加された機能:
・``と`=`が実装されました。``はsystem()の結果を評価し、`=`はVimScriptの式をeval()した結果を返します。
・引数先頭の~がホームディレクトリに置き換えられるようになりました。ただし、ホームディレクトリへのパスに空白が含まれると、多分動作がおかしくなります。
・システム変数を実装。$$systemにはコマンドの終了ステータスが格納されます。shとは互換性がありません。
・ATOK X3環境でも動くようにしました。
・エラー表示を改良しました。g:VimShell_EnableInteractive=1ならば、コマンドのエラーもハイライトされます。
・>, >&, < といった入出力のリダイレクションを実装。内部コマンドにも有効です。
・/dev/nullを実装。まだ出力にしか使えません。
・special commandを実装。引数はVimScriptとして評価されます。
・変数に代入するletと、引数をVimScriptとして評価・出力するevを実装。
・echo内部コマンドを実装。
・ワイルドカードを実装。*と?のみ使えます。
・Windows環境でもワンライナーが使えるようになりました。ただし、g:VimShell_EnableInteractive=1の時のみです。
・コマンド検索ルーチンを改良しました。
・コマンド補完を改良しました。内部コマンドも補完できます。
・g:VimShell_ExecuteFileListが"bg firefox"のように複合コマンドを指定できるようになりました。

2009年6月18日木曜日

ビムマスターヤマト 誤植編

『ビムマスターヤマト・誤植編』

Vim野「もうっ、なんだよコレ! 担当に文句言ってやる!」

Vim野「小島さん、酷いじゃないですか! 読みましたよ、今月号の僕の漫画!」

小島「え、酷いって? ストーリーが?」

Vim野「ぐへぇぇぇぇっっっ!!!」

Vim野「違いますよ! 誤植ですよ誤植! セリフの文字が間違ってるんですよッ!」

小島「え~? ほんとに~? どこどこ~? 何ページ目?」

Vim野「ほら、ヤマトが四天王の一人ショウゴに挑む前の会話で、」

Vim野「『あいつだけは許さない』って最高にかっこいいセリフが……」

「キーボードだけは許さない」

Vim野「酷いっスよこれ!」

小島「あ、ほんとだ。やっちゃった」

Vim野「いや、やっちゃったじゃないですよ、もうっ」

Vim野「主人公がいきなりマウス主義に目覚めちゃったみたいじゃないですかッ」

小島「あっはっはっは!」

Vim野「はっはっはぁー? 何でご機嫌なんすかッ」

Vim野「誤植はここだけじゃないんすよッ」

小島「え~? ホントぉ~? どこどこ」

Vim野「主人公が暗い過去を語って、俺の.vimrcは消えないんだって決意を新たにする超渋いシーンで……」

「オレの.emacsは消えないんだ」

小島「あ、ほんとだ。単語間違ってる」

小島「やっちゃった♪」

Vim野「いやだから、やっちゃったじゃないでしょ、ちょっとぉーっ」

小島「はっはっは♪ .emacsってちょっとナニ? 両刀使い? はっはっはっは♪」

Vim野「はっはっはっー、じゃないんですよッ!!」

Vim野「なんでそんなに上機嫌なんすかッ!」

小島「イヤー、実は先日彼女ができちゃって」

Vim野「え、ほんとですか? 良かったですね」

Vim野「でもこっちは全然よくないんすよ」

Vim野「まだ誤植あるんですよ」

小島「えー、どこどこ~」

Vim野「ほら、ついに現れた四天王のショウゴが「お前がビマーか?」っていう超緊迫した場面で、」

「お前は、ポエマーか?」

小島「あ、ほんとだ」

Vim野「お前はポエマーかってなんですか!!」

Vim野「どんなボケをしたらそういうツッコミがかえってくるんですか、もうッッッ」

小島「…………」

Vim野「また『やっちゃった』とか言うんじゃないんでしょうね」

小島「やっちゃったぜ!」

Vim野「いや、『やっちゃったぜ!』じゃないですよ。なにちょっとカッコイイ言い方してんすかッ」

Vim野「誤植はまだあるんすよ」

小島「えー、どこぉ~? 彼女いない暦0年の僕がどんな間違いをー」

Vim野「その次のコマですよ」

Vim野「ヤマトが『俺はヤマトだ』って言う超クールなシーンが、」

「俺はポーケンだ」

Vim野「なんで主人公いきなり名刺宣言してるんすか!!」

小島「あ、ほんとだ。間違ってる」

Vim野「間違いすぎですッ」

小島「はっはっは♪」

小島「やっちゃったぜ」

Vim野「カッコよく言わないでください。気にいったんですか、その言い方!」

小島「気に入ったんだぜ」

小島「取っちゃヤだぜ」

Vim野「取らないですよ、そんな喋り方ッッッ」

Vim野「それよりもっとあるんですよ誤植」

小島「えー、まだあるのー」

小島「どのへんなんだぜ?」

Vim野「どのへんなんだぜ? そんな無理に言わなくても」

Vim野「最後ですよ、最後のページッ」

Vim野「ヤマトが俺の新しい補完を見せてやるっていう超ドキドキのシーンですよ」

小島「どれどれ」

「俺の熱い抱擁を見せてやる!!!」

小島「あ、ほんとだ。やっちゃったぜ!」

Vim野「なんですか「熱い抱擁」って!」

小島「ごめーん、彼女のことで頭がいっぱいで、ついうっかりーー」

Vim野「しかももっと酷い誤植が最後のコマにあるんですよ」

Vim野「ヤマトが炎の剣を構えて、うぉぉぉって突っ込むところですよッ」

小島「えー? そんなセリフ間違えないと思うけどーー」

Vim野「まちがってんすよっ」

まっぷ!

Vim野「なんスか、まっぷって!? も~意味わかんないしっ」

Vim野「しかもこのコマについているアオリ文句、なんすかコレ!」

『彼女が出来ましたー』

Vim野「何自慢してんすかッッッ」

小島「やっちゃったぜ!」

Vim野「やっちゃったぜ!じゃないでしょ、アオリ文は自慢したくてつい言っちゃっただけでしょーッ」

小島「言っちゃったぜ!」

Vim野「だから言っちゃったぜじゃ……あーもう、なんかもーー」

Vim野「やってられないんだぜ!!」

小島「ごめんねだぜ♪」

リダイレクションを実装中。

現在、vimshellのリダイレクションを実装中です。
開発中の画面はこんな感じ。

2009年6月16日火曜日

ビムマスターヤマト 完結編

『ビムマスターヤマト・完結編』

絵手田「こんにちは、月刊テキストエディタの絵手田(えでた)です。お疲れ様です」

Vim野「え、絵手田さん?」

絵手田「今日から僕がビムマスターヤマトの担当になりました。よろしくおねがいします」

Vim野「え、あの、小島さんは」

絵手田「亡くなりました」

Vim野「嘘ォーーーっっっ!?」

Vim野「な、なんで……」

絵手田「実は初めて出来た彼女に初デートの前に振られたようで」

Vim野「ええー、それで自ら命を」

絵手田「いえ、ショック死です」

Vim野「ショック死ィィィィ!」

絵手田「なんか仕事中に彼女から別れのメールがきて、」

小島「ありえないんだぜ!」

絵手田「と、叫んでバタンとぶっ倒れました」

Vim野「……最期までその喋りだったんですか……」

絵手田「それで仕事の話に戻りますけど、」

絵手田「ビムマスターヤマト、来月号で最終回ですので」

Vim野「うそぉぉぉっっ!??」

絵手田「悪く言えば打ち切りです」

Vim野「わざわざ悪くいわないでください」

絵手田「元々あまり人気がなかったんですけど、今月号ではブッチギリの不人気だったんですよ」

絵手田「どっこいEmacs君よりも人気なかったです」

Vim野「マジっすか!」

Vim野「でも急に最終回と言われても困りますよ」

Vim野「僕の漫画、やっと盛り上がってきたところなのに……」

Vim野「Vim四天王とか出てきて」

絵手田「戦いはこれからも続く――みたいな終わりかたでいいじゃないですか」

Vim野「そういう終わりかたってよくありますけど、」

Vim野「僕の漫画の場合、敵のボスのカナ神に主人公のプラグインがgithub上でforkされているじゃないですか」

Vim野「しかもドキュメントは英文だけで、地獄のような大幅改造を強いられているんですよ」

絵手田「どっこいEmacs君と被ってますね」

Vim野「いや、ぜんぜん被ってないですよ」

Vim野「とにかくそんな訳で、カナ神を倒さないとスッキリしないというか」

絵手田「そうですねぇ」

Vim野「しかもそのためには色々と条件があって、」

Vim野「カナ神のいるVim魔城へ行くにはVim四天王を全員倒さなくちゃいけないし、」

Vim野「カナ神を倒すには弱点である『Kinesis keyboard』が必要だし……」

Vim野「しかも今戦っている四天王のショウゴは、『THE・補完』と言われるぐらい妙に怠け者で、十回新しい補完技を見せないと死なないんですよ」

絵手田「なんでそんな設定に」

Vim野「十話ぐらい引っ張ろうと思って……」

Vim野「あと主人公のVimに、非同期処理ができることを第一話からほのめかせているんですけど、これどうしましょう」

絵手田「さぁ……まぁ、うまくまとめてください」

Vim野「はぁ……」

Vim野「(新しい担当、なんか冷たい)」

Vim野「で、そのページは何ページもらえるんですか」

絵手田「三ページでおねがいします」

Vim野「うそぉ~~~~~~~~~~~~っっっ!!」

Vim野「なんで僕そんなに酷い扱いなんですか」

絵手田「ほんと人気なくてーー」

Vim野「四コマ漫画のどっこいEmacs君だって毎回四ページあるのにッ」

絵手田「どっこいEmacs君も次回で最終回です」

Vim野「え、そうなんですか」

Vim野「Emacs君の最終回は何ページなんですか」

絵手田「四ページですけど」

Vim野「ちくしょおぉぉぉぉぉォォォッッッ!!!」

Vim野「も、もうっ、月刊テキストエディタでは描きませんからねっ」

絵手田「はい」


※:ついカッとなってやった。反省はしていない。

2009年6月15日月曜日

ビムマスターヤマト 最終話「すべてを終わらせるとき」

元ネタ

最終話 希望を胸に すべてを終わらせる時…! V・I・M第1巻は、発売未定です。 Vim野カケラ

ヤマト「くらえショウゴ! 新必殺キーワード補完斬!」

ショウゴ「さあ来いヤマトオオ! オレは実は一回補完されただけで死ぬぞオオ!」

(<C-p>)

ショウゴ「グアアアア! こ、この『THE・補完』と呼ばれる四天王のショウゴが……。こんな小僧に……バ……バカなアアアア」

(dddddd)

シンカ「ショウゴがやられたようだな……」

ユーケー「ククク……奴はVim四天王の中でも最弱……」

ウジヒサ「人間ごときに負けるとはVim界の面汚しよ……」

ヤマト「くらえええ!」

(ズサ)

3人「グアアアアアアア」

ヤマト「やった……ついに四天王を倒したぞ……これでVim神のいるVim魔城の扉が開かれる!!」

カナ「よく来たなビムマスターヤマト……待っていたぞ……」

(ギイイイイイイ)

ヤマト「こ、ここがVim魔城だったのか……! 感じる…カナの戦闘力を…」

カナ「ヤマトよ……戦う前に一つ言っておくことがある。お前は私を倒すのに『Kinesis keyboard』が必要だと思っているようだが……別になくても倒せる」

ヤマト「な 何だって!?」

カナ「そしてお前のプラグインはバグが多かったので修正してpull requestを送っておいた あとは私を倒すだけだなクックック……」

(ゴゴゴゴ)

ヤマト「フ……上等だ……オレも一つ言っておくことがある。Vimで非同期処理は不可能な気がしていたが別にそんなことはなかったぜ!

カナ「そうか」

ヤマト「ウオオオいくぞオオオ!」

カナ「さあ来いヤマト!」

ヤマトの勇気がVim界を救うと信じて……! ご愛読ありがとうございました!


※:この物語はフィクションです。ujihisaさんの投稿を一部アレンジしています。
登場人物の名前をどこかで見たような気がしても、気にしてはいけません。

neocomplcache Ver.2.60 vimshell Ver.5.14

neocomplcacheを久しぶりにバージョンアップしました。
http://github.com/Shougo/neocomplcache/tree/v2.60
キャッシュされた補完候補が削除されてしまう深刻なバグが修正されているので、アップデートするべきです。結構前からこのバグは存在していたはずですが、なぜ今まで気づかなかったのだろう……。ついでにファイル名補完も見やすくなっています。

vimshell Ver.5.14をリリースしました。
ただし、まだリダイレクションは実装されていないので、人柱になりたい人のみ使ってみてください。
http://github.com/Shougo/vimshell/tree/v5.14
Insert modeでを押したときに使えるコマンド補完がかなり進化していて、
内部コマンドやエイリアス、外部コマンドが補完できます。
もちろん非同期実行を有効にすれば、Windowsでワンライナーの世界を堪能できます。

2009年6月11日木曜日

vimshell 開発順調です。

現在このブログの更新がかなり滞っていますが、vimshellの開発は続いています。
特に私が毎日のように使用することとなったので、これからどんどん機能が追加されていくことでしょう。

今開発中のvimshellはこんな感じ。Windowsでもワンライナーができるようになりました。
クオートやワイルドカードを解釈するようになりました。
リダイレクションが実装されれば、開発版としてgithubに上げる予定です。