Le copier-coller pour vim ne fonctionne pas lorsque la souris (: set mouse = a) est activée?

Jessayais de copier-coller quelque chose de vim vers une autre application et aussi, de cette application vers vim en utilisant clic droit avec la souris, puis copiez et collez (ou avec Ctrl + v et Ctrl + c et a également essayé la version Command pour mac OSX, évidemment.). Cependant, lorsque jessaye de le faire, il ne copie que le premier mot lorsque je le fais depuis vim ou lorsque je copie depuis lapplication vers vim, il copie tout, mais insère détranges tabulations et espaces. Je pense que cela sest produit lorsque jai décidé de mettre ma souris sur le terminal. Comme dans:

:set mouse=a 

Jai cette ligne sur mon fichier .vimrc sur iTerm (mac os x). Cependant, est-il possible de faire mon copier-coller avec dautres applications qui ne sont pas dans vim pour ne pas rompre avec le mouse=a activé? Ou est-il au moins possible de désactiver ma souris pendant que je fais le copier-coller? Jai fait la souris :help mais les commentaires ne mont pas été utiles. Je les collerais ici mais … mon outil de copier-coller est cassé!

Jai essayé :set mouse! et :set mouse=a! mais cela na rien fait dutile … 🙁


Informations supplémentaires sur mon environnement:

Jutilise également tmux la plupart du temps, cependant, jai testé cette erreur / bug sans session tmux, cest pourquoi jai posté ceci principalement sous forme de question vim.

Commentaires

  • Je peux vous dire que vim est capable de récupérer très bien la sélection principale en utilisant le verbe y. Je ne ‘ ne sais pas pourquoi vous ne ‘ pas simplement lutiliser.
  • Je ne ‘ pas faire cela parce que je ne ‘ Je ne sais pas comment faire, je suppose, excusez-moi pour mon incompétence. Je nai ‘ pas savoir que cela existait jusquà ce que vous le mentionniez. connaissance! 🙂
  • Sagit-il de macvim ?
  • non ce nest pas juste iTerm (comme je lai mentionné sur la question, mais bonne question cependant).
  • @Pinocchio – jetez un oeil ici: Comment pour faire coller vim depuis (et copier vers) le presse-papiers du système ‘? .

Réponse

mouse=a empêche la possibilité de copier et coller de vim avec des caractères lisibles.

Modifier mouse=a à mouse=r et cela devrait résoudre votre problème.

une chose que je me demande est, est-ce que vous changez le fichier de configuration de votre vim avec la souris réglée sur mouse = a?

réponse orignal ^

Si mouse=r ne vous donne pas toutes les options de copier-coller, remplacez-le par mouse=v

Les deux mouse=r et mouse=v ont les mêmes fonctions dont vous avez besoin, mais selon le vimrc que vous utilisez, lun fonctionnera mieux que lautre.

Commentaires

  • avez-vous également essayé de mettre le texte en surbrillance et dutiliser le bouton central de la souris pour le passer à un autre endroit. Cela a tendance à mieux fonctionner lorsque vous essayez de Ctrl + v et Ctrl + c
  • Je ne ‘ je ne sais pas ce que signifie votre question: one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a? Vous voulez dire si jai :mouse=a activé dans mon fichier .vimrc? Jai :mouse=a dans mon fichier .vimrc.
  • juste --with-x=yes? Je nai pas besoin de mettre :set --with-x=yes mouse=a ou autre ing? Pourriez-vous clarifier ce que vous voulez dire?
  • Permettez-moi de rechercher si vous devez combiner --with-x=yes à set mouse=a. Quand je lisais là-dessus, tout ce que jai vu était que cétait lui-même dans le fichier de configuration. Mais cela pourrait être différent, donc je veux massurer de vous dire la bonne chose qui fonctionnera pour vous.
  • Merci beaucoup, cette suggestion fonctionne comme un charme avec mouse = v

Réponse

Pour les utilisateurs dOS X: Pour copier-coller avec mouse=a utilisez alt au lieu de Shift pour sélectionner le texte. Ensuite, cmd-c et cmd-v fonctionnent comme prévu.

Jai trouvé cette réponse ici https://stackoverflow.com/a/4608387/671639 après beaucoup de recherches sur Google.

Commentaires

  • Vous êtes Dieu … …: ‘)
  • la seule chose qui a fonctionné pour moi, merci!
  • Pour moi sur OSX fonctionne  » fn  » au lieu de  » shift  » ou  » alt « .
  • Le réglage mouse=v a fonctionné pour moi avec straight cmd + c

Réponse

De https://stackoverflow.com/questions/4608161/copy-text-out-of-vim-with-set-mouse-a-enabled/4608387

Appuyez sur la touche « Maj » tout en sélectionnant avec la souris. Cela fera que la sélection de la souris se comportera comme si mouse = a nétait pas activée.

Cela fonctionne et a été vérifié par les examinateurs de stack-overflow qui ont accepté cela comme réponse 🙂

Réponse

Jai eu le même problème: impossible de mettre en surbrillance à laide de la souris, donc impossible de copier et coller de VIM dans une session de terminal vers un document Windows et suivant et cela fonctionne maintenant:

: set clipboard=unnamedplus : set mouse=r 

Réponse

La solution de Bharat , en appuyant sur Shift pendant la copie, le fera, mais il copiera plus que ce que vous aimeriez copier en cas de numérotation ou des commentaires de hachage.

Une façon de le faire même avec mouse = a est dutiliser le mode visuel en en appuyant sur V pour un curseur unique ou sur Shift + V pour la mise en surbrillance de la ligne complète, et vous pouvez vous déplacer vers le haut ou vers le bas avec des flèches et utiliser Y pour copier ou D pour couper et th à devrait fonctionner.

Commentaires

  • @Anthon, va faire, merci pour la clarification.
  • Je vous ai reformulé – un commentaire prononcé pour le rendre plus comme une réponse de cette façon, les mods le laisseront probablement tel quel (et vous pourriez gagner une certaine réputation à ce sujet afin que vous puissiez commenter). Si loriginal avait été une correction plus mineure, les commentaires auraient été plus appropriés.

Réponse

Référez-vous: http://vimdoc.sourceforge.net/htmldoc/options.html

Regardez la section Note au bas de la référence:
Quand en activant la souris, les boutons de la souris peuvent toujours être utilisés en maintenant la touche Maj enfoncée. Cela inclut le copier-coller à laide des boutons de la souris.

*"mouse"* *E538* "mouse" string (default "", "a" for GUI, MS-DOS and Win32) global {not in Vi} Enable the use of the mouse. Only works for certain terminals (xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with sysmouse and Linux console with gpm). For using the mouse in the GUI, see |gui-mouse|. The mouse can be enabled for different modes: n Normal mode v Visual mode i Insert mode c Command-line mode h all previous modes when editing a help file a all previous modes r for |hit-enter| and |more-prompt| prompt Normally you would enable the mouse in all four modes with: :set mouse=a When the mouse is not enabled, the GUI will still use the mouse for modeless selection. This doesn"t move the text cursor. See |mouse-using|. Also see |"clipboard"|. Note: When enabling the mouse in a terminal, copy/paste will use the "* register if there is access to an X-server. The xterm handling of the mouse buttons can still be used by keeping the shift key pressed. Also see the "clipboard" option. 

Commentaires

  • Merci davoir contribué cette référence, mais , répond-il à la question ? Si tel est le cas, pouvez-vous identifier la partie du devis qui le fait, en présentant un résumé de la réponse réelle?

Réponse

Sur mon Mac, ce qui a aidé, ce sont ces deux choses:

  • : set mouse- = a
  • fn + clic (au lieu de shift ou alt)

Réponse

Utilisez ces deux lignes ci-dessous dans votre ~/.vimrc pour utiliser toutes les fonctionnalités intéressantes dun gui-mouse et collez-les dans le presse-papiers du système en utilisant y (touche de tirage) si vous navez pas vraiment besoin de tampons de presse-papiers supplémentaires :

set mouse=a set clipboard=unnamed 

Réponse

Vous pouvez utiliser y copier (yank) et p coller même avec :set mouse=a défini dans ~/.vimrc. Utilisez v + arrow keys pour mettre le texte en surbrillance. Pour copier rapidement une ligne entière, utilisez shift + y .

Réponse

Comme f ou la deuxième partie de votre question où vous avez spécifié que lors du collage à partir dautres applications vers vim, il ajoute des tabulations / espaces. Essayez dajouter ceci à votre ~ / .vimrc set paste ou dans vim avant de coller en mode normal appuyez sur « shift » + « : » et tapez « set paste »

Réponse

Deux choses à ajouter:

  1. Sachez plusieurs fois que set mouse=v ne fonctionnera pas comme prévu selon le autres directives que vous avez définies avant ou après dans votre fichier .vimrc, cela dépend également du terminal à partir duquel vous exécutez vim;
  2. Je recommanderais de conserver mouse=a donc vous avez tout le mode souris activé en même temps et utilisez lastuce proposée par @BHS pour mettre du texte en surbrillance tout en appuyant sur la touche Shift lorsque vous devez coller le texte en surbrillance à laide du milieu de la souris bouton ( Copie de texte en dehors de Vim avec set mouse=a activé ).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *