Vim은 움라우트를 단어 문자로 사용하지 않습니다


9

abücd를 들어 dw앞에 와 같은 것을 포함하는 독일어 텍스트를 쓰면 단어 문자로 ab해석되지 않기 때문에 만 삭제합니다 ü.

reStructuredText를 편집하면

iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_

그것은 움라우트가 표시되지 않은 이유를 설명하지만 이것이 어디서 왔는지 이해하지 못합니다. gVim을 열면이 값이

iskeyword=@,48-57,_,192-255

어디에서 왔을 까?


3
에 넣으 set encoding=utf-8십시오 .vimrc.
cuonglm

그것은 이미 내 안에 있고 .vim/vimrc:set enc?에게 준다 utf-8. 와 동일합니다 fenc. 여전히 작동하지 않습니다.
Martin Ueding

:set iskeyword&되어 ü여전히 단어의 일부로 인식하지?
ryuichiro

iskeyword ( set iskeyword) 로 표시하십시오 . 이 같은해야 "@,48-57,_,128-167,224-235"또는 "@,48-57,_,192-255". Vim 또는 Vi를 사용하고 있습니까? (Vi ( "@,48-57,_")의 기본값은 ü를 인식하지 못합니다; Vim의 기본값은 괜찮습니다)
JJoao

1
gVim을 사용하고 있습니다 iskeyword=@,48-57,_,192-255. 이제는 새로운 Vim 인스턴스에서 마술처럼 작동합니다. 이상합니다. 좀 더 신중하게 관찰해야합니다.
Martin Ueding

답변:


5

@문자는 (C 함수)가 참인 iskeyword모든 문자를 포함 isalpha()합니다. 현대 (최근 20 년) libc 구현에서는 유니 코드 문자도 찾습니다.

두 번째 iskeyword97-122(az)와 64-90(AZ)를 사용하는데, 여기에는 다양한 분음 부호가있는 모든 변형이 포함되지 않습니다 (예 : 움라우트 / diaeresis / trema).

그래서 솔루션을 대체하는 것입니다 97-12264-90함께 @.

이 펑키 iskeyword는 LISP 구문 파일에서 비롯됩니다. rst구문 파일은 코드 블록을 강조하는 다른 구문 파일들을 포함하고 있습니다.

다행히 g:rst_syntax_code_list변수 에 포함 할 언어를 설정할 수 있습니다 . 기본값은 다음과 같습니다.

let g:rst_syntax_code_list = ['vim', 'java', 'cpp', 'lisp', 'php', 'python', 'perl']

reStructuredText 파일에서 LISP 구문 강조가 필요하지 않을 가능성이 높으므로이를 제거 할 수 있습니다. vimrc 파일의 아무 곳에 나 추가하면됩니다. 정의 된 경우 구문 파일은 자체 값을 정의하는 대신 해당 값을 사용합니다.

제 생각에는 아마도 다음을 사용하고 싶을 것입니다.

let g:rst_syntax_code_list = []

다른 구문 파일이 일으키는 펑키 부작용에 대해 누가 알았습니까?


멋지다, 고마워! 지금까지 우분투에서는 이런 일이 발생하지 않았습니다. 페도라 22에서만 발생했습니다. 아마도 구문 파일이 약간 다릅니다. 지금 작동합니다.
Martin Ueding

@영숫자 문자를 나타내는 힌트 가 정말 도움이되었습니다.
Zelphir Kaltstahl

1

예를 들어 마크 다운 파일에서 다른 언어의 문법을 인라인하면 해당 언어의 설정이 마크 다운 구문의 설정을 재정의하는 것 같습니다. 다음을 사용하여 그러한 경우인지 확인할 수 있습니다.

:verbose set iskeyword?

이 문제를 해결하기 위해 마크 다운 파일을 입력 할 때마다 자동 명령이 실행되도록 정의 할 수 있습니다 (다른 언어도 가능).

autocmd BufEnter,BufNewFile *.md set iskeyword=38,42,43,45,47-58,60-62,_,@

이것을 내 .vimrc문제에 해결하면 나에게 문제가 해결되었습니다. 내가 사용 된 vim-pandoc구문과 인라인 언어를 포함 racket, python, sh일부. 다른 언어의 파일을 입력 할 때 구문 파일이 키워드를 설정해야하기 때문에 마크 다운 파일을 남기기위한 자동 명령을 정의 할 필요가 없다고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.