Muy a menudo, en mi Mac, cuando uso el carácter de barra vertical (|) seguido de un carácter de espacio, se inserta un carácter invisible en el medio.
Esto es especialmente molesto cuando se usa el terminal, ya que invalida los comandos.
Si escribo lo siguiente en iterm2, a menudo obtengo lo siguiente:
ls | cat
zsh: command not found: cat
Si presiono la tecla de flecha hacia arriba para obtener mi comando anterior, y luego elimino y reinserto el espacio entre |
y cat
, el comando funcionará.
Cuando copio, pego los comandos de trabajo y no de trabajo en un archivo, así:
non-working: ls | cat
working: ls | cat
y abrirlo en Hex Fiend muestra lo siguiente:
non-working: ls | cat
working: ls | cat
También he experimentado el mismo tipo de problema en SublimeText2 usando los corchetes ( []) seguidos de un espacio. Así que no creo que sea un problema con iTerm2.
Respuestas:
Lo que sucede es que sigues presionando ⌥con la barra espaciadora, que inserta un espacio ininterrumpido , conocido en HTML a través de la
referencia. Este espacio sin interrupciones es útil en el procesamiento de texto donde desea que ciertas palabras se peguen, como "OS" y "X" en "OS X".Obviamente, este es un carácter unicode (
00A0
) y, por lo tanto, la mayoría de las utilidades de la línea de comandos fallarán, como bash vista_cat
(dónde_
está el espacio sin interrupción) y Hex Fiend solo usa una mala representación para ello. Algunos editores, por otro lado, simplemente lo eliminarán en silencio (por ejemplo, este editor aquí), mientras que otros incluso tienen una representación especial (por ejemplo, TextMate muestra un punto en lugar del espacio en blanco).Hay dos soluciones:
Presta más atención para soltar la ⌥tecla al presionar la barra espaciadora. Por cierto: a mí también me pasa todo el tiempo.
Deshabilite la combinación por completo: ¿Cómo deshabilitar la combinación de teclas Opción-Espacio para espacios que no se rompen?
fuente
⌥
modificador a un carácter de espacio regular.