MacVim-Kaoriyaでデフォルトのvimrcとgvimrcを読まないようにする
Mac上のGVimとしては最強に快適なMacVim-Kaoriyaだけど,デフォルトでKaoriya版GVimに含まれるvimrcとgvimrcが読まれて,個人的にはいらない設定を勝手にされてしまうので,これを回避してみた.
vimrcとgvimrcを読んだらわかる通り,基本的には /Applications/MacVim.app/Contents/Resources/vim/ にちょろっとファイルおくだけだけど,MacVim-Kaoriyaアップデート時に簡単に再設定できるように簡単なワンライナ(?)にしてみた.ついでに,vimrc_local.vim にて set langmenu=ja_ja.utf-8.macvim することで,メニューがMacらしく日本語化される.自分はzshの履歴にこのコマンドを覚えさせといて利用している.
echo "let g:vimrc_local_finish = 1\nset langmenu=ja_ja.utf-8.macvim" > /Applications/MacVim.app/Contents/Resources/vim/vimrc_local.vim; \
echo "let g:gvimrc_local_finish = 1" > /Applications/MacVim.app/Contents/Resources/vim/gvimrc_local.vim
ちなみに,WindowsのKaoriya版GVimでも同様に,デフォルトのvimrcとgvimrcの読み込みを阻止している.あと,Windowsで:set encoding=utf-8する方法 - 永遠に未完成を参考にUTF-8化するのもおすすめ.自分の場合はPoeditで エンコードの変換とmoファイルへの変換を一気にやりました.
2009/07/01 20:53 | Vim | トラックバック(0) | コメント(0)
ku source: mrufileとmrucommand続き,およびMac上のVimでOptionキーを扱う方法
昨日kuのsource作ったよ!とtwitterに書いたところ,Lingrのvim-users.jpにてkanaさんとthincaさんからいろいろとアドバイスを頂いたので,書き直してみた.
mrufileの方は,thincaさんのku source: file_mruを参考にしつつも,項目にディレクトリも入れておきたかったので,そんな感じで修正してみた.あと,autocmdはplugin以下に移した.ただ,履歴を削除できたりとかthincaさんの方が高機能なので,おすすめです.
mrufileとmrucommand共通の話としては,ku 0.2系からは本体側でキャッシュしてるので,source側では簡単に書けるようになっているそうだ.mrucommandの方なんかは,実質gather_itemの中で履歴集めるだけになった.
さらに,kuの設定についてもkanaさんにいろいろとアドバイスしてもらった.その結果はこんな感じ.ここで注意すべきは,kuは既に設定されているmapを上書きしないので,例えば,kuでコマンド実行する<Cr>とかを他のところで<Cr>をmapしているとうまく動かない.そこで,kuのデフォルトキーで強制的にmapしたのち,さらにそこに自分用のmapを設定するようにしている.
ちなみに,<Esc><Cr>とか書くとMeta-Returnというmapを定義したことになる.ただし,Macの場合は,Terminal.appだとターミナル -> 環境設定 -> 設定 -> キーボードの「メタキーとしてoptionキーを使用」,iTerm.appの場合は,Bookmarks -> Manage Profiles... -> Keyboard Profilesの「Option Key as」を「+Esc」にしなければならない.それでも,iTerm.appの場合は,<Esc>jとかはうまくいかない.それはことえりの英数入力とかだと,Option+[a-zA-Z]が記号入力に割り当てられていて,iTermまでOptionが届いてないのが原因の模様.入力モードをU.S.にすればこの問題は回避可能だが,その場合JISキーボードだとバックスラッシュを入力する手段がなくなるので,それはそれで使いにくくなってしまい残念な感じ.この辺の問題については今後の課題.
また,GVimとかMacVimの場合,<A-Cr>のようにA-をつけるとOptionキー(WindowsとかだとAltキー)指定になる.というわけで,現状は,Option-CrとかOption-Tabとかだけがほぼ全ての環境で使いものになる感じ.
2009/5/10 00:20 追記: thincaさんもmrucommand相当のを作ってくれたようだ.そちらも削除コマンドとかあったりして高機能なので,自分が作ったのは練習用&自分専用って感じやなー.でも,自分で実装すると具体的なアドバイスもらえたりとかなり楽しかったので,また別のsourceを作ってみようかな.何を補完できたら便利かなぁ.tagとかは微妙か.
2009/05/09 22:07 | Vim | トラックバック(0) | コメント(0)
kuを使いはじめたのでku source: mrufileとmrucommandを作ってみた
最近,kanaさんによるVimプラグインであるkuを使ってみている.kuはsourceと呼ばれるプラグインの用なものを追加することで,検索対象を増やすことができる.というわけで,最近使ったファイルと最近使ったコマンド用のsourceを作ってみた.
mrufileはfuzzyfinderのMRUFileのあたりのソースとku source: historyのソースをだいぶ参考にし(というかパクリ)ながら,それっぽい感じにしたつもり.mrucommandはq:とq/で出てくるコマンド履歴と検索履歴をku用に整形した感じ.ただ,実行するところ(ku#mrucommand#execute()とku#mrucommand#input())の書き方がわからず結局feedkeys()になってしまった.
と思ったらmrufile相当のは既にありましたorz自分が書いたのは最近リリースされたku 0.2系に対応してるということで,ギリギリセーフといことにしておくか(^-^;) 2009/5/9 00:48追記: thincaさんが0.2系対応版のmrufileをgithubに上げてくれました!(リンク先の追記参照)
とりあえず動いていますが,バグとかあるかも知れません.あとはkanaさんが美しく直してくれるはず!
2009/05/08 21:07 | Vim | トラックバック(1) | コメント(0)
VimperatorをTreeStyleTab対応にするパッチのようなもの
さんざかpiroさんとteramakoさんがやっているのであれなのだが,日頃からVimperatorとTreeStyleTabを併用していて興味があったので,自分でもやってみた.
要するにpiroさんのtabFx2CompatibleをもとにVimperatorのタブに対する番号振るのを実現したら良いということなのでVimperatorのbinding部分のソースを見てみた.すると,Macとそれ以外ではタブに対するbindingが別々になっていて,そのMac用のbindingとtabFx2Compatibleの構造が似ていたので,tabFx2CompatibleからVimperatorのMac用bindingに近くなるように操作してやることにした.作ってみたパッチと,それぞれのbinding部分をgistに貼ってみたので,興味がある人は見てみて下さい.
teramakoさんのエントリにもあったけど,なぜかタブのタイトルがおかしくなってしまうので,タブのテキストの前に番号入れるのを諦めて,後ろに入れるようにしたら一応うまくいった.あと,元のVimperatorのbindingはxbl:inherits属性を使って番号を振ってるけど,それをJavaScriptから操作する方法がよくわからなかった.まぁともかく自分の環境では動いたのでよかったことにする.
XULはほとんど触ったことなくて,以前にpiroさんのLatest topics > タブからプレースホルダーがゴッソリ消えた件についての憤り - outsider reflexのエントリを読んだときはいまいちよく分からなかったけど,今回ちょっと触ってみてなんとなく意味が分かった気がした.
2009/4/16 22:43 追記: ぎゃー!git pull --rebaseしたらタブが消えた!いないと思うけど,上記パッチ試される方は,自己責任でお願いしますm(_ _)m
2009/4/17 14:53 追記: タブ消えるの直した.それと,TreeStyleTabのソース見てタブの構造いじるコードを分離してみた.あと,Vimperatorは番号振るのにordinal属性を使ってて,TreeStyleTabも別の目的でordinal属性使ってるっぽいので,ここも注意しないと動作がおかしくなりそう.
2009/4/17 16:45 追記: パッチのせいか分からないけど,タブ消去時に番号がうまく振り直されなかったので,TabCloseの番号振り直す関数にsetTimeoutを挟んで無理矢理対処してみた.
2009/4/17 20:14 追記: もうちょいコードを整理してみた.今の自分の知識ではこれが限界かなぁ.
2009/04/16 22:28 | Firefox | トラックバック(0) | コメント(0)
VimperatorでウェブページのコンテキストでJavaScript実行
通常のjsコマンドのようにChromeのコンテキストではなくて,FirebugのコンソールみたいにウェブページのコンテキストでJavaScriptを実行する(つもり).なんかもっとうまい書き方があるような気がするけど,with文で無理矢理やってみた.
.vimperatorrcに中に以下のように書くと,wrappedjavascriptまたはwjsコマンドが使えます.補完が効かなかったり,名前が微妙だったりするけど,とりあえず動きます.
2009/01/20 11:32 | Firefox | トラックバック(0) | コメント(0)