파이프 (|) 뒤에 삽입 된 공백 뒤에 공백 문자 [중복]


13

Mac에서 파이프 (|) 문자와 공백 문자를 사용할 때 보이지 않는 문자가 사이에 삽입되는 경우가 종종 있습니다.

이것은 터미널을 사용할 때 특히 성가시다. 명령을 무효화하기 때문이다.

iterm2에 다음을 입력하면 종종 다음과 같은 결과가 나타납니다.

ls | cat
zsh: command not found:  cat

나는 내 이전 명령을 취득하고 제거 사이의 공간을 다시 삽입 할 수있는 위쪽 화살표 키 충돌하는 경우 |cat, 명령이 작동합니다.

복사하면 작동하는 명령과 작동하지 않는 명령을 다음과 같이 파일에 붙여 넣습니다.

non-working: ls | cat
working: ls | cat

Hex Fiend 에서 열고 다음을 보여줍니다.

non-working: ls | cat
working: ls | cat

또한 SublimeText2에서 대괄호 ( []) 와 공백을 사용하여 동일한 종류의 문제가 발생했습니다 . 따라서 iTerm2의 문제는 믿지 않습니다.


1
이와 관련하여 터미널에 보이지 않는 문자를 표시하는 방법이 있습니까? 예를 들어 텍스트 편집기에서 회색 글 머리 기호로 표시하는 방식과 비슷합니까?
jelovirt

답변:


14

스페이스 바를 계속 누르고 있으면 참조를 통해 HTML로 알려진 비 공백 공간 이 삽입됩니다  . 이 비 공백 공간은 "OS X"의 "OS"및 "X"와 같이 특정 단어를 함께 붙이려는 텍스트 처리에 유용합니다.

분명히 이것은 유니 코드 문자 ( 00A0)이므로 bash보기 _cat( _비 공백 공간은 어디에 있는지 ) 와 같은 대부분의 명령 줄 유틸리티는 실패 하고 Hex Fiend는 잘못된 표현을 사용합니다. 반면에 일부 편집자는 자동으로 제거합니다 (예 : 여기이 편집자). 다른 편집자에게는 특별한 표현이 있습니다 (예 : 공백 대신 점을 표시하는 TextMate).

두 가지 해결책이 있습니다.


이것은 실제로 문제인 것으로 보입니다. 내가 전에 이것을 잡지 못했다는 것을 믿을 수 없다. 해결책은 수정 자 와 결합 된 공간을 일반 공백 문자 로 다시 매핑하는 것 입니다.
nifty

터미널 디스플레이를 nbsp로 반전 문자로 만들 수 있습니까? 잘못 입력하면 즉시 볼 수 있습니까?
forthrin

@forthrin 좋은 질문입니다. ASCII가 아닌 문자를 올바르게 표시 할 수 없도록 로케일 설정을 망치는 것 외에는 그렇게 할 수있는 방법이 없습니다.
slhck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.