Eu colo nomes de arquivos / etc no Terminal o tempo todo e, ocasionalmente, o conteúdo da área de transferência não é o que eu espero.
Muitas vezes, o resultado são várias centenas de linhas de texto (por exemplo, código-fonte) coladas no prompt de comando, provocando que Deus saiba apenas que maldade.
Existe alguma maneira de impedir que o bash execute cegamente o que eu colar? Eu gostaria que ele colasse o texto e deixe-me decidir depois se eu quero executá-lo.
Ctrl
vez deCmd
. Além disso, sem fazerset -o emacs
isso parece usar$EDITOR
. Obrigado! isto é perfeito.A solução mais simples é provavelmente usar um editor de texto como um buffer, onde você pode verificar novamente o conteúdo e copiar do editor de texto para o Terminal. Se você usar o TextEdit para isso, provavelmente desejará ter certeza de que está no modo de texto sem formatação ( menu Formatar → Criar texto sem formatação ; ⇧⌘T) para evitar problemas como links colados como links, não URLs.
A outra coisa a observar é que o Bash tentará executar tudo que precede um caractere de nova linha; portanto, se você estiver copiando um bloco de texto, convém garantir que sua seleção seja interrompida após o último caractere, em vez de incluir o final do linha.
Você quer isso:
Isso não:
Claro, se você está copiando coisas com novas linhas no texto ( ou seja, vários parágrafos), então você precisa editar manualmente a seleção.
fonte
Eu também entendi!
Minha solução é colar usando Launchbar 's gerente da prancheta, com a tecla de atalho
Cmd+\
. Isso traz uma lista de recortes recentes, permitindo que eu visualize o resultado antes de colar: se não vejo o conteúdo que esperava, pressione escape antes de liberar o Cmd. Também posso usar uma tecla de seta para 'inserir' um recorte de texto, permitindo que eu veja o conteúdo linha por linha.Acredito que a maioria dos lançadores faça isso - Alfred (addon powerpack) e Quicksilver (grátis), por exemplo.
fonte
Você pode procurar em um gerente da área de transferência. Eu uso um grátis, leve chamado Jumpcut . Isso me permite manter várias pranchetas e ver o que está armazenado nelas antes de realmente colar o conteúdo, tudo pelo teclado.
Existem muitos gerentes de área de transferência por aí, portanto, se o Jumpcut não flutuar no seu barco, talvez outro atenda melhor às suas necessidades
fonte
Use pasta entre colchetes .
Colar entre colchetes é um recurso em que o terminal informa ao shell que você colou algo em vez de apenas digitá-lo, para que o shell não possa executar o comando até pressionar Enter.
O Terminal.app suporta isso, mas nem todos os terminais.
Da mesma forma, nem todas as conchas também o suportam. A versão do bash que acompanha o OS X não oferece suporte à pasta entre colchetes (no momento da escrita, é v3.2.57).
No entanto, o zsh suporta pasta entre colchetes:
O Zsh é compatível principalmente com o bash (até os scripts provavelmente funcionarão, a menos que você use algum tipo de recurso realmente obscuro), e melhor de várias maneiras - por exemplo, ele ainda possui edição de comandos em várias linhas!
fonte
Você pode colocar esse pequeno script Bash em algum lugar do seu
PATH
:Se eu colocar esse conteúdo
/usr/local/pbexecute
por exemplo e torná-lo executável, eu poderia executar com segurançapbexecute
na linha de comando, o que solicitaria minha confirmação antes de executar o conteúdo da área de transferência.Uma abordagem alternativa é iniciar um editor de texto com o conteúdo da área de transferência de dentro do shell e executar automaticamente o conteúdo editado ao sair. Por exemplo:
fonte