2012-03-31 2 views
0

비슷한 답변이 있지만 한 줄 더 있습니다. vim의 블록 끝에있는 세미콜론을 자동으로 추가합니다.

func(function(){ 
|}) 

내가에 ;를 추가 할 수

func(function(){|}) 

그때 내가 Enter 키를 누릅니다 내가

를 얻을 : 난 그냥 자동으로 (파이프 == 커서)와 같은 자바 스크립트 블록에 세미콜론을 추가 할 그 라인 끝 :

func(function(){ 
|}); 

자동으로?

답변

0

완전히 확실하지 나는 완전히^다음 문자를 입력하는 동안 컨트롤 키를 누른 상태에서 의미 ...

:1$s/|/^v^m/g 

당신의 질문을 이해하지만. 하지만 동시에 세미콜론을 추가 할 수는 없습니다.

:1,$s/)$/);/g 
1

나는 몇 년 전에 endline.vim에 대한 플러그인을 작성했습니다. 기본 매핑은 대부분 GVim 용이지만 터미널 vim에서 유용하도록 쉽게 오버라이드됩니다. 그것은 일부 keymapping (기본적으로 <S-CR>)을 만드는 구조가 아직없는 경우 줄 끝을 추가하고 다음 줄로 이동합니다. 일반 모드에서는 문자가 추가되지만 커서는 움직이지 않습니다. 이 플러그인 등 가까운 따옴표, 괄호를 삽입 autoclose.vim,

0

내가 사용하는 것처럼 다음 스크립트를 사용하여 특히, 처리 할 세미콜론/콜론의 지루함 훨씬 더 쉽게, C 스타일의 언어와 파이썬에 특히 도움이된다 매핑은 <C-Return> 타격시 {} "제대로"합니다 (TextMate를 방법)을 엽니 다 :

inoremap <C-Return> <CR><CR><C-o>k<Tab> 

또한 세미콜론 추가 수정할 수 :

inoremap <C-Return> <C-o>m`<C-o>A;<C-o>``<CR><CR><C-o>k<Tab> 
1

당신은 cosco.vim을 제공한다을 시도 : https://github.com/lfilho/cosco.vim

+0

제외 cosco는 쉼표 또는 세미콜론이 순서인지 여부를 추측하는 데 열악한 것으로 나타납니다. – dev

+0

엔진 개선에 도움이되는 문제입니다. 그것은 오픈 소스 플러그인 afterall ... :-) – Luiz

+0

내 이전 의견을 되돌아 보면, 그것은 약간 가혹한 느낌. 그것은 내 의도가 아니었다 :). 자바 스크립트와 같은 언어에 대한 상황에 맞는 완료는 vim 플러그인에서 요청하기에는 너무 많고 ternj와 같은 도구가 없으면 매우 어렵습니다. 나는 당신이 이것에 넣은 노력에 가장 감사하고 있습니다. – dev

관련 문제