Eu tenho dois arquivos abertos no vim, cada um em um painel tmux. Gostaria de copiar, digamos, 10 linhas de um arquivo para outro.
Como posso fazer isso sem usar o mouse Copy
-> Paste
?
vim
tmux
copy-paste
Patryk
fonte
fonte
:w /tmp/lines
,:r /tmp/lines
em outro caso). Ou, se o seu Vim souber conversar com a área de transferência do sistema, você poderá usar os registradores+
ou*
para evitar o arquivo temporário.Respostas:
Você terá que usar os atalhos do tmux. Supondo que o atalho do comando tmux seja o padrão: Ctrl+ b, então:
Ctrl+ b, [Entre no modo de cópia (?).
Mova para o início / fim do texto para destacar.
Ctrlspace
Comece destacando o texto (no Arch Linux). Quando eu compilei o tmux a partir da fonte no OSX e em outros Linux, Spacenormalmente funciona normalmente. O texto selecionado altera as cores, para que você saiba se o comando funcionou.
Vá para o final oposto do texto para copiar.
Alt+ wCopia o texto selecionado na área de transferência do tmux. (No Mac, use Esc+ w.)
Mova o cursor para o painel oposto do tmux ou para uma janela completamente diferente do tmux. Coloque o cursor onde deseja colar o texto que você acabou de copiar.
Ctrl+ b, ]Cole o texto copiado da área de transferência do tmux.
O tmux é muito bom em mapear comandos para atalhos de teclado personalizados.
Consulte Ctrl+ b, ?para obter a lista completa dos atalhos de teclado definidos.
fonte
screen
atalhos:Ctrl + A [
(entre no modo de cópia),Space
(comece o destaque),Enter
(finalize o destaque),Ctrl + A ]
(cole).Enter
key.Infelizmente, ainda não posso adicionar um comentário à resposta de Alex Leach, então incluirei um adendo aqui para usuários do Mac OS X:
fonte
byobu
/tmux
com todas as configurações padrão, isso funcionou, Alt + w não.Se você estiver usando o vim e o tmux no macOS (Testado no macOS 10.12.2, tmux 2.3):
(Suponha que a combinação de teclas de prefixo do tmux seja prefix. O prefixo é ctrl+ bnos padrões.)
fonte
Estou conectando ao meu servidor CentOS em uma máquina Windows usando o cliente ssh do terminal ZOC . Aqui está o que funciona para mim:
<prefix>
+[
<Space>
<Enter>
<prefix>
+]
fonte
Você pode usar a placa de grampo do sistema com "* ye" * p em vez dos normais y e p.
fonte
"+2yy
- copiar duas linhas para X11 clipboard"+dd
- linha de corte para X11 clipboard"+p
- colar X11 clipboardh,j,k,l
para Também vi algumas vezes na minha VM ubuntu, o registro "+" desaparecer, por motivos desconhecidos. Para verificar se você possui o+
registro, digite:reg
e verifique se há uma sequência"+
na primeira coluna.y
ep
para"+y
e"+p
?Se você tiver
vim
aberto, é melhor usar a pasta copiar do vim para copiar texto.A pasta de cópia do Tmux funcionará, no entanto, existem várias desvantagens.
Primeiro, ao copiar várias linhas de texto, você precisará selecionar várias linhas. A pasta de cópia do tmux normalmente não entende que
vim
tenha números de linha ou que haja marcações na sarjeta do vim (como números relativos / números absolutos). Como resultado, ele também será copiado.Em segundo lugar, descobri que, se o texto tiver uma formatação específica para um idioma e você tentar copiar e colar diretamente usando o tmux para o vim, isso atrapalhará a formatação. Isso pode ser evitado usando
set paste!
. No entanto, isso requer muito mais trabalho.Use
"+y
para copiar e"+p
colarVim
fornece nativamente um método para copiar e colar entre o buffer do vim e a área de transferência do sistema, usando"+y
ou"*y
. Em seguida, cole usando"+p
ou"*p
. Isso evitará copiar os números relativos na sarjeta ou outras marcas aleatórias que não são relevantes para o vimfonte
Algumas opções para o uso do vim, já que a sequência de atalhos do tmux é um pouco longa e acho difícil lembrar
Como as respostas acima, você pode usar
"+y
e"*y
para copiar e, em seguida,"+p
e"*p
respectivamente para colar. Se você quiser que o vim use a área de transferência por padrão, basta usá-loy/p
diretamente.comando source for clipboard: https://vi.stackexchange.com/questions/84/how-can-i-copy-text-to-the-system-clipboard-from-vim
fonte