Après avoir activé set mouse=a
, le texte copié dans Vim ne sera pas collé en dehors de Vim. Est-ce que quelqu'un connaît un moyen de résoudre ce problème?
Ici, sélectionner du texte avec la souris active le mode visuel et désactive l'option Copy
dans le menu contextuel:
Presse shift 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é.
Remarque: cette astuce s'applique également à "coller du bouton central": si vous souhaitez coller du texte vim sélectionné à l'extérieur, appuyez sur shift en cliquant sur le bouton du milieu. Assurez-vous simplement que le mode d’insertion est activé lorsque vous faites cela (vous pouvez également vouloir :set paste
pour éviter des effets inattendus).
OS X (mac): maintenez alt/option en sélectionnant ( source )
Utilisation "+y. De toute façon, vous ne devriez pas utiliser la commande de copie du terminal, car elle copie ce que le terminal voit à la place du contenu réel.
Vous pouvez le mapper comme ceci:
:vmap <C-C> "+y
Puis mettez en surbrillance quelque chose avec la souris et appuyez sur Control-C pour le copier.
Cette fonctionnalité ne fonctionne que lorsque Vim a été compilé avec l'option +xterm_clipboard
. Exécutez vim --version
pour savoir si c'est le cas.
Au lieu de set mouse=a
, utilisez set mouse=r
dans .vimrc
Sous OSX fn au lieu de shift.
Sous Ubuntu, il est possible d’utiliser les liaisons copier-coller de X-Term dans VIM (Ctrl-Maj-C et Ctrl-Shift-V) sur du texte mis en évidence à l’aide de la touche Maj.
Une autre option pour Mac OSX consiste à décocher View->Allow Mouse Reporting
(ou à appuyer sur ⌘-R pour le basculer.) Cela vous permet de basculer entre l’interaction et la sélection de la souris, ce qui peut être utile lors de la sélection et du copier/coller tenir une touche de modification pour le faire.
Les numéros de ligne sont généralement activés, ce qui permet également de copier les numéros de ligne si vous sélectionnez plusieurs lignes. Si vous souhaitez copier plusieurs lignes sans numéro de ligne, désactivez les numéros avec :set nonu
. Vous pouvez ensuite :set nu
pour les réactiver une fois la copie terminée.
Vous pouvez utiliser :set mouse&
dans la ligne de commande vim pour activer le copier/coller du texte sélectionné à l'aide de la souris. Vous pouvez ensuite simplement utiliser le bouton central de la souris ou shiftinsert pour le coller.
Les paramètres de compilation avec lesquels vim a été compilé font partie du problème. vim --version
les montre.
Dans OSX, le vim par défaut a -clipboard
mais vous avez besoin de +clipboard
Sur osx, vous pouvez et devriez généralement, utilisez macvim. Vous pouvez faire brew cask install macvim
Celui-là a +clipboard
.
Eux vous aurez deux vims.
~$ ls -l /usr/bin/vim <--- default vim
-rwxr-xr-x 1 root wheel 1745984 15 Jul 2017 /usr/bin/vim
~$ ls -l /usr/local/bin/vim <-- macvim, installed recently via that mentioned brew line.
lrwxr-xr-x 1 Apple admin 42 16 May 23:32 /usr/local/bin/vim -> /Applications/MacVim.app/Contents/bin/mvim
~$
lancer vim lancera macvim 'cos /usr/local/bin
devrait être avant /usr/bin
dans le chemin, bien que vous puissiez vérifier avec which vim
.
lancer vim (pour exécuter macvim), c'est bien, mais vous voudrez peut-être mapper vi sur macvim 'cos, sinon vi sera sur vim par défaut! Vous pouvez réécrire ou supprimer (avec rm) et recréer le lien vi sym, avec ln. Et pour le faire sans erreur "opération non autorisée", vous devez (temporairement) désactiver SIL. https://Apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity- protection-sip-aka-rootless-sur-macos-os-x .
macvim a +clipboard
comme indiqué par vim --version
Voici un ~/.vim/vimrc
avec seulement les lignes requises.
:set mouse=a
:map <leader>c "+y
:map <leader>v "+p
La clé de chef de file par défaut est une barre oblique inverse.
J'ai lu une suggestion selon laquelle on devrait utiliser la clé de chef .. (le contrôle a certainement de nombreuses clés déjà utilisées, il a donc été suggéré de ne pas utiliser le contrôle. Je ne sais pas si cela s'applique aussi à la clé de commande, mais quoi qu'il en soit).
Avec ce mappage mentionné, \c
fera "+y
qui copiera du registre appelé + dans le presse-papiers. Et \v
va coller à partir du registre appelé +.
Donc, c'est un copier/coller qui fonctionne entre les fenêtres.
Un autre système d'exploitation peut nécessiter "*
plutôt que "+
Si vous utilisez PuTTY session, il copie automatiquement la sélection . Si nous avons utilisé l'option "set mouse = a" dans vim, la sélection à l'aide de la combinaison de Maj + souris permet de sélectionner le texte automatiquement . -terme.
em ... Continuez à appuyer Shift puis cliquez avec le bouton droit de la souris
J'ai accidentellement expliqué comment désactiver set mouse=a
lorsque j'ai relu la question et découvert que l'OP ne souhaitait pas l'éteindre. Quoi qu'il en soit, pour ceux qui cherchent à éteindre la souris (set mouse=
) de manière centralisée, je laisse une référence à ma réponse ici: https://unix.stackexchange.com/a/506723/194822