vim에서 일치하는 괄호를 자동으로 만들려면 어떻게합니까?
열린 괄호를 입력하면 닫는 괄호가 자동으로 나타나고 커서가 사이에 있어야합니다. 가새 쌍을 벗어나려면 조합 Ctrl-j이 사용됩니다.
자동 버팀대 삽입을 제공하는 플러그인이 많이 있습니다. 그러나 그들은
- Ctrl-j중괄호 쌍을 뛰어 넘는 것과 다른 키 조합을 사용 하거나
- UltiSnips 키 바인딩을 방해합니다 .
다음은 예상대로 작동합니다
:inoremap ( ()<Esc>:let leavechar=")"<CR>i
:imap <C-j> <Esc>:exec "normal f" . leavechar<CR>a
그러나 이러한 설정을 사용하면 UltiSnips 스 니펫이 더 이상 작동하지 않습니다. 그래서 UltiSnips를 사용하여 닫는 괄호를 삽입했습니다.
inoremap ( (<C-R>=UltiSnips_Anon('($1)$0', '(')<CR>
이것은 거의 작동합니다. 일치하는 괄호가 삽입되고로 닫는 괄호를 건너 뛸 수 있습니다 Ctrl-j. 그러나 이것은 열린 브레이스 앞에 공간이있는 경우에만 작동합니다.
main () // works, the closing parentheses is added
main( // fails without a space
내 솔루션은 닫는 괄호를 뛰어 넘기 위해 다른 키 바인딩이 필요하거나 열려있는 괄호 앞에 공백이 필요합니다. 이 문제를 해결하는 방법?
참고 : 괄호를 예로 사용했습니다. 괄호, 중괄호, 대괄호 및 미만 기호로 작동해야하며 UltiSnips 플러그인을 방해하지 않아야합니다.
)다시 매핑c-j하면 작동 할 수 있습니다.