2012-10-11 4 views
1

한 단어 뒤에 공백없이 스 니펫 (snipMate 사용)을 사용하려고 시도 할 때마다 작동하지 않습니다. 그래서 나는 공간을 치고, 발췌 문장을 입력하고, 탭을 누르고, 공간을 제거해야합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 스 니펫이 단어 바로 뒤에 작동하도록하는 방법이 있습니까? 여기 내 말은 무엇 :단어 바로 다음에 발췌 문장을 가져 오는 방법이 있습니까?

것은 우리가 내 조각이있다 가정 해 봅시다 :

snippet test 
     <some code>${1}</code>${2} 

일반적인 사용 :

hello test[TAB] 

이로 바뀝니다 :

hello <some code>|</code> 

을하지만 난 시도하는 경우 이 :

hellotest[TAB] 
이로가집니다

:

hellotest_____ 

_되는 공백. 이 문제를 해결할 수있는 방법이 있습니까?

답변

2

Vim 약어는이 문제를 해결하는 데 도움이되는 3 가지 유형 (전체 ID, 최종 ID 및 비 ID, CPP :help abbreviations) 일 수 있습니다. 그러나 snipMate는 스 니펫 이름에 공백 문자가 아닌 모든 문자를 허용하므로 분리를 위해 공백에 의존해야합니다.

let word = matchstr(getline('.'), '\S\+\%'.col('.').'c') 
:

당신은 plugin/snipMate.vim에서 조각 이름의 구문 분석을 수정해야, 그것은 기능 TriggerSnippet()에 있어요

0

당신이 묻는 것만 큼 효과가있는 것은 아닙니다. 당신은 근원을보고 거기에서 변화를해야 할 것입니다, 나는 두려워합니다.

또한 제한 사항으로 볼 수 있지만 분명히 버그가 아니므로 변경 사항이 아니라 수정 사항이됩니다. 그러나 내 충고는 설계대로 사용하는 것이 좋습니다. 다른 단어의 일부인 경우에도 트리거가 작동하는 것은 전혀 이해가되지 않습니다. 공백은 아이디어와 단어를 분리하는 가장 자연스러운 방법입니다.

관련 문제