Mon terminal ne me permet pas de taper Ctrl+ W, car c'est un raccourci pour fermer un onglet de terminal.
J'aime travailler avec des scissions, mais je ne trouve aucun moyen de le faire sans utiliser C-W
. Cela m'a forcé à utiliser des onglets, parce que je peux basculer entre eux avec gt
, gT
ou #gt
où # est un nombre, mais je trouve cela moins pratique que splits que je ne peux voir le contenu d'un fichier à la fois.
Je ne peux pas utiliser non mouse=a
plus car mon terminal ne prend pas en charge cela.
Comment puis-je travailler avec des divisions dans Vim sans le combo Ctrl+ Wdisponible?
key-bindings
vim-windows
split
Mateon1
la source
la source
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
CTRL-W j
fonctionne avec des compteurs (allez à la nième fenêtre ci-dessous du courant), ma solution ne fonctionne pas.<C-W>
est un raccourci trop utile (non seulement dans de nombreux endroits de Vim, mais aussi dans bash) pour être perdu. Je serais curieux de savoir quelles autres liaisons de touches sont consommées par le terminal -<C-T>
? À tout le moins, je vérifierais si ceux-ci sont configurables dans le terminal.Réponses:
Vous pouvez simplement remapper
<C-w>
vers une autre combinaison, par exemple:Vous pouvez maintenant utiliser
<C-e>
et cela agira comme si vous aviez appuyé<C-w>
.Cela écrasera le
<C-e>
mappage par défaut (faites défiler vers le bas). Vim utilise déjà toutes les touches du clavier, et la seule façon d'empêcher cela est d'utiliser la touche leader, qui agit comme un "préfixe":Sauf si vous avez remappé
<Leader>
, vous pouvez maintenant utiliser\w
(les uns après les autres). En fait, je préfère cela car je n'aime pas les combinaisons de touches CTRL +.Voir Qu'est-ce que <Leader>? et comment savoir à quoi <Leader> est réglé? Et est-il possible de remapper <Leader>? .
la source
J'utilise en fait
:wincmd
plus souvent que Ctrl+ Wcar je trouve plus facile de taper l'abrégé:winc
.Par exemple, l'équivalent de Ctrl+ W Lest
:winc l
.la source
J'ai configuré les remaps suivants dans mon
.vimrc
:Maintenant, je peux utiliser
Ctrl+h
pour passer à la fenêtre de gauche,Ctrl+l
pour passer à la fenêtre de droite, etc. Il semble juste correspondre logiquement à la navigation normale de Vim.la source
nnoremap <cr> <c-w>w
, car la touche retour n'est pas beaucoup utilisée en mode normal. Ensuite, il est facile de parcourir les divisions.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: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:
Une fois que je suis dans
WindowsMode
ces lignes, faites hjklnaviguer à travers les divisions commeCtrl+whjklJ'ai utilisé ces lignes pour diviser les fenêtres avec /et !:
Et qfermez une scission:
Déplacez les divisions avec Ctrlhjkl:
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: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>
la source