É possível permitir apenas o conteúdo transferido para a área de transferência, enquanto o conteúdo excluído não é? [vim]

1

Eu tenho set clipboard=unnamed no meu vimrc.
Assim, posso mover o conteúdo do vim para a área de transferência com facilidade.

Mas, recentemente, descobri que não preciso que o conteúdo excluído (com d , x , etc.) vá para sys-clipboard, desde que me causa algum inconveniente.

Eu li o register help info do vim até esta tarde.
E descobriu que "0 é para conteúdo transferido no vim e "1 é para conteúdo excluído.

Mas na interface de ajuda da área de transferência, vi que a única opção 2 é set clipboard=unnamed e set clipboard=unnamedplus .

Existe uma maneira de definir a área de transferência como "0 ou apenas permitir que o conteúdo removido registre "* e "+ ?

    
por Zen 14.03.2015 / 11:31

1 resposta

2

Não há nada embutido, mas você pode implementá-lo substituindo todos os comandos yank por% :set clipboard=unnamed . (Eu não faria o contrário, pois há muitos outros comandos que excluem implicitamente, como c , s , x , d , ...)

Os mapeamentos podem ser bem simples, como

:nnoremap <silent> yy :<C-u>set clipboard=unnamed<Bar>execute 'normal!' v:count1 . 'yy'<Bar>set clipboard=<CR>

y{motion} é um pouco mais desafiador; você implementa uma função de operador personalizada completa (consulte :help g@ ) ou usa um gatilho :autocmd CursorMoved para redefinir a opção 'clipboard' .

    
por 14.03.2015 / 21:20

Tags