80 votes

Est-ce que vim peut utiliser le presse-papiers du système par défaut?

Je rencontre plusieurs problèmes car les onglets de vim sont, pour le dire poliment, affreux. Je veux commencer à utiliser plusieurs onglets Gnome à la place, chacun avec une instance différente de vim. Tout devrait fonctionner correctement, cependant, seul le tampon du système + peut être utilisé pour partager du texte. Cela rend toutes les commandes de deux touches supplémentaires :

y y devient " + y y

y w devient " + y w

d ' k devient " + d ' k

C'est d'autant plus vrai lorsque l'on considère une opération de copier/coller simple comme ceci

y y p

devient

" + y y " + p

Y a-t-il un moyen d'instruire vim d'utiliser toujours le(s) presse-papiers du système ?

MODIFIER voir Ici pour plus d'informations sur l'utilisation de plusieurs instances de vim à travers les onglets du terminal Gnome

2 votes

Qui que ce soit qui a voté pour fermer ceci, pourriez-vous s'il vous plaît clarifier pourquoi vous pensez que c'est une mauvaise question.

0 votes

Pouvez-vous expliquer pourquoi vous n'aimez pas les onglets de vim? De plus, certaines personnes ne recommandent pas d'avoir plus d'une instance de vim: Un Vim ... juste un

0 votes

@mMontu Je ne veux pas 1 tampon/onglet, mais je veux quand même pouvoir regrouper mes tampons dans différents onglets. Vim ne permet pas cela. Tous les tampons sont globaux. Je discute de cela ici stackoverflow.com/questions/8756459/…

104voto

puk Points 4104

J'ai trouvé une solution à mon problème vim.wikia.com: Accéder au presse-papiers système. Si vous ajoutez ce qui suit à votre fichier .vimrc

set clipboard=unnamedplus

pour Linux ou

set clipboard=unnamed

pour Windows.

Tout ce que vous coupez dans vim ira dans le registre non nommé, et vice versa.

3 votes

Notez que ceci n'est pas une solution parfaite, si vous copiez une ligne en dehors de vim, ce n'est pas la même chose que de la couper yy, donc si vous la collez p elle sera collée à cet endroit, et non pas sur la ligne suivante p ou précédente P.

2 votes

@puk vous exprimez mes sentiments. Je me suis habitué à simplement spécifier le registre. De temps en temps, je fais même juste :let @+=@" ou similaire

0 votes

@sehe que fait :let @+=@ ?

5voto

sehe Points 123151

Au fait, si vous voulez simplement utiliser la gestion de copier/coller native du terminal, suggérez de définir

:se mouse-=a

et faites simplement un doubleclic/clic droit comme vous en avez l'habitude dans votre terminal.

Cela dit, j'adore les fenêtres divisées de vim et le fait que vous puissiez utiliser la souris pour faire glisser les séparateurs de fenêtre/positionner le curseur (hérésie!). Cela nécessite mouse+=a... (et fonctionnera également sur des sessions ssh/screen!).

Je suis habitué à faire des choses comme ceci à la place :

:%retab|%>|%y+|u

et avoir des commandes de ce type en mémoire. Notez que le registre "+ est codé dans la ligne de commande. Pour copier la dernière sélection visuelle dans le presse-papiers,

:*y+

ou

:'<,`>y+

0 votes

Pouvez-vous s'il vous plaît expliquer un peu plus en détail ce que :se mouse-=a fait. Personnellement, je ne suis pas un grand fan des fenêtres, je préfère les tampons. Tampons > fenêtres >>> onglets

0 votes

@puk: J'ai commencé à apprécier les fenêtres pour diffmode + quickfix. J'ai commencé à apprécier les onglets pour plusieurs ensembles de différences (par exemple, :tabedit a|vert diffsplit b). J'utilise :set guioptions=agim switchbuf=usetab. Pour supprimer la lenteur et la médiocrité de l'interface utilisateur

0 votes

Ayant fait ce que vous suggérez depuis longtemps, je vous recommande vivement la réponse de puk ci-dessus : set clipboard=unnamed[plus]

2voto

Vincenzo Pii Points 4137

Solution de contournement possible :

"Ctrl-c pour copier dans + buffer en mode visuel
vmap  "+y

"Ctrl-p pour coller depuis le registre + en mode cmd
map  "+p

"Ctrl-p pour coller depuis le registre + en mode édition
imap

2 votes

J'ai pensé à cela, mais alors vous auriez besoin d'un nouveau raccourci pour yw, y{, y}, y%, D...

1 votes

J'ai trouvé un clavier avec juste assez de boutons rlv.zcache.com/…

1 votes

Si vous allez utiliser cette solution, pensez à utiliser vnoremap, noremap et inoremap respectivement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X