03/17

screenのウィンドウ分割とVimのウィンドウ分割を和解させる(半分)

screen便利。Vimの中でシェルは使えないよ(:he design-not)、使いたいならscreenとか試してみるといいよ、ってどこかで見たんで最近使いはじめたけど、screenで分割したウィンドウの中でVim使ってるとついついCtrl-W jとかで移動しようとしてしまう。そこでこんな風に設定してみた。

if &term =~ 'screen'
    nmap <C-W>k :call <SID>MoveToWindowAbove()<CR>
    nmap <C-W>j :call <SID>MoveToWindowBelow()<CR>

    function! s:MoveToWindowAbove()
        if winnr() == 1
            silent !screen -X focus up
        else
            wincmd k
        endif
    endfunction

    function! s:MoveToWindowBelow()
        let current_winnr = winnr()
        wincmd b
        let bottom_winnr = winnr()
        if current_winnr == bottom_winnr
            silent !screen -X focus down
        else
            wincmd p
            wincmd j
        endif
    endfunction
endif

こうするとVimの中でウィンドウ移動してるつもりでCtrl-W jとかやってもうまいことウィンドウ間を移動してくれる。でももちろんVimから移動する場合だけで、screenからは無理(だから半分)。Ctrl-Wとかよく使うから下手に設定できないし、どうすればいいのか分からないなぁ。

00:04 | 2 writeback(s) | (1), (12) | ?B

03/14

[Vim7]CSSで使っている色を分かりやすくする

スタイルシートで使っている色指定を、その色で表示するようにしてみた。

スクリーンショット

とりあえず編集中に勝手に色が付くかも。それ以上の機能はない。 整理してないけどアップしようと思います。

Download: css_color.vim

'runtimepath'以下の after/ftplugin/css.vim なんかに置いたらいいと思う。 ftplugin/html.vim あたりに "runtime after/ftplugin/css.vim" と書くとHTML文書中でも色が付くはず。

Vimのことよく分かってないんであまり細かいところを突っ込まないで下さいね。 文字列が/#([0-9A-Fa-f]{6}|[0-9A-Fa-f]{3})/にマッチしたとき、その文字列を文法ハイライトに追加してるだけです。誰かがグレートにしてくれないかと期待してる。

あと、これVim7用です。正規表現でグローバルマッチしてリストを返すmatchlistとか、リストへのfor .. inアクセス、部分文字列の添字での取得なんかは全部Vim7からの機能のようです。今の僕にはこれら無しで書く気力は出なかったので誰か練習がてら書いてみてはいかがでしょうか。(Vim6用のスクリプト書いてる人は本当にすごいと思う)

参考: [萌ディタ] CSSで使っている色を分かりやすくする

もでぃたに負けない強い心で。

行の途中で改行すると挙動がおかしかったので修正しました。これであってるかどうか分からないけど。あと"r"で修正したときのフックはどうやったらできるのかなぁ…。

22:41 | 3 writeback(s) | (12) | ?B

recent entries

tags

syndication

powered by