Em vez de %!xclip
use
%w !xclip
Observe o espaço entre o w
e o !
. Veja
:help :w_c
Existe uma maneira de canalizar o texto selecionado através de um comando externo no vim, mas não para substituir o texto selecionado pela saída? Ocasionalmente eu quero copiar algo em um buffer vim para a área de transferência do X, então eu uso algo como %!xclip
- mas então eu tenho que "desfazer" esse comando para recuperar o texto já que o xclip não retorna nada. Além de escrever um script wrapper em torno do xclip que também ecoa o texto de volta, há uma maneira melhor de fazer isso?
Obrigado!
Em vez de %!xclip
use
%w !xclip
Observe o espaço entre o w
e o !
. Veja
:help :w_c
Para copiar para a área de transferência, eu uso
"*y
Para saber mais sobre a diferença entre "*
e "+
, você deve verificar :h x11-selection
. Para mim, o seguinte parece ser relevante:
Xterm, by default, always writes visible selections to both PRIMARY and CUT_BUFFER0. When it pastes, it uses PRIMARY if this is available, or else falls back upon CUT_BUFFER0. For this reason, when cutting and pasting between Vim and an xterm, you should use the "* register. Xterm doesn't use CLIPBOARD, thus the "+ doesn't work with xterm.
Então, vou ficar com "*
em vez de "+
que peth mencionou, mas você pode fazer bem para testar quais funcionam melhor para seu padrão de uso.