Estou tentando copiar e colar algum texto do vim. Estou fazendo v para entrar no modo visual e, em seguida, y quando seleciono meu bloco.
Parece copiar o texto na área de transferência do vim, porque p o colará. Mas em outro programa (por exemplo, Chrome), clique com o botão direito do mouse em> colar e não cola o texto correto. Como copiar texto para a área de transferência correta?
shift'
em seguida,shift=
em seguida,y
(não todos de uma vez, um após o outro, exceto as mudanças de curso).Se você estiver usando o vim> = 7.3.74, poderá colocar isso no seu vimrc:
O qual usará automaticamente o
+
buffer (a área de transferência do sistema) por padrão. Para puxar (copiar), basta usar oy
comando regular , etc.No entanto, achei esse comportamento bastante irritante, pois comandos como
d
colocam o texto em que operam no buffer padrão, o que significava que eu não podia fazer um jejumdd
e colar uma linha da Internet, por exemplo.fonte
dd
significa "cortar uma linha", para que esse seja o comportamento esperado. No raro caso em que você realmente deseja excluir uma linha no esquecimento,"_dd
fará o truque.vim --version
indicar que você possui um+xterm_clipboard
recurso. Caso contrário, você terá que instalar pacotes extras ou recompilar o vim com esse recurso adicionado.Mantenha pressionada a tecla Shift e selecione o texto com o cursor do mouse.
O texto será copiado para a área de transferência.
Isso também funciona para colar da área de transferência no vim.
Para ficar claro, isso funciona para
vim
rodar em um terminal como oxterm
.fonte
xterm
.set nu
estiver ativado. Então, você provavelmente desejaria alternar os números de linha com algum atalho ou executar o:set nonu
comando antes de cada seleção.Acho o padrão
"+gP
e os"+y
comandos muito difíceis de usar. Então, eu remapeeiCtrl-Y
para puxar a área de transferência eCtrl-P
colar da área de transferência. Adicione isto a.vimrc
fonte
Não importa, eu encontrei a resposta - está escrita nos menus do vim.
Muito intuitivo.
fonte
gvim
?+xterm_clipboard
recurso).Apenas para adicionar uma resposta não específica do vim: Você pode
Ctrl+Shift+C
copiar para a área de transferência do sistema no Ubuntu (se a funcionalidade for fornecida pelo emulador de terminal, o gnome-terminal será fornecido).Ctrl+Shift+V
cola em outra janela do terminal;Ctrl+V
cola regularmente em um aplicativo GUI.Além disso, se você selecionar o texto no terminal e clicar com o botão do meio, ele será colado na área de transferência do X11.
fonte
Por padrão, se você instalar a versão light do vim, não terá o
+xterm_clipboard
recurso on (vim --version | grep xterm
), necessário para usar os registradores*
e+
fora do vim.Para ativá-lo, você deve compilar o vim por conta própria ou instalar uma versão do vim que vem pré-ativada. Eu costumava vim-gnome:
sudo apt-get install vim-gnome
. Se você executarvim --version | grep xterm
, verá que é agora+xterm_clipboard
.Agora, tente copiar para o
+
e*
e ele deve funcionar.fonte
Quando verifiquei, meu vim não estava suportando a área de transferência:
Instalei o vim-gnome e depois verifiquei novamente
Agora eu posso copiar e colar usando "+ ye" + p, respectivamente.
fonte
Mantenha pressionada a tecla SHIFT e o mouse seleciona o texto para copiá-lo.
Em seguida, cole em outro programa com
CTRL + v
.Funciona no terminal do meu Ubuntu 16.04. Não tenho certeza sobre
gvim
e outros sistemas.fonte
Apenas para adicionar, se algo funcionar, tente mudar o terminal que envolve o vim (se você estiver usando o vim a partir do terminal). Eu descobri que, por exemplo, a área de transferência é inacessível por guake enquanto é acessível a partir do terminal gnome.
fonte