Como copiar de uma instância vim para outra usando registradores

3

Como posso selecionar o + register? Eu tenho problemas seguindo as instruções abaixo para copiar / colar texto do vim para outro vim:

In the vim, highlight, select + register, and yank (save) to it:
Shift-v
"+y

In the second vim, select + register, and paste from it:
"+p

Acho que estou pressionando as teclas erradas. Quando ele diz "+y , eu simplesmente pressiono as teclas ", + , y em seqüência? (Isto é, Shift + ', Desloc + = , y ). Não funciona para mim. / p>

Estou usando o Red Hat e o vim em um terminal X11. E a versão do vim é

$vim --version | grep xterm_clipboard
-xterm_clipboard -xterm_save
    
por Richard 23.05.2011 / 18:06

3 respostas

4

O Vim usa o mecanismo de recortar e colar do sistema para copiar texto entre instâncias. Quando você executa o vim em um terminal, ele não tem acesso direto a nenhum mecanismo de recortar e colar. Se o vim estiver sendo executado no xterm ou em algum outro terminal que forneça acesso a seleções X e ao conteúdo da área de transferência, o vim poderá usá-lo; no entanto, seu binário vim é compilado sem suporte para esse recurso.

Se ambas as instâncias do vim estiverem sendo executadas na mesma máquina, você poderá usar um arquivo temporário para se comunicar:

:w ~/vim.tmp
:r ~/vim.tmp

Se ambas as instâncias vim estiverem conectadas ao mesmo display X (em que a variável de ambiente DISPLAY aponta para o mesmo display X, os próprios programas vim não precisam ter nenhum tipo de suporte X), você pode usar as seleções X por meio de um programa externo, como xsel ou xclip . Você pode omitir o p ou -selection primary ou escolher uma seleção diferente ( -s / secondary ou -b / clipboard ). Use :w ! (observe o espaço) para copiar:

:w !xsel -ip
:w !xclip -i -selection primary

e :r! para colar:

:r !xsel -op
:r !xclip -o -selection primary
    
por 24.05.2011 / 00:16
0

Na Red Hat (e no Fedora), use o comando /usr/bin/vimx . O registro + (área de transferência do sistema) funcionará se você usar o comando vimx .

O vimx tem suporte para a área de transferência do sistema compilada em:

$ vimx --version | grep xterm_clipboard
+eval            +mouse_dec       +startuptime     +xterm_clipboard

vimx está no pacote vim-X11 , que também contém gvim .

Use este alias:

alias vim=/usr/bin/vimx
    
por 30.10.2014 / 20:20
-1

Seus exemplos usam o registro + . Para usar o registro ? , simplesmente use os mesmos comandos, substituindo o + por ? .

por exemplo:

"?y
"?p

Se você está tentando colar entre instâncias de vim usando a área de transferência do sistema, você vai querer preceder um g aos seus comandos, assim

"+gy
"+gp
    
por 23.05.2011 / 18:32

Tags