문제

나는 최근에 사용하기 시작했 Vim 로 내의 텍스트 편집기와 현재 일하는 내 자신에 사용자 지정할 수도 있습니다.

나 키보드 매핑을 할 수있는 꽤 많은 것을,하지만 당분간 나는 그들이 사용하는 종류의 조각이 시설을 거의 독점적으로 이용한다.

그래서 예를 들면,입력하는 경우 def{TAB} (:imap def{TAB} def ():<ESC>3ha),확장기:

def |(): # '|' represents the caret

이상적으로 작동하지만,저는 그것을 찾기 때문 Vim 대기 전체 명령하는 동안 나는 단어를 입력하이 포함된"def"지 확장에 관심이 있습니다.

  • 는 방법이 있 이를 방지하기 위해 또는 이 기능을 사용하여 더욱 효과적으로 이?
  • 은 다른 Vim 기능에 더 적합한 이?

후에 빠르게 살펴보 SnippetsEmu, 처럼 보인다,그것은 최고의 옵션을 훨씬 더 쉽게 사용자 정의하는 나보다 먼저 생각했다.

을 계속 이전를 들어:

:Snippet def <{}>():

정의하면,당신은 확장할 수 있습니다 당신의 조각이 입력하여 def{TAB}.

도움이 되었습니까?

해결책

SnippetsEmu 유용한 조각 플러그인입니다.

다른 팁

Snipmate 같은 texmate:) http://www.vim.org/scripts/script.php?script_id=2540

비디오:http://vimeo.com/3535418

snippet def 
     """ ${1:docstring} """
     def ${2:name}:
         return ${3:value}

으로 다른 제안(하지만 약간씩 다르다)사용하여 vim 의 기능 내장:

:iabbrev def def(): #<LEFT><LEFT><LEFT><LEFT><LEFT>

지금 할 때마다 당신이 입력 def 뒤에 공백이 있거나 다른 단어가 아닌 문자,그것은 확장됩니다으로 동일 당신이 무엇을 주었으로의 출력 SnippetsEmu(공간에서 오는 공간을 입력해 트리거 완료).

이 방법을 고통을 하지 않은""지연 문제 발생을 사용:inoremap,내장으로 vim.에 대한 자세한 정보는 이 기능을 살펴 보 :help abbrev.

당신이 우려 할 수 있는 것에 의해 실행되는 공간이지 않는 탭을 것입니다 불필요하게,그러나 일반적으로 vim 은 똑똑해 트리거할니다.문제할 수 있습 또한 완화 활성화하여 약자만을 위해 특정한 파일 유형(예를 들어,python):

au filetype python :iabbrev ... etc

Snip[ets](관리자|Emu|동료|.vim)은 물론 또한 완벽한 솔루션이지만,그것을 알고 있어야의 대안(특히 그들이 내장되어에서).

는 경우 SnippetsEmu 이 너무 무거운 야망을 위해 당신이 무엇을 필요(그것이 나를 위해),나는 플러그인을 관리하는 조각에 따라 파일 형식.그것을 심지어는 탭을 완료할 때 조각!:)

여기에서 그것을 얻을: 조각.vim

UltiSnips.거기에 좋은 설명하는 기사를 왜 선택할 수 있습니다 UltiSnips: 왜 UltiSnips?

나는 사용 하지 않은 다른 조각 플러그인;기로 결정했을 뛰어들과 함께 하는 듯한 모 것을 수용할 수 있으로 나를 더 얻 Vim 기술과 많은 작업을 수행할 수 있기를 원한 것들입니다.

에 의해 언급했듯이 MDCore, SnippetsEmu 인기 있는 Vim 스크립트는 않습니다.해야 하는 경우에만 확대(움직이지 않고 다시 검색),사용할 수 있는 표준 :ab[breviate] 명령입니다.

:ab[breviate] [<expr>] {lhs} {rhs}
        add abbreviation for {lhs} to {rhs}.  If {lhs} already
        existed it is replaced with the new {rhs}.  {rhs} may
        contain spaces.
        See |:map-<expr>| for the optional <expr> argument.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top