단어 사이에 구두점을 포함하도록 Vim 자동 완성

단어 사이에 구두점을 포함하도록 Vim 자동 완성

저는 현재 Tcl/Tk로 프로그래밍하고 있습니다. 제가 사용하고 있는 .entry,stdin위젯 이 있어요.entry,stdout슈퍼탭자동 완성을 위해. 라는 파일을 사용하고 있기 때문에 쉼표가 있습니다.그리드 플러스이것이 표준 Tk 위젯 기능에 액세스하는 방법입니다.

자동 완성을 사용하는 아이디어는 내가 입력 .entry,하고 탭 키를 누르면 stdin가능한 stdout답변만 표시된다는 것입니다. 그러나 이렇게 하면 stdin및 뿐만 아니라 파일에서 가능한 모든 단어가 표시됩니다 stdout. 내가 시도할 때자동완성 팝업그리고새로운 복합 캐시그 이후에는 메뉴가 팝업되지 않습니다..entry,

,Vim은 공백 없이도 단어 구분 기호로 해석하는 것 같습니다 . 내가 ,바꾸려고 하면 _Vim이 그것을 단어로 해석한다고 생각하기 때문에 작동합니다. 나는 이것이 플러그인 문제보다는 Vim의 단어 해석과 더 관련이 있다고 생각합니다. 그런데 이 동작을 바꾸는 것이 가능한지 궁금합니다.

답변1

iskeywordVim이 단어를 결정하는 방법을 제어하려면 옵션을 변경하세요 . 귀하의 경우에는 쉼표를 추가하여 Vim에게 귀하의 단어도 쉼표로 구성되어 있음을 알릴 수 있습니다:

:set iskeyword+=,

귀하의 요구 사항에 완벽하지는 않지만 기본값보다 낫다고 생각합니다.

:help iskeyword그 동안 확인해 보세요.

답변2

나는 이것이 플러그인 문제보다 vim의 단어 해석과 더 관련이 있다고 생각합니다.

이는 사실이 아닙니다. 플러그인을 작성한 사람은 아마도 자신이 무엇을 하고 있는지 알고 있었고 이 동작은 우연이 아니라 의도적이었기 때문입니다. 불행하게도 이 경우에는 아무런 소용이 없습니다.

내장 완성(참조 :help E535모두 포함더 좋지 않을 것입니다. 실제로 사전에 있는 항목에 대한 구분 기호로 쉼표를 사용한다는 것을 알았습니다. 따라서 "this, what"을 추가하면 "this"와 "what"의 완성도 포함됩니다.” , 그러나 "이것, 무엇"은 아닙니다. [그러나 해결책은 Holygeek의 답변을 참조하십시오].

당신이 원하는 것은 불가능하지 않습니다 -omnicpp완전 플러그인C++의 ".", "->" 및 "::"에 대해 완료가 수행되는데 ","에 대해서는 안 되는 이유는 무엇입니까? 문제는 아마도 아무도 이 줄을 혼자서 작성하지 않았다는 것입니다...

관련 정보