Isso acontece se eu usar ctrl + shift + v ou colar no menu do botão direito.
Como faço para parar esse comportamento?
Isso acontece se eu usar ctrl + shift + v ou colar no menu do botão direito.
Como faço para parar esse comportamento?
Respostas:
Não copie várias linhas de texto para colar. Eu quase posso garantir que você está simplesmente copiando a última parte da linha. Se você clicar três vezes para copiar a linha de código que está colando, estará recebendo a nova linha no final da linha. Se você quiser ter certeza, esse é realmente o problema, copie a linha inteira, exceto a última letra / dígito, e veja se colar também inclui uma nova linha.
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 como pressionado e Enter, portanto, executa o comando.
A operação de colagem é realizada pelo emulador de terminal; passa o texto colado para o aplicativo em execução no terminal, da mesma maneira que passa o texto digitado pelo usuário. Consulte Como funcionam a entrada do teclado e a saída de texto? para obter mais informações sobre como a entrada funciona. O aplicativo (aqui, o shell) não tem como distinguir entre pressionamentos de tecla e uma operação de colar.
Atualmente, muitos emuladores de terminal suportam pasta entre colchetes . No modo de colar entre colchetes, o aplicativo pode distinguir uma operação de colar das teclas digitadas. A pasta entre parênteses é útil apenas se o aplicativo fizer algo diferente com o texto colado, por isso é ativado pelo suporte a aplicativos, não é algo configurado pelo usuário do emulador de terminal.
O Zsh 5.1 (lançado algumas semanas atrás, portanto ainda não está disponível na maioria das distribuições) adiciona suporte ao modo de colagem entre colchetes. Ao colar o texto, ele é inserido na linha de comando e você pode editá-lo antes de pressionar Enterpara executar a linha de comando.
Os usuários do oh-my-zsh podem usar o plugin de colagem segura, mesmo nas versões anteriores do zsh.
Outra coisa que você pode fazer no zsh é fazê-lo inserir 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 do mouse) ou `xsel -b`
para obter o conteúdo da área de transferência (texto copiado com Ctrl+ C) e pressione Tab.
Se você possui uma versão zsh mais antiga e deseja inserir o conteúdo da área de transferência sem citar, é possível definir uma função que insere 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 isso .zshrc
, você pode pressionar Ctrl+ Alt+ Vpara inserir a seleção principal ou Ctrl+ U Ctrl+ Alt+ Vpara inserir o conteúdo da área de transferência. Eles são inseridos antes do cursor, inalterados, exceto sem nova linha à direita. Consulte Compartilhar a área de transferência entre o bash e o X11 para obter algo semelhante no bash.
Se você estiver usando o bash como seu shell, poderá pressionar Ctrl-X Ctrl-E
para abrir um editor (definido por $ VISUAL ou $ EDITOR, por exemplo, vi
ou talvez nano
).
Você pode colar seus comandos exatamente como faria se estivesse editando um arquivo. Eles serão executados se você salvar e sair. Ou cancelado se você sair sem salvar.
Para colar várias linhas no prompt de comando, abra aspas simples ou duplas antes de colar.
$ echo '
paste
...
...
'
Então você pode pressionar return para repeti-lo. Quando você seta para cima, todas as linhas que você colou estarão em uma linha editável.
Isso funciona desde que não haja uma citação no texto que você cola.
Em uma janela do editor de texto, use os seguintes atalhos para copiar texto sem \ n (o avanço de linha):
Em uma janela do navegador ou outra coisa em que o texto não é editável, use uma das duas técnicas:
Como é a seleção correta (sem \ n):
ls -al
Como é uma seleção incorreta (com \ n):
ls -al