2009-10-05 6 views
1

나는 약간의 악센트가있는 파일을 가지고 있으며, VIM은 그것들을 "~ V"문자로 표시합니다. "od -bc"명령은 문자가 charcode 226임을 나에게 알려줍니다. VIM을 사용하여 문자를 대체하려고합니다. 하지만 캐릭터와 일치시킬 수는 없습니다. 어떻게하면 될까요?정력과 인식 할 수없는 문자

옵션 질문 : VIM이 현재 파일을 해석하는 데 사용되는 charset을 어떻게 나타낼 수 있습니까?

답변

2

당신은 패턴과 정규 표현식에 정력 설명서에서, 다음과 같은 형식을 사용할 수 있습니다 : 그래서 당신은 파일에 전 세계적으로 공백 문자 (226)를 대체 할 같은 것을 할 수 있어야한다

ordinary atom 
magic nomagic matches 
\%d \%d match specified decimal character (eg \%d123 
\%x \%x match specified hex character (eg \%x2a) 
\%o \%o match specified octal character (eg \%o040) 
\%u \%u match specified multibyte character (eg \%u20ac) 
\%U \%U match specified large multibyte character (eg \%U12345678) 

:

후자에 관해서는
:%s/\%d226/ /g 

은, 당신이 할 경우 :

:set encoding 

당신은 볼 수 있습니다 오 같은 utput : 예 : "이상한"문자를 다루는

encoding=latin1 
+0

슬프게도 VIM은 "E71 : 잘못된 문자 다음에 \ %"를 출력합니다. – Alsciende

+0

E486 : 패턴을 찾을 수 없습니다 (예상). 그러나 'd'를 생략하면 (예 : s/\ % 226 /), E71을 얻습니다. 정확히 어떤 명령을하려는거야? –

+0

입력 : % s/\ % d226/é/g – Alsciende

1

한 아주 간단한 방법은 다음과 같습니다

  1. 이 잘못된 문자 (들) 시각 (V)
  2. 는 을 버퍼를 홱 잡아를 선택 "함께 그것을 - 편지 R :%s/<ctrl-r>"/something-else/g

누르면됩니다 <ctrl-r> Ctrl 키와 :로 교체

  • 버퍼를 명령 줄에 복사하여 불쾌한 문자를 효과적으로 s/// 작업에 넣습니다.

  • 관련 문제