2014-11-13 4 views
4

지난 주까지 RubyMine을 사용하여 Rails를 개발했습니다. vim 플러그인이 있다는 것을 알고 있지만 vim 및 tmux로 마이 그 레이션을 마이그레이션하는 중입니다. 마우스를 계속 사용하고 싶지 않고 VIM을 사용하면 유연성이 훨씬 향상됩니다. 아래의 첫 번째 스크린 샷에서 "해석 된 자동 완성"기능을 제외한 거의 모든 기능에 대한 플러그인 및 해결 방법을 발견했습니다. RubyMine은 전체 레일 애플리케이션을 해석하고 관련성이 높은 제안을 제공합니다 (알 수 있듯이 해당 클래스의 클래스 및 메소드와 이에 포함 된 모듈을 보여줍니다). 그러면 Object에서 사용할 수있는 수업. 또한 메소드 서명이있을 때이를 보여줍니다.RubyMine에서 Vim으로 마이그레이션 - 해석 완료 자동 완료

또한 두 번째 스크린 샷에서 RubyMine이 핵심 Ruby 클래스에 대해 자동 완성 기능을 제공하는 방법을 확인할 수 있습니다.

맨 아래 스크린 샷과 비교하십시오. 완료되었지만 찾고있는 것을 찾을 수있는 방법이 없습니다. ctags, YouCompleteMe, vim-rails, vim-ruby을 사용 중이며 차이가 있는지 확인하기 위해 eclim도 설치하려고했습니다.

내 자동 완성 기능을 향상시킬 수 없었던 플러그인이 있습니까? RubyMine이 뭔가 미친 짓을하는 것처럼 보이지 않습니다. pry은 동일한 '컨텍스트'에서 실행되는 경우 동일한 '힘'을 줄 수 있습니다.

첫 번째 스크린 샷 (RubyMine은 자동 완성 해석) :

enter image description here

두 번째 샷 (전체 RubyMine 핵심 루비 클래스 자동) :

enter image description here

세 번째 샷 (vim omnifunc + ctags) :

enter image description here

+0

필수 빔은 IDE 아니다 논평. 또한 [VIM에서 더 나은 자동 완성] ([http://stackoverflow.com/q/15723209/438329) –

+0

]의 복제본이있을 수 있습니다. Vim에는 IDE가 될 수있는 기능이 있습니다. 현재의 설정은 매우 강력합니다 (특히 CtrlP, vim-rails, vim-fugitive 등). Vim으로 전환 한 지 일주일도 채되지 않았습니다. 거기에 OP는 자동 완성을 요구하고 있었는데, 나는 가지고있다. (나는 많은 질문을 던졌지 만 완전히 만족하지는 않는다.) 나는 거기에 어떤 것이 든 있다면 해석 된 자동 완성을 찾고있다.) – Abdo

+0

하하 ... 나는 그의 질문을 재검토하고 같은 것을 요구하고있는 것처럼 보이지만 나는 여전히 제안 된 답에 만족하지 않는다. 그의 질문은 1 년 전에 물었고 문제의 기술이 분명히 바뀌었다. "질문 중복"없이 동일한 질문을 어떻게 다시 할 수 있습니까? – Abdo

답변

4

중요 참고 사항이 솔루션은 내가 https://github.com/zxiest/vim-ruby에서 '정력 루비를'포크 등으로 수정 루비 1.9+

작동 :

플러그인 및 설정

VIM-레일 (에 언급 된 내 질문) 비록 YouCompleteMe 슈퍼 빠르고 자동이지만 현재 거기에 내 사이의 호환성 문제가 내 vim-ruby 포크.

VIM-easytags 나는 당신의 ~/.vimrc

:set tags=./tags; 
:let g:easytags_dynamic_files = 1 

에 VIM-easytags에게 https://github.com/xolox/vim-easytags

이 추가를 사용하고 프로젝트 디렉토리에 touch ./tags에 있는지 확인합니다.

문제 :UpdateTags -R **/*.* vim에서 easytags가 태그 파일을 생성합니다.

다시 매핑은 기본적으로, 우리가 <C-X><C-O>을 쳐야, 팝업 omnicomplete 위해서는

을 omnicomplete. 나는 내 ~/.vimrc에 다음을 삽입하여 <C-Space>이를 매핑 : 나는 omnicomplete 트리거와 나를 위해 쇼 메소드 서명 할 때 내 코드와 Ctrl+Space를 완료 인 Supertab 할 때

inoremap <[email protected]> <C-x><C-o>

는 지금 tab를 누릅니다. 이를 통합하는 더 좋은 방법이 있습니다 (즉, 점을 찍은 후 omnicomplete를 호출하는 수퍼 탭을 얻음).

그리고 여기에 스크린 샷이 있습니다! 상단에 표시 내 사용자 정의 허용 resize 방법을되는 메소드의 정렬을 주목하고 서명 이제 완료에 나타납니다 (Enter 키를 누를 때뿐만 아니라 편집기에서!)

enter image description here