Je veux m'apprendre à utiliser hjkl plus qu'à utiliser les touches fléchées afin de rester sur la ligne d'accueil. Et oui, je suis très conscient qu'il ne faut pas utiliser hjkl comme touches de navigation principales. Pourtant, mes habitudes sont assez fortes et je ne me rends même pas compte qui a fait ce mouvement de la main vers les touches fléchées et je veux le désapprendre.
Afin de briser cette habitude: Comment puis-je désactiver les touches fléchées pour être obligé d'utiliser le hjkl ou une autre méthode de navigation?
En prime, il serait utile qu'un message soit montré Dont't use this!
que ce n'est pas obligatoire. S'ils ne fonctionnent pas, ce sera assez déroutant pour moi de repenser mes habitudes.
key-bindings
cursor-movement
cursor-motions
k0pernikus
la source
la source
w
pour le mot suivant,}
pour le paragraphe suivant,n
pour la prochaine correspondance de résultats de recherche,fz
pour la prochaine occurrence dez
dans la ligne actuelle, etc.) que de déplacer plus granulairement par des caractères uniques. Je suis définitivement d'accord avec ça. Cependant, HJKL est certainement meilleur que les touches fléchées dans la mesure où vous n'avez pas à déplacer vos mains de la ligne de départ. Je vais souvent taper quelque chose commejA
, qui est beaucoup plus rapide que<Down>A
, et pas vraiment battable par aucun mouvement.Réponses:
Vous pouvez installer le plugin en mode dur et dans votre
.vimrc
mise enSi vous ne souhaitez pas utiliser un plug - in, l' utilisation (qui peut être un meilleur choix, que vous pouvez personnaliser vous - même tout!)
nnoremap
,vnoremap
Etinoremap
sur<Left>
,<Right>
,<Up>
,<Down>
,<PageUp>
et<PageDown>
, par exemple:la source
<nop>
si vous voulez désactiver le keymap tout à fait:nnoremap h <nop>
.Dans le cas où vous, ou quelqu'un d'autre lisant cette rubrique, souhaitez simplement désactiver les mouvements des touches sans l'avertissement textuel, entrez les lignes suivantes dans .vimrc
Les commandes ne désactiveront le mouvement des touches qu'en mode normal. Ils fonctionnent toujours en mode insertion. Si vous utilisez inoremap, le mouvement de la flèche sera également supprimé du mode d'insertion.
Ce sujet très populaire traite des différences entre noremap, nnoremap, inoremap, etc.: Remappage dans Vim
L'idée générale du remappage est la suivante:
Ainsi, dans les autres exemples donnés, vous remappez votre commande gauche à une invite de texte qui supprime incidemment l'action de déplacer réellement le curseur. L'exemple que j'ai donné ci-dessus remappe simplement les actions à rien, plutôt qu'à autre chose. Envisagez de supprimer, plutôt que de remplacer, la fonctionnalité vim.
la source
Vous pouvez l'ajouter à votre
.vimrc
pour désactiver les touches fléchées en mode Commande, Insertion, Normal et Visuel:Remarque: Commander
:help map-overview
pour plus de détails sur les différents types de mappagela source
noremap ... ...
(pour le mode normal, visuel, sélection et en attente de l'opérateur) etnoremap! ... ...
(pour le mode insertion et ligne de commande).noremaps
serait utile pour quelqu'un qui souhaite personnaliser les modes concernés