![단어 사이에 구두점을 포함하도록 Vim 자동 완성](https://linux55.com/image/46168/%EB%8B%A8%EC%96%B4%20%EC%82%AC%EC%9D%B4%EC%97%90%20%EA%B5%AC%EB%91%90%EC%A0%90%EC%9D%84%20%ED%8F%AC%ED%95%A8%ED%95%98%EB%8F%84%EB%A1%9D%20Vim%20%EC%9E%90%EB%8F%99%20%EC%99%84%EC%84%B1.png)
저는 현재 Tcl/Tk로 프로그래밍하고 있습니다. 제가 사용하고 있는 .entry,stdin
위젯 이 있어요.entry,stdout
슈퍼탭자동 완성을 위해. 라는 파일을 사용하고 있기 때문에 쉼표가 있습니다.그리드 플러스이것이 표준 Tk 위젯 기능에 액세스하는 방법입니다.
자동 완성을 사용하는 아이디어는 내가 입력 .entry,
하고 탭 키를 누르면 stdin
가능한 stdout
답변만 표시된다는 것입니다. 그러나 이렇게 하면 stdin
및 뿐만 아니라 파일에서 가능한 모든 단어가 표시됩니다 stdout
. 내가 시도할 때자동완성 팝업그리고새로운 복합 캐시그 이후에는 메뉴가 팝업되지 않습니다..entry,
,
Vim은 공백 없이도 단어 구분 기호로 해석하는 것 같습니다 . 내가 ,
바꾸려고 하면 _
Vim이 그것을 단어로 해석한다고 생각하기 때문에 작동합니다. 나는 이것이 플러그인 문제보다는 Vim의 단어 해석과 더 관련이 있다고 생각합니다. 그런데 이 동작을 바꾸는 것이 가능한지 궁금합니다.
답변1
iskeyword
Vim이 단어를 결정하는 방법을 제어하려면 옵션을 변경하세요 . 귀하의 경우에는 쉼표를 추가하여 Vim에게 귀하의 단어도 쉼표로 구성되어 있음을 알릴 수 있습니다:
:set iskeyword+=,
귀하의 요구 사항에 완벽하지는 않지만 기본값보다 낫다고 생각합니다.
:help iskeyword
그 동안 확인해 보세요.
답변2
나는 이것이 플러그인 문제보다 vim의 단어 해석과 더 관련이 있다고 생각합니다.
이는 사실이 아닙니다. 플러그인을 작성한 사람은 아마도 자신이 무엇을 하고 있는지 알고 있었고 이 동작은 우연이 아니라 의도적이었기 때문입니다. 불행하게도 이 경우에는 아무런 소용이 없습니다.
내장 완성(참조 :help E535
및모두 포함더 좋지 않을 것입니다. 실제로 사전에 있는 항목에 대한 구분 기호로 쉼표를 사용한다는 것을 알았습니다. 따라서 "this, what"을 추가하면 "this"와 "what"의 완성도 포함됩니다.” , 그러나 "이것, 무엇"은 아닙니다. [그러나 해결책은 Holygeek의 답변을 참조하십시오].
당신이 원하는 것은 불가능하지 않습니다 -omnicpp완전 플러그인C++의 ".", "->" 및 "::"에 대해 완료가 수행되는데 ","에 대해서는 안 되는 이유는 무엇입니까? 문제는 아마도 아무도 이 줄을 혼자서 작성하지 않았다는 것입니다...