Se eu selecionar o seguinte texto em um buffer VIM no modo VISUAL
f() {
echo "f";
}
f
e depois executar
:'<,'>w !xclip | !eval "$(xclip -o)"
eu recebo
/bin/bash: eval: line 3: syntax error near unexpected token `('
/bin/bash: eval: line 3: `feval f() {'
Como posso encadear os 2 comandos corretamente para que o primeiro copie a seleção VISUAL para a área de transferência do sistema e o segundo a avalie usando eval
?
roda perfeitamente bem no meu teste (Ubuntu 16.04 LTS, com bash 4.3, vim 7.4) e transforma as 4 linhas em um único caractere 'f'. Substituir
&&
por|
também funciona, embora não seja recomendado.Não acho que executar comandos do shell com o vim seja muito diferente de executar no shell normal, e não deveria ser.
Tente isto:
O
!
precisa ser usado uma vez e o vim executaria o comando como um comando.