2011-09-26 3 views
7

파일에서 제거하려는 LEFT-TO-RIGHT OVERRIDE (U + 202D)와 같은 일부 유니 코드 문자가 포함 된 UTF-8 파일이 있습니다. Emacs에서는 기본적으로 숨겨져 있습니다 (올바르게 작동해야합니까?). "이국적인"유니 코드 문자를 표시하려면 어떻게해야합니까 (독일어 움라우트와 같은 "일반"유니 코드 문자의 표시를 변경하지 않고)? 그리고 나중에 그들을 어떻게 바꿉니 까? (예 : replace-string) C-X 8 Ret은 isearch/replace-string에서 작동하지 않습니다.Emacs에서 인쇄 할 수없는 유니 코드 문자를 강조 표시하고 바꾸기

Vim에서는 매우 쉽습니다.이 문자는 기본값 (예 : 버그 또는 누락 된 기능)으로 16 진수로 표시되며, 예를 들어 :%s/\%u202d//g으로 쉽게 제거 할 수 있습니다. 이것은 Emacs에서 가능해야합니까?

답변

9

M-x find-file-literally을 입력하면이 문자가 표시됩니다.

은 그럼 당신은 사용하여 제거 할 수 있습니다 보통

+1

나는'toggle-enable-multibyte-characters' 문자로 같은 결과를 얻었지만 문제는 모든 것을보고 싶지 않고 "이국적인"것만보고 싶다는 것입니다. 아직도, 나는 그들을 대체하는 방법을 모르겠다 (나는 그들을 대체 문자열로 입력 할 수 없다). – Christian

4

string-replace이 방법에 대해 :

M- 입력하여 당신은 킬 링의 상단에 일치시킬 U + 202D 문자를 넣어 :(kill-new "\u202d")합니다. 그런 다음 C-Y (예. query-replace) 또는 M-Y (예. isearch-forward) 중 하나와 함께, 다양한 검색 명령에 해당 문자열을 꺼낼 수 있습니다.

은 (추가 :

또한 단지 비 대화식 명령을 호출 할 수있는 대화 형 전화와 같은 키보드 입력의 어려움을 제시하지 않는 편집. 예를 들어, 다음과 같이 입력 M- : 다음과 :

(replace-string "\u202d" "") 

이것은 당신의 빔 버전과 다소 유사하다. 한 가지 차이점은 커서 위치에서 파일 (또는 좁혀진 영역)의 아래쪽으로 만 대체하기 때문에 모든 명령을 대체하기 위해 명령을 실행하기 전에 파일 (또는 압축 된 영역)의 맨 위로 가야 할 필요가 있습니다 성냥.

+1

이 작품, 고마워. 그러나 매우 불편합니다. 특히 발견 된 문자가 (검색 또는 바꾸기에서) 강조 표시되지 않기 때문에 더욱 그렇습니다. 어쩌면 다른 가능성이 있습니다. – Christian

관련 문제