Após a ativação set mouse=a
, o texto copiado dentro do Vim não será colado fora do Vim. Alguém sabe uma maneira de consertar isso?
Aqui, a seleção de texto com o mouse ativa o modo visual e desativa a Copy
opção no menu pop-up:
vim
configuration
mouse
copy-paste
lyuba
fonte
fonte
+clipboard
emouse=a
, você poderá copiar / colar de / para o vim sem usar o menu pop-up do terminal. Você pode verificar seclipboard
está ativado usandovim --version
.mouse=a
não é uma opção de compilação, é algo no vimrc B) Quando o vim foi compilado,+clipboard
ele permite copiar / colar quando:set number
está ligado e sem copiar / colar os números, embora talvez você ainda precise fazer alguma coisa mapeamentos C) Não é necessário recompilar o VIM, ele pode estar ativado no vim em alguns gerenciadores de pacotes suportados por qualquer SO. No osx, o vim do brew o possui, embora o vim padrão do osx não. Minha resposta menciona esse rex.xsel
funcione para você também, você pode selecionar texto com o editor ou com o mouse e pressionarctrl+c
para copiar o texto, como é para o neovim, github.com/neovim/neovim/issues/7945#issuecomment-361970165Respostas:
Pressione shiftenquanto seleciona com o mouse. Isso fará com que a seleção do mouse se comporte como se
mouse=a
não estivesse ativada.Nota: esse truque também se aplica a "colar no botão do meio": se você deseja colar no texto vim que foi selecionado fora, pressione shiftenquanto clica no botão do meio. Apenas verifique se o modo de inserção está ativado quando você faz isso (você também pode
:set paste
evitar efeitos inesperados).OS X (mac): mantenha pressionada a tecla alt / option enquanto seleciona ( fonte )
fonte
Fn
chave é o caminho certo a seguir. Ou seja, (commouse=a
ativar) selecionando o texto enquanto pressiona aFn
tecla, use o CMD + C para copiar e colar para onde quiser.Use ", +, ydepois de fazer uma seleção visual. Você não deve usar o comando de cópia do terminal, pois copia o que o terminal vê em vez do conteúdo real. Aqui está o que isso faz:
+
para a próxima exclusão, puxar ou colocar. O registro nomeado+
é um registro especial, é o registro da área de transferência do X11. (Em outros sistemas, você usaria*
, penso, ver:help clipboard
e:help x11-selection
)Você pode mapeá-lo assim:
E depois destaque algo com o mouse e pressione Control-Cpara copiá-lo.
Esse recurso funciona apenas quando o Vim foi compilado com a
+xterm_clipboard
opção Corravim --version
para descobrir se tem.fonte
"*y
dependendo do sistema operacional.+clipboard
? E o que dizer+clipboard
com issoxterm_clipboard
?Em vez de
set mouse=a
usarset mouse=r
no .vimrcfonte
No OSX, use em fnvez de shift.
fonte
option
chave, que é aalt
chave equivalente no host do MacOS. Era um terminal remoto no debian9. não funcionou adicionando um dosset mouse=a
/set mouse=r
no/etc/vim/vimrc
controle remoto.No Ubuntu, é possível usar as ligações copiar e colar X-Term no VIM (Ctrl-Shift-C e Ctrl-Shift-V) no texto que foi ocultado usando a tecla Shift.
fonte
Outra opção do OSX-Mac é desmarcar
View->Allow Mouse Reporting
(ou pressionar ⌘-R para alterná-la.) Isso permite alternar entre a interação e a seleção do mouse, o que pode ser útil ao selecionar e copiar / colar alguns bits, porque você não possui para manter pressionada uma tecla modificadora.Nota para Multilinha com números de linha:
Normalmente, tenho números de linha ativados, portanto, isso também copiará os números de linha se você selecionar várias linhas. Se você deseja copiar várias linhas sem os números de linha, desative os números com
:set nonu
e poderá:set nu
reativá-los após concluir a cópia.fonte
Você pode usar
:set mouse&
na linha de comando do vim para ativar a cópia / colar do texto selecionado usando o mouse. Você pode simplesmente usar o botão do meio do mouse ou shiftinsertcolá-lo.fonte
:set number
, destaque os números. Então não é muito bom. Então você desfaz o bem feito porset mouse=a
As configurações de compilação com as quais o vim foi compilado fazem parte do problema.
vim --version
mostra isso.No OSX, o vim padrão possui
-clipboard
Mas você precisa+clipboard
No osx, você pode e, aparentemente, geralmente deve usar o macvim. Você pode fazer
brew cask install macvim
Aquele que tem+clipboard
.Eles terão dois vims.
rodar o vim rodará o macvim ' , pois você
/usr/local/bin
deve estar antes/usr/bin
no caminho, embora você possa verificar comwhich vim
.rodar o vim (para rodar o macvim), tudo bem, mas você pode mapear o vi para o macvim ', caso contrário, rodar o vi permanece no vim padrão! Você pode reescrever ou excluir (com rm) e recriar o link do vi sym, com ln. E para fazer isso sem um erro 'operação não permitida ", é necessário (temporariamente) desativar o SIL. Https://apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity-protection- sip-aka-rootless-on-macos-os-x .
macvim tem
+clipboard
como mostrado porvim --version
Aqui está um trabalho
~/.vim/vimrc
com apenas as linhas necessárias.A chave líder padrão é a barra invertida.
Li uma sugestão de que se deve usar a chave líder .. (certamente o controle já possui muitas chaves em uso, portanto a sugestão era não usar o controle. Não sei se isso se aplica à chave de comando também, mas de qualquer maneira).
Com esse mapeamento mencionado,
\c
fará o"+y
que será copiado do registro conhecido como + para a área de transferência. E\v
irá colar do registro conhecido como +.Portanto, é uma cópia / pasta que funciona entre janelas.
Outro sistema operacional pode exigir, em
"*
vez de"+
fonte
-xterm_clipboard
. Talvez um+xterm_clipboard
seja benéfico de alguma forma, mas não importa para esta solução.Se você estiver usando a sessão Putty, ela copia automaticamente a seleção. Se tivermos usado a opção "set mouse = a" no vim, selecionar usando Shift + arrastar o mouse seleciona o texto automaticamente. Precisa fazer check-in X-term.
fonte
em ... Continue pressionando Shifte clique no botão direito do mouse
fonte
Expliquei acidentalmente como desligar
set mouse=a
, quando reli a pergunta e descobri que o OP não queria desligá-lo. De qualquer forma, para quem procura como desligar o mouse (set mouse=
) centralmente, deixo uma referência à minha resposta aqui: https://unix.stackexchange.com/a/506723/194822fonte
Manter o turno ao copiar e colar com a seleção funcionou para mim
fonte
Adicione
set clipboard=unnamed
ao seu.vimrc
. Portanto, ele usará o registro da área de transferência '*' em vez do registro sem nome para todas as operações de arrancar, excluir, alterar e colocar (observe que isso não afeta apenas o mouse).O comportamento do registro '*' depende da sua plataforma e de como
vim
ela foi compilada (ou se você usarneovim
).Se não funcionar, você pode tentar com
set clipboard=unnamedplus
, mas essa opção só faz sentido nos sistemas X11.fonte
No modo ESC, quando definir mouse = a, selecione o texto usando o mouse. Isso ativaria o modo visual no vim. Em seguida, você pode pressionar 'y' para puxar o texto selecionado e 'p' para colá-lo onde quiser. Isso acontece apenas no vim.
fonte