2012/06/07


Vimでギャル文字を打てるプラグイン作った。
mattn/gal-vim - GitHub
https://github.com/mattn/gal-vim
例えば :GalOn と実行したあと はまちおにいちゃん とタイプすると レ£маちぉL=L1ちゃh と入力されます。素晴らしいですね!

無効にするには :GalOff とします。また、既に出来上がった文書をギャル文字にしたい人もいるかと思いましたのでGalReplaceコマンドも用意しました。 :%GalReplace と実行すれば文書内が全てギャル文字になります!先日書いた記事
Big Sky :: シャア「Viをやめろと言ったはずだ。それがVimとはな」

シャア 「Viをやめろと言ったはずだ。それがVimとはな」 セイラ 「兄さんこそ、EmacsユーザにまでなってVimmerに復讐しよう      なんてやることが筋違いじゃなくて?」 シャア 「お前の...

http://mattn.kaoriya.net/etc/20120523191833.htm
だとこんな感じになります!
シャ了 「ViщoャめЗ`⊂言ッ十こレ££〃ナ⊇〃。ζяёヵゞVim`⊂l£ナg」
世ィяа 「兄(十w⊇ξ、Ёm@¢δュ⇒廾〃(二маτ〃ナょッτVimmёгI=復讐ιчoぅ
     十ょhzャゐ=`⊂ヵゞ筋違L丶ι〃ゃナg<〒?」
シャァ 「ぉ前σ兄ヵゞξσ程度σ男ナニ〃`⊂思ッτL丶ゑσヵゝ?ァlレ〒ィシァ」
世ィяа 「ぇ?」
シャ了 「Ёm@¢δュ→廾〃レこ十ょッz小キ旨щo鍛ぇτ來十こσм○、小キ旨τ〃遠レ)Ё∫℃‡⇒щo
     キ甲U†ニカヽッ†ニカゝяа+=〃。Uヵゝι十ょ、了|レ〒ィシ了、禾ム+=〃ッ乙ξяёヵゝяа
     少Uレ£因囚丨ニ十ょッ†ニ」

シャ了 「VimmёгщoЁm@¢δュ→廾〃カゞ倒£ナニ〃(ナτ〃レ£〒≠ス┝工〒〃ィタ界σ真σ
     平和レ£得яаяёナgレ丶`⊂悟ッナ=σ†こ〃」
世ィяа 「†ょ世〃?」
シャァ 「Ё¢liρδёσ逆襲ナ=〃」
世ィяа 「Ё¢liρδёカゞ之〒〃ィタ∪〃ゃ十ょ〈IDЁナ⊇〃カ丶яа?」

フ〃яаィ├ 『Ё¢liρδё?』

シャ了 「ぅ£′、ξσЁ¢liρδёщo敵I=£ゑσl£面白<†ょレ丶。今後l£=яёмατ〃
     培ッナ=変態キ支ヵゞイ吏ぇйu、`⊂L丶ぅ⊇`⊂†こ〃」
世ィяа 「IDЁ推進派レ£、Ё¢liρδёl£開発環境全イ本ヵゞ変wαゐ∧〃L≠王里想σIDЁナ⊇〃、`⊂
     教ぇ〒<яё+=ゎ。ナ=〃ッ十こζ、Ё¢liρδёщo敵丨ニ£ゑ必要(£ナgL1(££〃чo」
    「≠ャスノ|〃lレ兄±ω、兄L+hイ可щo考ぇ〒ゐσ?」
シャ了 「мσぅ変態キ支щoイ吏ぇゐ`⊂言ッ+=。了」レ〒ィシァ(£Vimщoイ吏ぅσщo止めЗ」
世ィяа 「Vim?ぁσ変態工テ〃ィタσ=`⊂?」
シャ了 「ぁぁ。∫@κцг@工〒〃ィタ(ニ乗└丿換ぇゐ〈яаレ)σ移行手川頁書レ£残U乙L丶<。
     Щiйdοщδュ→廾〃丨ニナょッz一生щoмαッ`⊂ぅUЗ。禾ムl£мσぅ、
     ぉ前σ知ッτレ丶ゐ兄±wτ〃(£†ょぃ」
世ィяа 「(⊇、兄±w」
シャ了 「vimδ┣┓ёllщoイ吏ッτレ`ゐ言尺カゞwαカ丶ゑ†ょ?禾ムレ£シェ」レщoキ舎τ十こσナニ〃чo」
素晴らしいですね!ぜひご活用下さい!

eskk.vimの様に、仮入力でバッファが変更される様な入力メソッドを使っている場合は誤動作する可能性があります。
Posted at by



2012/05/25


quickrun.vim は言うまでもなく、とても便利なプラグインなのですが、C言語もしくはC++を書く人にとって少し使いにく所があります。
quickrun はファイルタイプに従ったコマンド定義に従って編集中のファイルを実行してくれます。C/C++ であれば実行可能なコンパイラでコンパイルし、実行した結果を表示してくれます。
しかし例えば C++ で boost を使う場合、ヘッダオンリーな物であれば問題無いのですが、ライブラリをリンクする必要がある場合には、quickrun では面倒な実行方法を取らざるを得ません。
ユーザからすれば #include <boost/filesystem.hpp>
と書かれていれば、出来れば -lboost_filesystem をリンクして欲しいものです。今日はそれを実現してくれる quickrunex.vim というのを作りました。
上記の様に boost/filesystem.hpp が include されていれば自動で -lboost_filesystem を付与してくれます。
現在対応しているライブラリとしては
  • libuv
  • v8
  • gtk
  • boost/chrono
  • boost/date_time
  • boost/exception
  • boost/filesystem
  • boost/graph
  • boost/iostream
  • boost/locale
  • boost/math
  • boost/python
  • boost/random
  • boost/serialization
  • boost/signals
  • boost/system
  • boost/thread
  • boost/timer
  • boost/wave
  • fltk2
  • fltk3
となります。#include するだけで自動的にライブラリをリンクしてくれます。
mingw32 と msvc にも対応しています。linux でも動くはずです。また mingw の boost であれば libboost_system-mgw46-1_46.dll.a の様に -lboost_system ではリンクしてくれないライブラリもありますが、これも自動で補完してくれます。
ですので、vim を起動してガシガシ書いて、一度も終了せずにアプリケーションを書けてしまいます。
今後、ユーザが拡張して仕組みを増やせる様にしたいと思うと同時に、C/C++ 以外にも使えたらいいなーと思っています。

ただし以下の点に注意しておいて下さい。
quickrunex.vim は quickrun.vim の v0.6.0 ブランチを使っています。master ブランチでは動作しません。

非推奨APIである quickrun#register_hook を使っています。help にも削除される可能性があると書いてありますので、いずれ動かなくなるかもしれません。

まぁ、thinca さんの事なので、おそらく別の方法で hook を登録出来る仕組みを作ってくれると信じていますが。
宜しければどうぞ。
mattn/quickrunex-vim - GitHub

quickrun extension for C/C++

https://github.com/mattn/quickrunex-vim
Posted at by



2012/05/18


最近Vim界隈で色々出来事がありまして、その色々を起こした数名の内の1人です。
vim-jp » Vimのユーザと開発者を結ぶコミュニティサイト

vim-jpはVimと日本・日本語に関わるあらゆるリソースを集中させることを目的としたコミュニティサイトです。vi は、おそらく全てのUNIX系 OS 上で使えるテキストエディタです。世界には、さまざ...

http://vim-jp.org/
開発者やユーザによっては良い出来事だと信じています。
そのサイトでご紹介した記事
vim-jp » Vimで動くゲーム

最近、Vim scriptで書かれたゲームが登場し始めています。今日はその中でも有名な物をご紹介します。TeTrIs.vim : A tetris game in pure vim ご存知テトリス。「ピ...

http://vim-jp.org/blog/2011/09/20/games.html
で、作りかけながらインベーダーゲームをご紹介しました。
mattn/invader-vim - GitHub

invader game in vim

https://github.com/mattn/invader-vim
起動するとこんな感じになって、ちょっとだけ遊べます。
一応、敵キャラもアニメーションしてて遊べます。スコアなどはまだありません。
invader-vim
次に、先ほど出来てホヤホヤの麻雀ゲーム。
mattn/mahjong-vim - GitHub

mahjong game in vim

https://github.com/mattn/mahjong-vim
見た目だけは本格的です。
mahjong-vim
マンズしか無いですが、何回でアガれるかを競うゲームです。
点数計算などはありません。

Vim scriptの勉強にも役立つかもしれません。良ければ遊んでみて下さい。
Posted at by