2011-09-09 3 views
7

저는 VIM이 PyDev와 비슷한 코드 완성을 얻을 수있는 방법을 찾기 위해 웹 사이트를 열었습니다. 그것은 가능한 것처럼 보이지 않는다!VIM을 사용한 내성적 인 코드 완성? ... 또는이 기능이있는 다른 경량 편집기?

-이 링크에 제안 된 omnicompletion을 사용하려고 시도했습니다 : http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/.

저는 문제를 완화하기 위해 여러 개의 애드온을 시도했지만 아무런 효과가 없었습니다.

"omnicomplete"기능은 내가 찾고있는 것이 아닙니다. 작업중인 파일의 모든 단어를 가져 와서 내가하는 일을 시도하고 완료하는 데 사용합니다.

import numpy 
a_single_array = range(100) 
np.a#[then I hit cntrl+n to code complete] 

그것은 가능한 완료로 "a_single_array"을 뱉어 것입니다 -하지만 그건 말도 예를 들어 내가 쓴 경우! 그건 "numpy.a ..."에 대한 유효한 완료가 아닙니다.

무엇이 문제입니까? 모든 addon은 당신이 속한 폴더에서 dir (찾고자하는 작업)을 실행 한 다음 출력을 필터링하는 것입니다! 이것은 그렇게 어려운 일이 아닙니다! (나는 또한 당신이 현재 편집하고있는 파일을 읽고 이름 변경을 기록하기 위해 그것을 필터링해야만한다고 생각한다. 그러나 그것은 거의 그것이다!)

그것이 얼마나 쉬울 지 말하기 ... 이미 만들어져있는 것이 없다면, 직접 대본을 쓰려고 생각하고있었습니다! 그걸하는 방법에 대한 가이드가 있습니까?

답변

7

아니요, 전능적 인 완성 기능이 당신이 찾고있는 것입니다. 당신은 <C-n> 대신 <C-x><C-o> 사용하는

: <C-n> & <C-p> 메소드/속성 이름을 완료 (후 각각 커서 전) 버퍼에서 단어

  • 유형 <C-x><C-o>으로 완료

    • 유형을

    링크 된 기사에 구체적으로 설명되어 있습니다.

    VIM은 옴니 완성을 도입했습니다 - Python을 인식하도록 구성되어 있으면 VIM이 도입되었습니다 (그렇지 않은 경우이 기능은 플러그인에 불과합니다). Ctrl + x Ctrl + o는 다른 IDE와 마찬가지로 드롭 다운 대화 상자를 엽니 다. 전체 Pydoc이 분할 창에 표시됩니다.

  • +0

    감사합니다. 잘못된 버튼을 눌렀습니다. 필자는 여전히 찾고있는 기능을 사용하는 데 어려움을 겪고 있었고 Spyder (실제로는 꽤 가벼운 IDE ... 적어도 Eclipse와 비교했을 때)로 옮겼습니다. –

    1

    저는 Vim에서 파이썬을위한 다양한 완성 옵션에 대해 잘 모릅니다. 하지만 당신은 당신이 잘과 같이 공부하고 기존 중 하나를 수정하는 것이 좋습니다 거라고 자신의 롤하려는 경우 :

    http://www.vim.org/scripts/script.php?script_id=1542 또한

    , 당신의 omnicompletion가하고있는 모든 현재 파일의 목록 단어 인 경우 Python 특정 완료를 위해 제대로 설정하지 않아도됩니다. . . . 특수화 된 파이썬 완성 시스템이 얼마나 좋은지 잘 모르겠지만 현재 파일 외부의 Python 유닛을 기반으로 경쟁하고 있습니다. . . .

    4

    Ctrl 키 N 인서트 완성된다.

    Ctrl 키 X Ctrl 키 O 옴니 완성된다. 또한 SuperTab을 시도 할 수

    inoremap <C-Space> <C-x><C-o> 
    

    :

    나는 에 Ctrl 키공간을 omnicompletion 매핑.

    관련 문제