Digite no terminal:
$ vim --version | grep -e version -e +mouse.* -e +clipboard
Idealmente, você tem a versão huge
instalada com o recurso de área de transferência, bem como vários recursos de mouse compilados. Apenas no caso, por favor, relate o resultado editando sua pergunta.
O vi / vim usa prancheta (s) diferente (s) da sua GUI normal: isto é, ela possui sua própria área de transferência, portanto se você tentar copiar / colar de um arquivo vim-aberto para qualquer lugar fora do vim com o mouse usando CTRL + x / CTRL + v , você terminará com .... nada.
I) tente usar o mouse (depois disso eu vou responder à sua pergunta)
Abra um arquivo no vim e destaque o texto com o botão esquerdo do mouse pressionado. Clique no texto realçado com o botão direito. Se você não vir uma opção de menu contextual de "cópia" ativada, isso provavelmente significa que você definiu
set mouse=a
em algum lugar na sua configuração do vi / vim. Esta opção permite que você use o mouse nos 4 modos vim mais comuns: normal (com escape), inserir, visual, modos de linha de cmd.
Digite :help mouse
em sua sessão do vi / vim (modo normal) se quiser saber mais. Se você tem essa opção ativada, você ainda pode copiar no vi e colar fora do vim com o mouse. Para isso, basta pressionar shift ao destacar seu texto no vi / vim. Seu shell de sessão do vi / vim se comportará como se set mouse=a
não tivesse sido definido apenas para a duração dessa tarefa. Isso é chamado de "manipulação xterm" do mouse. Você encontrará essa expressão se decidir ler material técnico sobre isso.
II) usa registradores do modo visual dentro do vi / vim
Existem dois registradores que você pode chamar a partir da linha cmd enquanto estiver no vi / vim, enquanto você tenta copiar algo para depois colá-lo fora do vim. Eu os chamarei de "+ e" + registradores (não seus nomes reais).
- posicione o cursor no modo visual e destaque o texto
- Se você puxar texto com
"*y
, normalmente poderá colar fora do vi / vim, digamos em um arquivo .odt, usando o botão do meio do mouse. O outro registro não é afetado. - Se você puxar com
"+y
, na verdade você puxa e cola do que é chamado de "área de transferência". Nesse caso, você vai estragar tudo o que estava na área de transferência até aquele instante. Para colar fora do vi / vim, basta usar a CTRL + v '.
Nota: Depois de colar, nem registra as mudanças de estado. Eles ainda contêm o mesmo material de antes. Você pode voltar ao vi / vim e colar seu conteúdo com "*p
ou "+p
(após o cursor) ou talvez apenas p
.
Você pode realmente mudar o comportamento acima, fazendo tudo colar na área de transferência. Do :help clipboard
do modo vi / vim normal para saber mais sobre a área de transferência. Geralmente ter registros diferenciados acessíveis com "*y
ou "+y
é extremamente prático, porque quando você quer preservar o que já está na área de transferência, você usa apenas "*y
para yank ou "*d
para recortar - > sem interrupção para a área de transferência lá!
Se de alguma forma usar "+y
ou "+d
não funcionar para você, como parece ser o caso, talvez seja porque você NÃO instalou todos os recursos compilados necessários para o seu vim. Em particular, se você não tem o recurso "clipboard", vá em frente e instale o pacote vim-gtk
do Ubuntu Software Center, ou:
$ sudo apt-get install vim-gtk
Isso ajusta você bem, junto com add-ons extras para olhar interativamente arquivos escritos em C, Python, latex, Perl, Ruby e outros, sem mencionar o doc html local para o vim se você precisar dele. / p>
... o que você faz se você for fazer qualquer coisa com o vim. ; -)
Se você fizer isso, você pode querer fechar todas as suas sessões vim e talvez até mesmo o seu arquivo .vimrc
, embora eu não esteja claro sobre isso. Fazer logout e voltar não vai doer embora.
E isso foi apenas arranhando a superfície do vi ...
EDITAR:
Para a seção I): você pode organizar a cópia automática do registrador X11 "*y
ao selecionar com o mouse no modo visual, incluindo set go+=a
no arquivo ~/.vimrc
.
Para a seção II): Se você tem o recurso de clipboard compilado na sua instalação do vim, você pode mapear a cópia da área de transferência para CTRL + c inserindo :vmap <C-C> "+y
em seu ~ / .vimrc. Depois disso, você só precisará destacar seu texto, fazer CTRL + c para copiar para a área de transferência, e CTRL + v para colar em qualquer lugar fora do vi / vim. Não mais "+y
necessário aqui neste caso. Este mapeamento específico é válido apenas para o modo visual.