2013-05-17 7 views
7

Voglio ridimensionare le finestre in vim in modo simile a come lo faccio in tmux.vim: posso avere l'ultima chiave di una rilegatura a più chiavi ripetere il comando?

Con i miei tmux binding (della forma bind -r J resize-pane -D 5, dove il -r è per ripetizione) che posso fare <C-b>JJJ, che è lo stesso numero di tasti ed effetto come vim s' 15<C-w>+, ma molto meno di pensare perché posso basta spostare la divisione fino a quando non sembra giusta, piuttosto che decidere un numero di righe/colonne in anticipo.

Un altro esempio: voglio essere in grado di premere <C-w>++++-- e farlo eseguire la stessa azione di premere <C-w>+<C-w>+<C-w>+<C-w>+<C-w>-<C-w>-. (Anche se probabilmente vorremmo rimapparlo di nuovo per fare 5 righe/colonne per mossa invece di 1).

Questo tipo di modalità di ripetizione/timeout è possibile nelle associazioni vim?

risposta

6

Questo è uno difficile, ma io condividere il mio metodo di manipolazione di questo, come credo che sia ancora più facile rispetto ai <C-w> metodi (che ho usato per molto tempo, e ho trovato fastidioso):

" 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 

I ^[ caratteri devono essere sostituiti da una fuga vera e propria. Crealo in modalità inserimento premendo Ctrl+v, quindi escape. Questo era necessario per utilizzare meta+x in bash su Linux. Ora in entrambi i sistemi operativi posso semplicemente tenere premuto Alt e le chiavi hjkl per ridimensionare le divisioni, incluso tenere premuto, ad esempio, Alt+h per ridurre orizzontalmente la divisione in cui sono. Funzionano anche con i conteggi.

+0

Non è così generale come le associazioni di ripetizioni 'tmux', ma è comunque una soluzione perfetta per questo caso d'uso. Grazie! –

0

Forse questo è solo banale, ma è possibile mappare:

nnoremap <f3> <C-w>- 
nnoremap <f4> <C-w>+ 
Problemi correlati