vim pára de enviar texto para o registrador * (X11)?

4

Recentemente, comecei a usar o VcXsrv com a esperança de poder pegar o texto de vim (modo de console) na área de transferência do Windows por meio do encaminhamento do X11 (e do * register). Isso funciona ... até certo ponto. Assim que eu colo no Bloco de Notas, perco a capacidade de puxar para a área de transferência do Windows.

  • Estou enfrentando esse problema se eu arranco texto diretamente para o * register ou use a opção autoselect clipboard. ( :help options (área de transferência), :help guioptions_a )
  • Ele não parece estar ligado a um Xserver específico: eu tentei o VcXsrv, o XMing e o MobaXterm (incluindo o PuTTY com o X Server do Moba).
  • Ele não parece estar ligado ao terminal que estou usando. Eu tentei PuTTY e MobaXterm.
  • xclip pode ser usado qualquer número de vezes fora de vim sem problemas.
  • Ecoando um comando para xclip parece corrigir temporariamente o problema. Posso copiar com sucesso o yank para "* de vim novamente, mas assim que eu colar no bloco de notas do Windows, o problema está de volta.
  • ~/.vim/autoload e ~/.vim/plugin estão vazios.
  • Eu uso tmux regularmente, mas também tenho esse problema fora de uma sessão.
  • Acontece com gvim também.

Meu .vimrc :

$ cat ~/.vimrc
" Default vimrc file, installed by vim spell
set mouse=a
set nocompatible
set backspace=indent,eol,start
" set autoindent
" set smartindent
set cindent
set tabstop=4
set shiftwidth=4
set expandtab
set ruler
set showcmd
colorscheme elflord
syntax enable
if &term =~ "^screen"
  set ttymouse=xterm
endif
filetype plugin on

Saída de set clipboard :

clipboard=autoselect,exclude:cons\|linux

Saída de vim --version :

$ vim --version | head -20
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jul 12 2010 02:29:33)
Included patches: 1-445
Modified by [email protected]
Compiled by [email protected]
Huge version with GTK2 GUI.  Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
+cryptv +cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic
+emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path
+float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand
+jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap
+menu +mksession +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm
-mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte
+multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra +perl +postscript
+printer +profile +python +quickfix +reltime +rightleft +ruby +scrollbind
+signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax
+tag_binary +tag_old_static -tag_any_white +tcl +terminfo +termresponse
+textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual
+visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup
+X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save

Atualização:

:echo @* mostrará o conteúdo do registrador * corretamente, mesmo após o bug se manifestar, então parece que ele não está chegando na área de transferência do Windows via meus servidores X por algum motivo.

    
por Andrew B 07.12.2013 / 10:30

1 resposta

1

I know how shift selection works...It's not possible to yank the entire contents of a file (including what is off screen) to the clipboard using that method.

Não sei se funcionará via X forwarding no windows, mas tente o * register para isso. Vá para o início, no modo normal (não --INSERT--), "*10000yy (insira 10000 linhas no registro * ). Registre * é a área de transferência do X, para que você possa colá-la em qualquer lugar no X; se você tiver algum método de transferência para a área de transferência do Windows, você está definido.

"* é um incômodo por causa do combo de mudança. Se você fizer isso muito, mapeie "* para uma tecla F ou algo assim:

:nmap <F8> "*
:vmap <F8> "*

Isso mapeia para modo normal e modo visual, assim você pode ctrl-v selecionar coisas também.

    
por 07.12.2013 / 11:49

Tags