J'ai finalement décidé d'abandonner les touches fléchées pour la navigation en faveur de hjkl
. J'ai utilisé le Vim hardmode
plugin pour désactiver les touches fléchées.
Je me suis habitué à la navigation assez rapidement, mais il s'avère que la navigation en mode insertion est soudainement impossible.
Existe-t-il une solution à ça ? (le mode d'insertion existant n'est pas une solution).
insert-mode
navigation
stdcall
la source
la source
Réponses:
Il existe de nombreuses options. Une option, et l'OMI la plus saine et la plus simple consiste à simplement arrêter de désactiver les touches fléchées. Je comprends pourquoi de nombreux amateurs de hardcore disent des choses comme
(Évidemment, je plaisante) Cependant, il y a un but pour les touches fléchées. Ils sont extrêmement utiles pour naviguer:
En mode insertion
Sur la ligne de commande
Généralement, lorsque les gens vous disent de ne pas utiliser les touches fléchées, c'est parce qu'ils veulent que vous réappreniez la navigation d'une manière plus similaire à celle de Vim. Si vous êtes à l'aise
hjkl
et que vous utilisez principalement les touches fléchées en mode insertion, il n'y a aucune bonne raison de vous forcer à ne pas les utiliser.L'option n ° 2 consiste à remapper
ctrl-hjkl
pour agir comme des touches de curseur. C'est bien parce que vous pouvez rester sur le circuit et cela correspond bien à la mémoire musculaire que vous avez déjà apprise en utilisanthjkl
le mode normal. En fait, c'est ce que je fais . L'inconvénient majeur de cette approche est que cela peut être difficile à configurer dans le terminal vim car il<C-j>
produit unNUL
octet. Je contourne cela en utilisant Gvim. Je ne sais pas s'il existe une solution facile pour la console vim ou non.L'option n ° 3 est à utiliser
<C-o>
pour effectuer de petits mouvements en mode normal. Par exemple, si vous tapezet vous vous rendez compte que vous avez oublié une virgule, plutôt que de le faire leftleftleftleftleftleft, vous pouvez simplement faire
<C-o>b<C-o>h
ou<C-o>2Fo
, ou toute autre combinaison de mouvements en mode normal que vous aimez.Bien sûr, une autre option, et celle que j'aime beaucoup, est de simplement utiliser Esc, faire quelques petits mouvements avant de revenir en mode normal. Vous avez mentionné que vous préfériez ne pas le faire, mais parfois c'est vraiment le moyen le plus efficace.
Il y a probablement d'autres approches aussi, mais ce sont celles que j'aime qui ont fonctionné pour moi.
la source
<c-o>gk
et<c-o>gj
au lieu de<Up>
et<Down>
. Pourquoi donc?gk
et montez etgj
descendez visuellement une ligne même si la ligne est enveloppée.noremap <Up> <NOP>
...) . Vous passez suffisamment de temps en mode normal pour apprendre le HJKL, mais ils sont là quand vous en avez besoin. Ou du moins, je trouve que c'est un juste milieu entre les laisser toujours éteints ou toujours allumés, et cela ne nécessite pas de remapper d'autres touches (beaucoup de gens comme Ctrl-HJKL pour se déplacer entre les volets).J'aime utiliser la touche Contrôle pour transformer les
hjkl
touches de mouvement en touches de mouvement "universelles". Voici le morceau pertinent de mon.vimrc
:Les
inoremap
instructions s'appliquent au mode insertion, tandis quecnoremap
celles s'appliquent au mode commande. (J'utilise ce mappage depuis si longtemps que j'ai oublié s'il existe un moyen de parcourir l'historique en mode commande sans lui.)(Modifier: je vois que l'autre réponse a déjà mentionné cette possibilité. Néanmoins, il peut être utile de voir les commandes de mappage réelles.)
la source
Appuyez sur escpuis utilisez hjklet wWbBet toutes les autres navigations que vous souhaitez effectuer. L'intérêt du mode difficile est de vous apprendre à naviguer avec des mouvements vim plus complexes. Faites de petites modifications, puis déplacez-vous vers un nouvel emplacement, en utilisant le mode normal.
Si vous ne voulez pas apprendre à naviguer plus rapidement avec le mode dur activé, consultez ma réponse d'une autre question sur le même sujet.
la source
Si vous souhaitez déplacer plus d'une ou deux positions ...
... le meilleur choix est de frapper
ESC
, de se déplacer et de revenir en mode insertion.Il ne sert à rien de créer des mappages comme
<C-h>
de se déplacer vers la gauche, puis de commencer à le frapper trop souvent ... en tant qu'utilisateur Vim, vous n'êtes pas censé appuyer plusieurs fois sur la même touche pour réaliser un mouvement intelligent.(Si la
ESC
clé n'est pas proche de vos doigts, ce serait une bonne option pour créer un mappage pour elle.)Si vous souhaitez déplacer UNE ou DEUX posistions en mode insertion ...
... un bon choix serait de définir certains mouvements à l'aide de votre
<Leader>
clé:(J'utilise
,
comme<Leader>
clé car il est proche et confortable de mes doigts)la source
Si vous avez juste besoin de modifier une petite quantité de texte ou un mot, vous pouvez utiliser
<Ctrl-O>h/j/k/l
.<Ctrl-O>
vous ramène en mode normal juste pour cette commande, puis vous replonge en mode d'insertion, ce qui vous évite une certaine pression sur les touches, si vous devez passer en mode normal pour un petit mouvement.Réf: 1. http://vim.wikia.com/wiki/Use_Ctrl-O_instead_of_Esc_in_insert_mode_mappings
la source