2014年3月29日土曜日

yamyで窓をVimにする

普段Pear OSを使っているのですが、最近Excel VBAを使って母の要望に特化した家計簿を作ろうというプロジェクトを始動さました(この時期に始めると、この春から大学に入学し忙しくなるのでおじゃんになってしまいそうですが)。

ここで、Excel VBAに対する愚痴になってしまうのですが、エディタにVimが使えないのはいかがなものかと思うんですね。

最近、Vimの使えない環境に追いやられると発狂してしまう俺は標準のエディタを使っているとキーボードを叩き割りたくなるので、コードを一旦Vimにコピペして編集。編集が終わったら今度はExcelにコピペといった具合に非効率的な作業をしています。
Vim歴2,3ヶ月でこの症状がでるんですから、Vimって恐ろしいほどの中毒性があるんだなと思います((((;゚Д゚))))ガクガクブルブル

そこでなんとかならないかと調べていたら、このような素晴らしい記事を見つけました。
そこで、この記事中で紹介されているvimedit.mayuをコピペしてみたのですが動かない。

なんでかと思い、説明をじっくり読んでちょっとずつ自分で設定ファイルを書いてみたら動くじゃありませんか!

たぶん、どこかの仕様がこの著者と違うかそのたぐいだろうと思うのですが、カーソルをhjklで動かせるようにしただけで、だいぶストレスが解消されました。

そこで、もうちょっと読み進めていると、このマニュアル、最高ですね!
曖昧なところがなく、例もあるため読みやすい。
素晴らしいなものと出会ったなと感動で涙が出そう(嘘)です。
あ、でも感動したところまではほんとです。

そこで、ここまで素晴らしいマニュアルと、vimedit.mayuを参考にしながら書けば、自分仕様のVimemulatorができるのでは無いかと何故か思ってしまったため、作ってみたいと思います。

それにしても、このvimedit、よく出来ているなと思います。
Lock機能を使ってVim風にするなんて発想がまず思いつきませんでした。
それに、コメントもきっちりと書いてあって開発者の鏡だなと思いました。
しかも、2バイト文字が使われていない!
コードって人格が現れるんですね!
そして、そんな尊敬できる方の素晴らしい発想を早速ですが、ものすごく申し訳ないと思いながらパクらせていただきます。←大丈夫なのかな?非常に恐れ多いのですが


まずは想定する動作環境から。
このPCしか使わないつもりなので、以下の環境でのみ動けば十分ということで。
PCはDellのInspilon 620-s
CPUはIntel(R) Core(TM) i5-2320
メモリは8.00GB
キーボードは先日ボランティア先の方から、大学に行く餞別として頂いたHappy Hacking Keyboard Lite US配列(その方も前の職場を離れるときに餞別として頂いたものらしく、Lite2ではなくLite。端子もPS-2だったので、変換コードを探すのに数軒電気屋を回りました。なかなか気に入っています。)
マウスは何でもいいよね?いちおう今使ってるのはPC買った時についてきたちゃっちーやつ。
ディスプレイの仕様もどうでもいいことにしちゃおう。

とりあえず、動作環境はこんなもんでOKでしょうか?

そして、次に仕様を考えていきたいと思います。


必要なモードは
  • ノーマルモード
  • 挿入モード
  • 上書きモード
    • r押すとなるやつ
    • <S-r>押すとなるやつ
  • ヴィジュアルモード
    • v押すとなるやつ
    • <S-v>押すとなるやつ
    • <C-v>押すとなるやつ
にします。
コマンドモードは、一回一回':'から初めて押すことにします。

さて、ここで大事なのは「妥協」です。
ほとんどのエディタでは"Home"キーを押すと行頭にジャンプしますが、もしそれがファイルの先頭に移動するようなエディタがあったら、yamyを使って0を押した時にファイル先頭に飛んでしまったとしてもそれは仕様なのです。
仕様のとおりに設定ファイルを作るのではなく、設定ファイルが仕様なのです←それでいいのか?ww

まぁ、メーラとかExcel VBAで使えれば十分なわけで。
想定する環境外で動かす必要性に迫られたらまた別途作っていきましょうといったところです。

それでは、「俺が」Vimで多用するコマンドたちを以下に記してみます。




hjkl←これがなきゃvimどころかviとすら言えない
0,^,$,(g_ってあんまり使わないけど、使うことあるのかな?)
v,<S-v>,<C-v>
y,Y
p,P
dd,x
i,r,R,o,O,c
<C-f>,<C-b>,<C-d>,<C-u>
zz
w,b,e,f
u,<C-r>
=,>>,<<





そして、連ねながら思った、再現するのが難しそうなので今回諦めるコマンドたちをいかに
q←マクロ
zf←折りたたみ。もちろんスペースキーで展開するコマンドも
<C-n>,<C-p>←補完
~
<C-a>,<C-x>



そして、再現したいコロンで始まるコマンドたち
w←上書き
e←開く
q←閉じる
wq←名前をつけて閉じる(wとqの組み合わせだが一応)


再現できないであろう転んで始まるコマンドたち
new,tabnew,gt,split...←絶対無理だろと思う。できる方がいたら教えて下さい。尊敬します。そしてできたらコードもください。



さて、こんなことを始めてしまったら、家計簿ができるのはいつになるのかと思ってしまいますが、今日はこんなところでやめておきます。

それでは。


0 件のコメント:

コメントを投稿