2012-04-10 2 views
1

닫는 괄호의 탭을 누르면 커서가 오른쪽으로 이동하도록 vim을 설정하고 싶습니다. 자동 완성 괄호와 함께 사용할 때 유용합니다. 여기vim에서 닫기 괄호 건너 뛰기

는 지금까지 (작동하지 않는) 한 것입니다 : 내가 잘못 뭐하는 거지

inoremap <expr> <Tab> strpart(getline('.'), col('.')-1, 1) == "}" ? "\<Right>" : "\<Tab>" 
inoremap <expr> <Tab> strpart(getline('.'), col('.')-1, 1) == ")" ? "\<Right>" : "\<Tab>" 
inoremap <expr> <Tab> strpart(getline('.'), col('.')-1, 1) == "]" ? "\<Right>" : "\<Tab>" 

?

+0

닫는 구분 기호를 누르면 대부분의 자동 닫기 플러그인이이 작업을 수행합니다. 그들 중 한 명을보고 그들이 어떻게하고 있는지를보고 닫는 구분 기호 대신 Tab을 사용하기를 바랄 수도 있습니다. –

답변

2

하나의 키에 대해 작동하는 매핑은 하나만있을 수 있습니다 (버퍼 - 로컬 (버퍼 당 하나)와 글로벌 하나 이상을 정의 할 수 있지만 동시에 작동하지는 않습니다) 그 :

inoremap <expr> <Tab> stridx('])}', getline('.')[col('.')-1])==-1 ? "\t" : "\<Right>" 

strpart()를 사용하지 마십시오는 string[idx1:idx2] (:은 선택 사항이지만 적어도 하나는 있어야합니다, idx1의 모든 idx2), 입력 덜하고 더 읽을 잘 작동합니다.

+0

감사! 너 락! 내가 지금 가지고있는 유일한 문제는 커서가 오른쪽으로 끝까지가는 경우 탭 키가 탭을 삽입하지 않는다는 것입니다. ( – zfedoran

+0

줄 끝 탭 문제 해결 : https://gist.github.com/2356736 – zfedoran