============ Vim で窓分割 ============ 下準備 ====== 1 つの画面で複数の窓を表示するので, 小さくても読みやすいフォントを探します. `M+`_ の 12 ドットは私には小さすぎたので, `東雲`_ の 14 ドットを選択しました. .. _M+: http://mplus-fonts.sourceforge.jp/ .. _東雲: http://openlab.jp/efont/shinonome/ Vim の設定 ========== .vimrc:: nnoremap <silent> <c-l> <c-w>l:call WinResize()<cr> nnoremap <silent> <c-h> <c-w>h:call WinResize()<cr> nnoremap <silent> <c-j> <c-w>j:call WinResize()<cr> nnoremap <silent> <c-k> <c-w>k:call WinResize()<cr> nnoremap + 4<c-w>+ nnoremap - 4<c-w>- nnoremap { 4<c-w>< nnoremap } 4<c-w>> nnoremap = <c-w>= AlternateCommand vbn vert<space>sbn AlternateCommand vbp vert<space>sbp AlternateCommand vh vert<space>h fun! WinResize() let min_width = 80 let min_height = 24 exec "vert res ".max( [winwidth(""), min_width]) exec "res ".max( [winheight(""), min_height]) endf マスターに教えてもらった AlternateCommand (`ここのコメント`__) を使って横分割 の :sbn, :sbp, :h に対して, 縦分割の :vbn, :vbp, :h を設定. それから, 操作窓 は 80 x 24 欲しいので, 窓移動と同時に大きさを変更する. .. __: http://vim.g.hatena.ne.jp/meitetujikokuhyou/20081201/1228140351
(例えば:cdを:MyCDで置き換えたいけど入力は:cdで行いたい場合)
> AlternateCommand vbn vert<space>sbn
このようなことをするのであれば最初から独自のコマンドを作るべきです(:help :command)。例えばこれでは補完が利きません。
それにこのような省略しきった名前を付けるのであれば、ExコマンドでなくNormal modeで適当なキーを割り当てた方が良いでしょう。
例: :nnoremap <C-w>vbn :<C-u>vertical sbnext<Return>
> WinResize()
:help 'winheight'とその他色々
& :h 'winwidth'. 嗚呼なんて簡単なことだったんだ. また無駄なことを orz
>例えばこれでは補完が利きません
com! -nargs=? -complete=help Vh vert h <args>
とかしてみました. com 使ったことなかったんですが -nargs, -complete が便利そうですね. 使ってみます.