2011-01-23 2 views

답변

1

시도합니다. 이 예상대로 작동합니다

function s:DoSomething() 
    echom "Inside DoSomething" 
    return "\<CR>" 
    " return "\n" also works " 
endfunction 
inoremap <expr> <CR> <SID>DoSomething() 
" If DoSomething function cannot be executed inside a textlock: " 
inoremap <CR> <C-o>:call <SID>DoSomething()<CR><CR> 

참고 nore, 그것은 <CR> 다시 교체되는 s:DoSomething에 의해 반환 방지 할 수 있습니다.

0

매핑의 오른쪽 부분은 <cr>으로 시작해야합니다. 이와 같이 :

:imap <cr> <cr>sometext 

그런 다음 재귀 적으로 매핑을 트리거하지 않습니다.

출처 : http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-Tutorial%28Part_1%29#Nested_.28recursive.29_maps

지도의 {우}가 {좌}로 시작하는 경우는, 다음은 반복적으로 대체되지 않습니다. 예를 들어, 다음 명령은 GQ에 대한 재귀지도를 작성하지 않습니다 : 당신은 그런 문제가 발생하지 않습니다 가능하고 *map을 생략

:nmap gq gq 
관련 문제