Colando do vim no terminal para o Google Docs (Firefox + Vimperator) - precisa entender

3

Eu tive alguns problemas com copiar e colar texto do vim no terminal para o documento Google Docs (também conhecido como Drive) (daqui em diante GDd) no navegador FF (com o Vimperator).

Nota:

  • Eu tenho um arquivo aberto no Vim 7.2 no terminal
  • :version exibe os dois +clipboard e +xterm-clipboard
  • Eu estou no Ubuntu 10.04 LTS, então eu não acho que isso seja relacionado à Unity
  • Eu quero usar o Vim, não o GVim, nem o gedit ...
  • Sou ávido fã de navegação sem mouse, então solução com mouse não era o que eu queria.
  • Eu tenho a solução, mas preciso de compreensão.

O que eu tentei e onde fica:

  • Arrancar todo o texto do ficheiro através de: ggvGy permite-me:
    • cole-o pelo botão do meio do mouse , NÃO com Ctrl+v ou Shift+Insert
      1. aqui, na área de texto, para inserir o texto da pergunta
      2. no gedit
      3. mas NÃO no GDd onde eu quero colá-lo, mesmo se eu alternar o Vimperator para o modo de passagem com Insert
    • NÃO é exibido no XClip após xclip -o
    • No gedit, posso copiar e colar o texto no GDd (o modo de passagem do Vimperator não é obrigatório).
  • :%! !xclip -i (ou :first, last )
    1. informa todo o arquivo (todas as linhas, para ser preciso) como filtrado, embora o shell retorne 1
    2. 'xclip -o' não retorna nada (está vazio) ou retorna um valor copiado anteriormente
    3. com 2. não é surpresa, mas não consigo colar nada não apenas no GDd, mas também no gedit ou aqui
  • definir a área de transferência ( :set clipboard=unnamed ) como não nomeada não ajuda
  • usando "+y ou "*y no texto inteiro do arquivo realmente faz o truque

Então, a pergunta (são na verdade três, digamos "split" e eu vou):

  1. porque o botão do meio do mouse cola coisas diferentes de Ctrl + v e como saber o que será colado com cada uma delas?
  2. por que apenas puxar (sem registrar) funciona com o mouse, mas não com o teclado / XClip?
  3. por que a ajuda de cadastro não identificada Após a configuração, ele deve tornar unnamed e * registros iguais?
por LIttle Ancient Forest Kami 21.09.2012 / 11:44

2 respostas

3

Por padrão, a área de transferência é preenchida somente se você fizer uma seleção visual (usando v ou, equivalentemente, seu mouse). (Em todos os seguintes, estamos falando sobre o "velho" X clipboard, o buffer primário). Para afetar a área de transferência usando "y", mesmo sem seleção visual, você precisa :set clipboard=unnamed . Eu não sei porque, no seu primeiro exemplo, o xclip -o não mostra nenhum conteúdo; deveria. Eu tenho uma hipótese sobre isso, no entanto, veja abaixo.

Eu tenho 10.04. Eu começo vim.

:set clipboard
clipboard=autoselect,exclude:cons\|linux

Eu digito um texto aleatório:

asd fa sdf
asdf

Agora eu faço ggVGy . Em outra janela de terminal, eu digito

xclip -o

xclip me mostra, corretamente, o conteúdo do arquivo. Eu posso colá-lo com o botão do meio do mouse, por exemplo aqui:

asd fa sdf
asdf

O mesmo se eu começar a seleção visual com "v", se mover, e puxar com "y". No entanto, se eu fizer "yy" (arrancar a linha atual, sem seleção visual), a área de transferência não será atualizada.

OK, agora eu faço

:set clipboard=unnamed

Eu faço ggyy (vá para a primeira linha, escolha um registro sem nome sem usar a seleção visual). Agora xclip -o mostra "asd fa sdf" e eu posso colá-lo com o botão do meio do mouse; a área de transferência do X foi preenchida com o comando yank.

Linha de fundo

Sem tocar no vimperator, ele funciona no meu sistema como esperado. Por favor, repita o acima (sem usar o vimperator, veja abaixo) para ter certeza que quando você faz ggVGy , xclip -o mostra o conteúdo (ao contrário do seu exemplo).

Minha hipótese é que o vimperator, por algum motivo, redefine a área de transferência do X. Tente separar a sessão regular do vim do vimperator:

  1. Se você selecionar algo no terminal com o mouse (botão esquerdo, sem Ctrl-Shift-C), poderá colá-lo com o botão do meio para o vimperator?

  2. Se visualmente selecionar algo com vi, você pode colá-lo com o botão do meio do mouse em gedit (aparentemente você pode) e vê-lo com xclip -o (você diz que não pode , mas eu não acredito nisso :-); caso contrário, o botão do meio do mouse não funcionaria)?

por January 21.09.2012 / 12:29
4
  1. O Linux tem duas pranchetas (chamadas de "buffer primário" e "buffer secundário"). Um é usado para copiar / colar do mouse e outro é para Ctrl-C / Ctrl-V. Portanto, se você selecionar algo (digamos, para excluí-lo), o conteúdo do que você colocar na área de transferência usando Ctrl-C ainda estará intacto.

  2. Se você deseja copiar sem puxar, tente selecionar o texto que deseja copiar e pressione CTRL + SHIFT + C e pressione CTRL + SHIFT + V para copiá-lo / colá-lo

Espero que isso ajude

    
por user91632 21.09.2012 / 12:09