입니다. VIM이 커서를 약자 확장 후 일부 위치에 배치하도록 지시하는 방법이 있습니까? 는 .gvimrcVIM 약어 커서 위치는
iabberv <? <?=|?>
이 같은 뭔가를 말과 파이프 문자가 자동으로 어디 있는지 커서를 배치 할. 나는이 경우에 사용하십시오
입니다. VIM이 커서를 약자 확장 후 일부 위치에 배치하도록 지시하는 방법이 있습니까? 는 .gvimrcVIM 약어 커서 위치는
iabberv <? <?=|?>
이 같은 뭔가를 말과 파이프 문자가 자동으로 어디 있는지 커서를 배치 할. 나는이 경우에 사용하십시오
빠른 해결책은 약자에 몇 가지 키 입력을 삽입하는 것입니다
iabbrev <? <?=?><Left><Left>
가 =
후 커서를 왼쪽으로 두 곳을 배치겠습니까.
이러한 방식으로 <End>
, <Home>
과 같은 다양한 이동 키를 사용하거나 <Esc>
으로 일반 모드로 돌아가서 일반적인 일반 모드 명령을 명령 할 수도 있습니다. 예는
이고 첫 번째 예와 동일합니다. 약어로 확장하면 공백이 하나 더 생깁니다.
은 약자로
또는 <BS>
(백 스페이스)을 사용하여 제거 할 수 있습니다.
<C-]>
으로 확장하면 공간이 없습니다.
보정이 가장 잘 .vimrc
에 넣어
func Eatchar(pat)
let c = nr2char(getchar(0))
return (c =~ a:pat) ? '' : c
endfunc
: 약어가 처음 확장되기 때문에, 그리고 공간이 삽입 된 후에는 도움 (map.txt)에서 발견되는 작은 기능이 필요합니다. 이제 다음과 같은 약자들이 의도로 완벽하게 작동합니다
:iabbrev <silent> <? <?=?><Left><Left><C-R>=Eatchar('\s')<CR>
그것은 조금 지저분하지만 공백을 제거하는 외부 함수 호출을 가지고 있으며 잘 작동합니다.
는 lh-map-tools으로 수행 할 수 있습니다
"
" in {rtp}/ftpluvin/vim/vim_snippets.vim
inoreab <buffer> <silent> if
\ <C-R>=InsertSeq('if', 'if!cursorhere!\nendif!mark!')<CR>
다른 플러그인은 유사한 기능을 제공합니다.
원하는 것은 스 니펫입니다. 나는 저격자를 사용한다.
투표까지, 팁 주셔서 감사합니다 Daenyth – ivan73
당신은 살펴 보셔야을 [UltiSnips] (https://github.com/SirVer/ultisnips)에, 그것은 단지 멋지다! – aymericbeaumet
나는 iabbrev =?> HHA을 시도 있지만 "="문자 :) 내가 을 두어야을 삭제?를 이게 바로 문제를 제외하고 내가 원하는 것입니다. –
ivan73
대답하기 전에 ''기능을 테스트하지 않으 셨다니 죄송합니다. 적절한 해결 방법으로 편집했습니다. –
progo
쿨,이 대답 : 나는 이런 식으로 사용하고 받아들이 작동합니다 'iabbrev =$?>가 HHA가 = Eatchar ('\ s의') ' –
ivan73