Après l'activation set mouse=a
, le texte copié à l'intérieur de Vim ne sera pas collé à l'extérieur de Vim. Quelqu'un connaît-il un moyen de résoudre ce problème?
Ici, la sélection de texte avec la souris active le mode visuel et désactive l' Copy
option dans le menu contextuel:
vim
configuration
mouse
copy-paste
lyuba
la source
la source
+clipboard
etmouse=a
, vous pourrez copier / coller depuis / vers vim sans utiliser le menu contextuel du terminal. Vous pouvez vérifier siclipboard
est activé en utilisantvim --version
.mouse=a
n'est pas une option de compilation, c'est quelque chose dans vimrc B) Lorsque vim a été compilé avec,+clipboard
il vous permet de copier / coller quand il:set number
est activé , et sans copier / coller les nombres, bien que vous ayez peut-être encore à faire mappages C) Il n'est pas nécessaire de recompiler VIM eux-mêmes, il peut être activé dans le vim sur certains gestionnaires de paquets pris en charge par le système d'exploitation .. Sur osx, le vim de brew l'a bien que le vim par défaut d'osx ne le fait pas. Ma réponse mentionne ce re osx.xsel
fonctionne pour vous aussi, vous pouvez sélectionner du texte avec l'éditeur ou avec la souris etctrl+c
appuyer sur pour copier le texte, comme c'est le cas pour neovim, github.com/neovim/neovim/issues/7945#issuecomment-361970165Réponses:
Appuyez sur shifttout en sélectionnant avec la souris. Cela fera que la sélection de la souris se comportera comme si elle
mouse=a
n'était pas activée.Remarque: cette astuce s'applique également au "collage du bouton central": si vous souhaitez coller du texte vim qui a été sélectionné à l'extérieur, appuyez shiftsur tout en cliquant sur le bouton central. Assurez-vous simplement que le mode d'insertion est activé lorsque vous faites cela (vous pouvez également
:set paste
éviter les effets inattendus).OS X (mac): maintenez alt / option tout en sélectionnant ( source )
la source
Fn
clé est la bonne voie à suivre. C'est-à-dire, (avecmouse=a
activer) en sélectionnant du texte tout enFn
appuyant sur la touche, puis utilisez CMD + C pour copier et coller où vous voulez.Utilisez ", +, yaprès avoir fait une sélection visuelle. Vous ne devriez pas utiliser la commande de copie du terminal de toute façon, car cela copie ce que le terminal voit au lieu du contenu réel. Voici ce que cela fait:
+
pour la prochaine suppression, yank ou put. Le registre nommé+
est un registre spécial, c'est le registre du presse-papiers X11. (Sur d'autres systèmes, vous utiliseriez*
plutôt, je pense, voir:help clipboard
et:help x11-selection
)Vous pouvez le cartographier comme ceci:
Puis mettez en surbrillance quelque chose avec la souris et appuyez sur Control-Cpour le copier.
Cette fonctionnalité ne fonctionne que lorsque Vim a été compilé avec l'
+xterm_clipboard
option. Courezvim --version
pour savoir si c'est le cas.la source
"*y
fonction du système d'exploitation.+clipboard
? Et qu'en est-il+clipboard
avecxterm_clipboard
off?Au lieu d'être
set mouse=a
utiliséset mouse=r
dans .vimrcla source
Sur OSX, utilisez fnau lieu de shift.
la source
option
clé qui est l'alt
équivalent clé sur l'hôte MacOS. C'était un terminal distant sur debian9. n'a pas fonctionné en ajoutant l'un ou l'autre deset mouse=a
/set mouse=r
à/etc/vim/vimrc
distance.Dans Ubuntu, il est possible d'utiliser les liaisons copier-coller X-Term dans VIM (Ctrl-Shift-C & Ctrl-Shift-V) sur du texte mis en évidence à l'aide de la touche Maj.
la source
Une autre option OSX-Mac consiste à décocher
View->Allow Mouse Reporting
(ou appuyez sur ⌘-R pour la basculer.) Cela vous permet de basculer entre l'interaction de la souris et la sélection de la souris, ce qui peut être utile lors de la sélection et de la copie / collage de quelques bits car vous n'avez pas pour maintenir une touche de modification pour le faire.Remarque pour Multiline avec des numéros de ligne:
J'ai généralement des numéros de ligne activés, ce qui copiera également les numéros de ligne si vous sélectionnez plusieurs lignes. Si vous souhaitez copier plusieurs lignes sans les numéros de ligne, désactivez les numéros avec
:set nonu
puis vous pouvez:set nu
les réactiver une fois la copie terminée.la source
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 shiftinsertle coller.la source
:set number
il met en évidence les chiffres. Donc pas beaucoup de bien. Donc, vous défaites le bien fait parset mouse=a
Les paramètres de compilation avec lesquels vim a été compilé font partie du problème.
vim --version
montre ces derniers.Dans OSX, le vim par défaut a
-clipboard
Mais vous avez besoin+clipboard
Sur osx, vous pouvez et apparemment devez généralement utiliser macvim. Vous pouvez le faire
brew cask install macvim
que l' on a+clipboard
.Eux, vous aurez deux vims.
exécuter vim exécutera macvim 'cos
/usr/local/bin
devrait être avant/usr/bin
dans le chemin, bien que vous puissiez vérifier avecwhich vim
.exécuter vim (pour exécuter macvim), c'est bien mais vous voudrez peut-être mapper vi au cos de macvim, sinon exécuter vi reste sur le vim par défaut! Vous pouvez réécrire ou supprimer (avec rm) et recréer le lien vi sym, avec ln. Et pour ce faire sans erreur "opération non autorisée", vous devez désactiver (temporairement) SIL. Https://apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity-protection- sip-aka-rootless-on-macos-os-x .
macvim a
+clipboard
comme indiqué parvim --version
Voici un travail
~/.vim/vimrc
avec juste les lignes requises.La clé de repère par défaut est la barre oblique inverse.
J'ai lu une suggestion que l'on devrait utiliser la touche leader .. (certainement le contrôle a de nombreuses clés déjà utilisées, donc la suggestion était de ne pas utiliser le contrôle. Je ne sais pas si cela s'applique à la touche de commande aussi, mais de toute façon).
Avec ce mappage mentionné,
\c
fera ce"+y
qui copiera du registre connu sous le nom de +, dans le presse-papiers. Et\v
collera à partir du registre appelé +.Voilà donc un copier / coller qui fonctionne entre les fenêtres.
Un autre OS peut nécessiter
"*
plutôt que"+
la source
-xterm_clipboard
. Peut-être qu'un+xterm_clipboard
serait bénéfique d'une manière ou d'une autre, mais peu importe cette solution.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 touche Maj + glisser-déplacer sélectionne automatiquement le texte. Besoin de vérifier dans X-term.
la source
em ... Continuez à appuyer Shiftpuis cliquez sur le bouton droit de la souris
la source
J'ai accidentellement expliqué comment éteindre
set mouse=a
, quand j'ai relu la question et découvert que l'OP ne voulait pas l'éteindre en premier lieu. Quoi qu'il en soit, pour quiconque cherche à désactiver 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/194822la source
Maintenir le décalage tout en copiant et collant avec la sélection a fonctionné pour moi
la source
Ajoutez
set clipboard=unnamed
à votre.vimrc
. Il utilisera donc le registre du presse-papiers '*' au lieu du registre sans nom pour toutes les opérations de coupure, de suppression, de modification et de mise (notez que cela n'affecte pas seulement la souris).Le comportement du registre «*» dépend de votre plate-forme et de la façon dont votre
vim
compte a été compilé (ou si vous utilisezneovim
).Si cela ne fonctionne pas, vous pouvez essayer avec
set clipboard=unnamedplus
, mais cette option n'a de sens que sur les systèmes X11.la source
En mode ESC, lorsque set mouse = a, sélectionnez le texte à l'aide de la souris. Cela activerait le mode visuel dans vim. Ensuite, vous pouvez appuyer sur 'y' pour extraire le texte sélectionné et sur 'p' pour le coller où vous le souhaitez. Cela ne se produit que dans vim.
la source