Muitas vezes, no meu Mac, quando eu uso o caractere de barra vertical (|) seguido por um caractere de espaço, um caractere invisível será inserido no meio.
Isso é especialmente irritante ao usar o terminal, pois torna os comandos inválidos.
Se eu digitar o seguinte em iterm2, geralmente recebo o seguinte:
ls | cat
zsh: command not found: cat
Se eu pressionar a tecla de seta para cima para obter meu comando anterior e remover e reinserir o espaço entre |
e cat
, o comando funcionará.
Quando copiar, cole os comandos de trabalho e não trabalho em um arquivo, desta forma:
non-working: ls | cat
working: ls | cat
e abra-o no Hex Fiend, ele mostra o seguinte:
non-working: ls | cat
working: ls | cat
Também experimentei o mesmo tipo de problema no SublimeText2 usando colchetes ( []) seguido de um espaço. Portanto, não acredito que seja um problema com o iTerm2.
Respostas:
O que acontece é que você continua pressionando ⌥ a barra de espaço, que insere um espaço sem quebra , conhecido em HTML através da
referência. Esse espaço ininterrupto é útil no processamento de texto em que você deseja que certas palavras se juntem, como "OS" e "X" em "OS X".Obviamente, esse é um caractere unicode (
00A0
) e, portanto, a maioria dos utilitários de linha de comando falhará, como a visualização do bash_cat
(onde_
é o espaço sem quebra) e o Hex Fiend apenas usando uma representação incorreta para ele. Alguns editores, por outro lado, simplesmente o retiram silenciosamente (por exemplo, este editor aqui), enquanto outros ainda têm uma representação especial para ele (por exemplo, TextMate mostrando um ponto em vez do espaço em branco).Existem duas soluções:
Preste mais atenção para deixar ir o ⌥ tecla ao pressionar a barra de espaço. A propósito: acontece comigo o tempo todo também.
Desative a combinação completamente: Como desativar a combinação de teclas Option-Space para espaços sem quebra?
fonte
⌥
modificador para um caractere de espaço regular.