Développer le mouvement f et t aux lignes suivantes

16

Est - il possible que , t{char}et f{char}continuera à travailler dans les lignes suivantes si {char}n'est pas présent dans une ligne donnée?

Je voudrais éviter d'utiliser /{char}<CR>pour enregistrer 1 frappe et pour ne pas avoir de surbrillance de recherche, surtout lorsque j'en ai besoin en combinaison avec des verbes (par exemple dfa, ct.).

cbaumhardt
la source
2
Vous pouvez faire d/apour supprimer au suivant aet c/.pour supprimer au suivant .. Si vous l'utilisez hlsearchet que vous ne le souhaitez pas lorsque vous effectuez cette opération, vous pouvez créer un mappage qui effectue votre d/opération, puis désactive la mise en surbrillance (se termine par :nohlsearch).
jjaderberg
2
Vous pouvez utiliser (ou étudier) un plugin tel que github.com/rhysd/clever-f.vim (avec g:clever_f_across_no_linela valeur 0 et d'autres options activées / désactivées à volonté).
VanLaser
1
Dahu a créé un plugin pour cela: github.com/dahu/vim-fanfingtastic
EvergreenTree
1
Je pense toujours que le meilleur plugin pour cela est easymotion
Vitor
1
J'ai aussi fait un plugin: améliorationft
Christian Brabandt

Réponses:

6

J'utilisais également dahu / vim-fanfingtastic depuis un certain temps et je l'ai trouvé très utile. Il supporte les répétitions sémantiques .grâce à la bibliothèque tpope / repeat.vim que vous devez également installer.

Une alternative est chrisbra / améliorationft qui fait plus ou moins la même chose.

rhysd / clever-f.vim a une option pour activer la recherche sur plusieurs lignes, bien que sa principale caractéristique soit de permettre fde répéter la recherche en cours, comme c'est ;déjà le cas.

Ceux-ci manipulent tous ;et les ,clés comme prévu.

L' inconvénient avec plusieurs lignes fet tque si vous appuyez sur la mauvaise touche, vous serez pris hors de la ligne actuelle à un endroit inattendu dans le fichier. Ctrl-Opeut aider dans ces moments. (Cela peut être dangereux avec un cchangement si vous ne réalisez pas que vous venez d'avaler quelques lignes, mais ce ne sont que des problèmes de dentition pour moi.)

Il existe d'autres plugins associés, avec des approches légèrement différentes, tels que justinmk / vim-sneak et goldfeld / vim-seek qui demandent deux caractères , ce qui rend plus facile (mais toujours pas garanti) d'atteindre votre emplacement cible.

Et puis il y a easymotion / vim-easymotion . Cela offre de nombreuses touches de mouvement puissantes , dont certaines nécessitent une ou deux touches supplémentaires pour confirmer le personnage cible lorsqu'il y a beaucoup de candidats.


Mais actuellement, j'utilise une solution maison. J'ai travaillé avec l'auteur d'EasyMotion pour créer fet t flasher des marqueurs sur tous les personnages correspondants devant vous.

entrez la description de l'image ici

Cela agit comme un assistant de comptage naturel pour les mouvements de vanille vim. Lorsque vous essayez de vous déplacer quelque part, fxmais que vous découvrez ensuite qu'il y a plus de xs que vous ne le pensiez, vous pouvez lire le nombre qui a clignoté sur le personnage que vous visiez, puis faire [count];pour y sauter.

Vous pouvez trouver la succursale ici . Assurez-vous de lire la section Ajouter des conseils utiles pour configurer les mappages de touches.

Cependant, pour les copérations de changement, il est toujours préférable de bien faire les choses la première fois . Dans ces cas, je recommande de passer une frappe supplémentaire en vmode visuel ou d'utiliser l'un des sauts garantis d'EasyMotion.

joeytwiddle
la source
2

il y a un plugin qui fait ce que vous semblez vouloir, comme l'a déclaré VanLaser.

https://github.com/dahu/vim-fanfingtastic

Il nécessite maintenant le plugin de répétition pour fonctionner correctement, vous en aurez donc également besoin:

https://github.com/tpope/vim-repeat

Steven Hall
la source
Vous devriez également mentionner les autres alternatives
Christian Brabandt
Ce n'était pas moi :) J'ai mentionné github.com/rhysd/clever-f.vim
VanLaser