2011-11-02 2 views
4

후 커서 위치를 중앙에 어떻게 XML 태그를 반향하는 간단한 기능을 사용하려 그러나 출력 후, 커서는 태그 뒤에 있습니다. 예 : <TAG> </TAG> _CURSOR_VIM 기능은 태그를 생성, 출력

어떻게 커서 위치를 동적으로 설정할 수 있습니까? 나는 매우 다음과 같은 솔루션을 좋아하지 않아

답변

2

하지만 간단한 솔루션에 대해 생각하지 수 있기 때문에 나는 약간의 문제를 탐구 하였다

func! GetTag() 
    call inputsave() 
    let g:tagName = input("Tag: ") 
    call inputrestore() 
endfunc 

imap \t <esc>:call GetTag()<CR>:exe "normal! i<".tagName."></".tagName.">"<CR>bba 

그것은 잘 작동합니다, 당신은 문서를 here를 읽을 수 있습니다 (최신 예 참조). 그건 그렇고, 당신은 XML 또는 HTML을 많이 쓸 계획이라면 나는 다음과 같은 플러그인에서 살펴 봐야 당신을 제안 :

그들은 저장합니다 너는 많은 타이핑을한다.

2

지도를 좀 더 멋지게 사용하여 구현할 수 있습니다.

function! GetTag() 
    let tag = input("Tag: ") 
    execute "normal! i<".tag."></".tag.">" 
    execute "normal! " . repeat('h', strlen(tag)+2) 
endfunction 

inoremap \tag <C-o>:call GetTag()<enter> 

그러나 이러한 일을 대신하는 플러그인을 사용하면 시간을 절약 할 수 있습니다.

편집 : for 루프가 불필요하게 제거되었습니다.

+0

오 좋은 구현 :) – lucapette