2013-05-17 8 views
7

tmuxと同様に、vimでウィンドウのサイズを変更したいと思います。私tmuxバインディングvim:複数キーバインディングの最後のキーをコマンドを繰り返してもらえますか?

私は移動することができますので、同じキーの数と影響vim15<C-w>+としてではなく、はるかに少ない思考がある私は<C-b>JJJを行うことができ、(-rは繰り返しのためにあるフォームbind -r J resize-pane -D 5、の)事前にいくつかの行/列を決めるのではなく、正しく見えるまで分割します。

もう1つの例:<C-w>++++--を押して、<C-w>+<C-w>+<C-w>+<C-w>+<C-w>-<C-w>-と同じ動作をさせたいと思っています。 (私はおそらく、1行ではなく、1行につき5行/ colsを実行するために、もう一度それを再マップしたいと思うかもしれないが)。

vimバインディングでは、このようなリピート/タイムアウトモードが可能ですか?

答えて

6

(これは私が長い間使用され、そして厄介な発見):

" simplify resizing splits 
if has('unix') 
    nnoremap ^[j <C-w>- 
    nnoremap ^[k <C-w>+ 
    nnoremap ^[h <C-w>< 
    nnoremap ^[l <C-w>> 
else 
    nnoremap <M-j> <C-w>- 
    nnoremap <M-k> <C-w>+ 
    nnoremap <M-h> <C-w>< 
    nnoremap <M-l> <C-w>> 
endif 

^[の文字は、実際のエスケープに置き換える必要があります。挿入モードで、Ctrl+v、次にescapeを押して作成します。これは、Linuxのbashでmeta+xを使用するために必要でした。両方のOSでは、Althjklのキーを保持して分割のサ​​イズを変更することができます。例えば、Alt+hを押し続けて、分割したものを水平方向に縮小することができます。

+0

これは 'tmux'リピートバインディングと同じくらい一般的ではありませんが、このユースケースのための完全な解決策です。ありがとう! –

0

は、おそらくこれは単なる簡単ですが、あなたはそれをマッピングすることができます

トリッキー一つだが、私はそれが <C-w>の方法よりも簡単だと思うように私は、これを処理する私の方法を共有しましょう
nnoremap <f3> <C-w>- 
nnoremap <f4> <C-w>+ 
関連する問題