comment mapper la touche Y (shift + y) pour copier à partir de la position actuelle du curseur au lieu de copier la ligne entière?

Nov 20 2020

Je voudrais mapper la shift+ytouche pour déplacer le curseur d'une position vers la droite, appuyez sur la touche y et attendez la commande de déplacement. Similaire au fonctionnement de la touche p. Lorsqu'il est utilisé sans décalage, l'écran colle le contenu après le curseur et lorsqu'il est utilisé avec le décalage, colle avant. Par exemple. Quand j'ai besoin de copier un mot à l'envers, je dois le faire (l+y+b). Je voudrais faire cela uniquement avec (shift+y+b). Autrement dit, je voudrais copier à partir de la position actuelle du curseur et non de la position précédente.

Réponses

2 filbranden Nov 20 2020 at 06:48

Quand j'ai besoin de copier un mot à l'envers, je dois le faire (l+y+b). Je voudrais faire cela uniquement avec (shift+y+b). Autrement dit, je voudrais copier à partir de la position actuelle du curseur et non de la position précédente.

Si vous souhaitez copier le mot courant alors que le curseur est à la fin de celui-ci, vous pouvez utiliser yvb, qui utilise vcomme opérateur (ou comme modificateur pour un opérateur) pour faire basculer le bmouvement d'un mouvement "exclusif" à un mouvement "inclusif" .

Voir :help o_v:

Si le mouvement était déjà par caractère, basculez inclus / exclusif. Cela peut être utilisé pour faire un mouvement exclusif inclusif et un mouvement inclusif exclusif.

(Aussi :help exclusive.)

Si vous voulez que la Ycommande se comporte de cette façon, vous pouvez simplement utiliser:

nnoremap Y yv

Mais notez que bien que cela soit utile yvb, cela pourrait avoir des effets secondaires indésirables sur les autres situations (comme le mouvement vers l'avant esera désormais exclusif, la ligne deviendra par caractère, etc.) Il est possible de créer un mappage plus spécifique (par exemple faites toujours un mouvement inclusif, etc.) mais cela commence à devenir assez complexe avec tous les cas de coin qui doivent être traités.

(Mon conseil: utilisez simplement l' vopérateur directement, yvbc'est à peu près aussi facile à taper que Ybet cela ne nécessite aucun mappage ou fonction personnalisé.)