Comment puis-je facilement lister le contenu des registres avant de les coller?

10

J'utilise beaucoup les registres pour copier / coller, mais j'ai toujours oublié dans quel registre se trouve mon contenu.

Existe-t-il un moyen d'afficher les registres avant de les coller?

Idéalement, cela laisserait le registre à l'écran lors de la sélection de celui que nous voulons.

nobe4
la source

Réponses:

14

Ce plugin peekaboo est assez bon pour la prévisualisation des registres. Lorsque vous appuyez sur "ou @en mode normal, ou ctrl-ren mode insertion, une division s'ouvrira pour vous montrer le contenu du registre.

Aperçu du repo du plugin:

coucou

Tommy A
la source
Ce plugin serait beaucoup moins désagréable si les raccourcis clavier étaient configurables par l'utilisateur. La liaison à "et @en mode normal interrompt à peu près toutes les macros qui utilisent des registres. FWIW.
Sato Katsura
Hmm, je n'ai pas de problèmes avec les macros récursives que j'ai tendance à utiliser, même avec les registres impliqués. Le plugin se désactive lors de la relecture des macros avec @. Le README note que les cartes non récursives causeront des problèmes. Je suis d'accord que ce serait bien s'il pouvait être configuré pour simplement afficher les registres.
Tommy A
Voici quelque chose de trivial qui se casse::%g/text/ normal "Ayy
Sato Katsura
Le plugin a été mis à jour pour utiliser un préfixe configurable. github.com/junegunn/vim-peekaboo/pull/41
Tommy A
6

J'ai fait ce mappage pour afficher la liste des registres et sélectionner celui à coller:

nnoremap "p :reg <bar> exec 'normal! "'.input('>').'p'<CR>

Ceci affiche la liste des registres avec :reget exécute la commande normale

"Xp 

Xest le résultat de input().

nobe4
la source
2

Je recommanderais d'utiliser

:reg

Il affichera le contenu de tous les registres (vous pouvez faire défiler en utilisant j et k).

Si vous souhaitez simplement afficher le contenu d'un registre, vous pouvez passer en mode commande et taper

: Ctrl + r

puis le registre, par exemple le registre x

x

qui va coller le contenu du registre dans la ligne de commande. Vous pouvez ensuite sortir de la ligne de commande après avoir consulté votre registre.

DoYouEvenCodeBro
la source
Quelle est la différence entre :diset :reg? J'utilise toujours l'ancien.
Philip Kearns
Aucun: :help :dis->:di[splay] [arg] Same as :registers. {not in Vi}
Boldewyn