Como ligar uma chave para emitir dois comandos no modo visual?

1

Esta questão é mais geral do que o problema que atualmente enfrento e pode não ter uma solução. Mas meu verdadeiro problema pode ter uma solução se não houver uma solução geral.

O que eu quero fazer é que se eu usar y do modo visual, eu quero que o Vim traga ambos para o + register e para o regular " register.

Eu não me importo com a invasão da área de transferência do sistema, porque existem ferramentas que uso para gravar entradas anteriores da área de transferência. Eu só quero uma maneira de arrancar para a área de transferência que é fácil o suficiente para executar que eu possa realmente fazer uso dele.

Possíveis abordagens

  • bind key para funcionar, que de alguma forma pode pegar o range da seleção, e então colocar em ambos os registradores - eu acho que isso pode ser feito, eu tenho um snippet mágico no meu vimrc que faz isso. Eu não tenho ideia de como isso funciona. Parece com isto: vnoremap <silent> x :<C-u>execute 'normal! vlF' . nr2char(getchar()) . 'of' . nr2char(getchar())<CR>
  • yank e, em seguida, chamar a função que copia explicitamente " register para + register. Não sei como fazer um puxão e depois chamar alguma função. pode ser mais fácil
  • ???
  • sem probabilidade de lucro direto
por Steven Lu 10.12.2014 / 06:06

1 resposta

2
set clipboard^=unnamedplus

Veja :help 'clipboard' .

I don't care about clobbering the system clipboard, because there are tools I use to record past clipboard entries. I just want a way to yank to clipboard which is easy enough to perform that I may actually make use of it.

Ignorar a área de transferência do sistema é precisamente um grande problema ao sincronizar o registro não-nomeado e o registro da área de transferência quando você usa um gerenciador de área de transferência em todo o sistema. Torna-se difícil encontrar o que você está procurando que provavelmente está enterrado abaixo de dezenas e dezenas de entradas sem sentido. Pense nisso.

Outra opção poderia ser remapear y no modo visual para arrastar para a área de transferência do sistema:

 xnoremap y "+y

Como os todos yanks são enviados para o registrador não-identificado, o comando acima irá efetivamente puxar a seleção visual para o registrador não identificado e para o registro da área de transferência. Esta é, na minha opinião, uma solução muito mais limpa do que usar 'clipboard' .

    
por 10.12.2014 / 08:43

Tags