O texto que você está colando inclui uma nova linha à direita. Quando você cola uma nova linha, o shell em execução no terminal vê isso pressionando Enter , então ele executa o comando.
A operação de colar é executada pelo emulador de terminal; passa o texto colado ao aplicativo em execução no terminal, da mesma forma que passa o texto digitado pelo usuário. Consulte Como a entrada de teclado e a saída de texto funcionam? para mais informações sobre como funciona a entrada. O aplicativo (aqui, o shell) não tem como distinguir entre os pressionamentos de tecla e uma operação de colar.
Muitos emuladores de terminal nos dias de hoje suportam colar entre colchetes . No modo colar colado, o aplicativo pode distinguir uma operação de colar dos pressionamentos de tecla. Colar emparelhado só é útil se o aplicativo faz algo diferente com texto colado, por isso, é habilitado por aplicativos de suporte, não é algo que é configurado pelo usuário do emulador de terminal.
O Zsh 5.1 (lançado há algumas semanas, ainda não está disponível na maioria das distribuições) adiciona suporte para o modo de colar entre colchetes. Quando você cola texto, ele é apenas inserido na linha de comando, e você pode editá-lo antes de pressionar Enter para executar a linha de comando.
Os usuários do oh-my-zsh podem usar o plugin safe-paste mesmo em versões anteriores do zsh.
Outra coisa que você pode fazer no zsh é fazer com que ele insira a seleção como uma string, com aspas (na forma de barras invertidas antes de cada caractere especial do shell, como espaço em branco). Digite 'xsel'
para obter a seleção principal (seleção automática de mouse) ou 'xsel -b'
para obter o conteúdo da área de transferência (texto copiado com Ctrl + C ) e pressione < kbd> Tab .
Se você tiver uma versão mais antiga do zsh e quiser inserir o conteúdo da área de transferência sem citar, poderá definir uma função que insira a seleção.
function zle_insert_x_selection {
LBUFFER+=$(xsel ${NUMERIC+-b} -o </dev/null)
}
zle -N zle_insert_x_selection
bindkey '\e\C-v' zle_insert_x_selection
Com isto no seu .zshrc
, você pode pressionar Ctrl + Alt + V para inserir a seleção principal, ou Ctrl + U Ctrl + Alt + V para inserir o conteúdo da área de transferência. Eles são inseridos antes do cursor, inalterados, exceto sem nova linha. Veja Compartilhe a área de transferência entre o bash e X11 para algo semelhante em bash.