人は一生に何回キーを叩くんだろう?

数日前、こんな記事が話題になり、目が点になりました。何これ!自分と全然違う!

キーボードでどのキーが1番使われているか知っていますか? | roomie(ルーミー)
http://www.roomie.jp/2013/07/88217/

キーボードでよく使うキーなんて HJKL に決まってるだろ!いい加減にしろ!

と言うわけで、そういえば自分はどうなんだろう、と思って調べてみました。

Continue reading

【Vim】カラースキームを切り替えるたった一つのさえたやりかた

おもしろいカラースキームを見つけました。Vim を起動すると部屋の明るさに併せて明暗二種のカラースキームを切り替えてくれます。

部屋が明るいとき

部屋が明るいとき

部屋が暗いとき

部屋が暗いとき

plum – Light & Dark colorscheme with ambient light detection (for Mac users) : vim online
http://www.vim.org/scripts/script.php?script_id=4660
https://github.com/gcmt/plum.vim

どんな仕組みかと思ったら、Macbook Air についている前面カメラを使って明るさを測定しているんですね。だから(カメラのついている)Mac 限定の機能です。

Continue reading

【Powerline】Git branch セグメントが Mac OS X で動かない?

動かないってこたぁないんですがね。なにやら意味不明なデバッグメッセージを吐きやがるのです。

2013-07-15 10:07:39,436:WARNING:shell:branch:Failed to watch path: /Users/delphinus/git/dotfiles with error: libc is too old

libc is too old とか書いてあります。どうやら、Mac OS X には存在しないはずの inotify を使おうとしてこんな警告が表示されているようです。

そこで、このモジュールをインストールすると解決。

omega/powerlinex-segment-git-branch-osx · GitHub
https://github.com/omega/powerlinex-segment-git-branch-osx

            {
                "module": "powerlinex.segment.git-branch-osx",
                "name": "branch"
            }

ソース見ると git コマンドを叩いて直接標準出力を読んでいます。pygit2 を使う標準モジュールよりちょっとだけ重いかも?

【vim】80桁教信者の憂鬱

「ソースコードは必ず 80 桁目で折り返さないといけない」 というのは遠く COBOL 時代から続く風習であり、昨今の若者にとっては理解しがたい慣習の一つかもしれませんが、プロジェクトによってはこれが厳守事項だったりすることもあるでしょう。

ソースコードは横80カラム以内で折り返すべき? – QA@IT
http://qa.atmarkit.co.jp/q/2342

僕もこの 80 桁教信者 の一人でして、自身が書く場合は必ずコードを 80 桁に収めるようにしています。Macbook Air 11inch の狭いモニタだと、ウィンドウを 2 つ横に並べた状態で丁度読みやすい幅になるんですよね。

vim にはこのような入力方法を助ける機能として 'textwidth' がありますが、補助的に、'colorcolumn' を使うと便利です。

たとえば、次のように設定すると、

set colorcolumn=80

80 桁目に印が付くので、分かりやすいです。

80 桁目に色を付ける

80 桁目に色を付ける

Continue reading

【MacVim】メニューバーでアイコンが見えない!

Macbook Air の狭い画面で MacVim を起動すると、メニューが画面全体を占めて右上のアイコンが見えなくなってしまうのです。

メニューバーのアイコンが消えてる!

メニューバーのアイコンが消えてる!

これは困った。というかこのメニュー、いまいち使い道も思いつきません。

そこで、次のコマンドを .gvimrc に書くとメニューが全部消えてくれます。

Continue reading

【unite.vim】set_substitute_pattern は衰退しました(その2)

昨日の記事を出した直後に、もっと簡単に定義できるメソッドが定義されていました。

今までのスクリプトを修正するときは以下のようにするだけで ok です。

修正前 修正後
unite#set_substitute_pattern unite#custom#substitute

せっかくだから、俺はこの Unite + vim-ref を選ぶぜ! | blog.remora.cx
http://blog.remora.cx/2010/12/vim-ref-with-unite.html

上のリンクの例から抜粋。

call unite#custom#substitute('files', '\$\w\+', '\=eval(submatch(0))', 200)
call unite#custom#substitute('files', '^@@', '\=fnamemodify(expand("#"), ":p:h")."/"', 2)
call unite#custom#substitute('files', '^@', '\=getcwd()."/*"', 1)
call unite#custom#substitute('files', '^;r', '\=$VIMRUNTIME."/"')
call unite#custom#substitute('files', '^\~', escape($HOME, '\'), -2)
call unite#custom#substitute('files', '\\\@<! ', '\\ ', -20)
call unite#custom#substitute('files', '\\ \@!', '/', -30)

if has('win32') || has('win64')
    call unite#custom#substitute('files', '^;p', 'C:/Program Files/')
    uall unite#custom#substitute('files', '^;v', '~/vimfiles/')
else
    uall unite#custom#substitute('files', '^;v', '~/.vim/')
endif