Pour gérer les splits, j'utilise le plugin de sous-mode qui est en fait assez pratique: il vous permet de créer un nouveau mode ("mode" comme en mode normal, mode visuel, mode insert, etc ...) où vous définissez de nouveaux raccourcis clavier .
Avec cela, vous n'avez plus à utiliser Ctrl+wet comme vous êtes dans un nouveau mode, toutes les touches sont libres de se lier: plus de problèmes comme "Merde, je ne trouve pas une combinaison de touches qui, en tant que signification et qui n'est pas encore mappée "
Vous pouvez installer le plugin avec n'importe quel gestionnaire de plugins classique, et voici quelques unes de mes configurations pour vous inspirer:
J'ai créé un nouveau mode que j'ai appelé WindowsMode
dans lequel je manipule mes divisions:
call submode#enter_with('WindowsMode', 'n', '', '<Leader>k', ':echo "windows mode"<CR>')
call submode#leave_with('WindowsMode', 'n', '', '<Leader>')
Ces lignes signifient que j'entre dans le mode avec Leaderket je quitte le mode avec Leader: Après avoir appuyé sur Leaderktoutes les touches, je vais:
- Ne rien faire si je n'ai pas défini de mappage pour eux dans ce mode
- Faites ce que j'ai décidé de les mapper dans ce mode (voir le reste de la réponse)
- Reviens au mode normal si je frappe Leader
Une fois que je suis dans WindowsMode
ces lignes, faites hjklnaviguer à travers les divisions commeCtrl+whjkl
" Change of windows with hjkl
call submode#map('WindowsMode', 'n', '', 'j', '<C-w>j')
call submode#map('WindowsMode', 'n', '', 'k', '<C-w>k')
call submode#map('WindowsMode', 'n', '', 'h', '<C-w>h')
call submode#map('WindowsMode', 'n', '', 'l', '<C-w>l')
J'ai utilisé ces lignes pour diviser les fenêtres avec /et !:
" split windows with / and !
call submode#map('WindowsMode', 'n', '', '/', '<C-w>s')
call submode#map('WindowsMode', 'n', '', '!', '<C-w>v')
Et qfermez une scission:
call submode#map('WindowsMode', 'n', '', 'q', '<C-w>c')
Déplacez les divisions avec Ctrlhjkl:
call submode#map('WindowsMode', 'n', '', '<C-j>', '<C-w>J')
call submode#map('WindowsMode', 'n', '', '<C-k>', '<C-w>K')
call submode#map('WindowsMode', 'n', '', '<C-h>', '<C-w>H')
call submode#map('WindowsMode', 'n', '', '<C-l>', '<C-w>L')
Le sous-mode Vim permet de faire beaucoup de choses puissantes, voir la doc pour plus de détails.
EDIT Une autre approche du sous-mode Window est décrite ici . Je pense que la méthode utilisée par l'auteur est encore plus proche pour répondre à la question: Ici, on utilise pour créer un nouveau mode mais tous les <c-w>something
mappings sont disponibles avec les mêmes touches dans le sous-mode:
" Go through every letter
for key in ['a','b','c','d','e','f','g','h','i','j','k','l','m',
\ 'n','o','p','q','r','s','t','u','v','w','x','y','z']
" maps lowercase, uppercase and <C-key>
call submode#map('window', 'n', '', key, '<C-w>' . key)
call submode#map('window', 'n', '', toupper(key), '<C-w>' . toupper(key))
call submode#map('window', 'n', '', '<C-' . key . '>', '<C-w>' . '<C-'.key . '>')
endfor
" Go through symbols. Sadly, '|', not supported in submode plugin.
for key in ['=','_','+','-','<','>']
call submode#map('window', 'n', '', key, '<C-w>' . key)
endfor
Ainsi , toutes les correspondances <c-w>lowerCaseKey
, <c-w>upperCaseKey
, <c-w><c-Key>
et les applications <c-w>=_+-<>
sont accessibles en mode fenêtre sans le préfixe<c-w>
wincmd
Par exemple, vous pouvez mapper::nmap wj :wincmd j<cr>
c'est la même chose queCTRL-W j
(déplacer vers la fenêtre ci-dessous).:help wincmd