2009-11-23 2 views
2

질문을 봤는데 아무 것도 발견되지 않았습니다. 어쩌면이 경우 검색 키워드를 올바르게 정의하는 방법을 모르겠습니다.vim에서 시각화하는 루비 메서드를 활성화하는 방법

Ruby on Rails 애플리케이션을 개발할 때 vim에서 폴딩을 사용하고 싶습니다. 그리고 내 foldcolumn은 4로 설정되어 있습니다. 그러나 루비 메서드의 시작과 끝을 시각화하는 것은 너무 간단하고 명확하지 않습니다 ("-"- "def", "|"- "end") :

-def foo 
     bar = 1 
|end 

질문은 - vim을위한 플러그인이 있습니까? TextMate (1)에서와 같이 모든 "def"와 "end"근처에 마커 (화살표 또는 stmh)가 표시됩니까? 내가 정력/루비에 많은 경험을 가지고 있지 않는 한 또한

v def foo 
     bar = 1 
^ end 

, 어쩌면 모든 DEF 엔드 쌍 특정 파일에 닫혀 있는지 확인하는 또 다른, 더 우아한 방법은 무엇입니까? (matchit.vim은이 필요성에 대해 매우 편안하지 않습니다.) 콘솔에서 "구문 오류"를 읽는 것보다 잃어버린 "끝"을 잡는 더 편리한 방법이 있기를 바랍니다.

답변

2

나는 그것이 꽤 있는지 당신이 필요로하는,하지만 당신은 'foldcolumn'옵션을 시도 해 봤나? 예를 들어,로 :

:set foldcolumn=4 

이 같은 것을 얻을 것이다 :

- def foo 
|  bar = 1 
| end 

- def foo2 
|  bar = 2 
|-  if x == 1 
||   bar = 3 
||  end 
| end 

자세한 내용은 :help 'foldcolumn'를 참조하십시오. Vim에 마우스가 활성화되어있는 경우 - 표지판을 클릭하여 폴드를 닫을 수 있습니다. 당신이 배 방법을 좋아하지 않는 경우에

편집

, 당신은 표시를 사용할 수 있습니다 (사용하여 빔을 표시한다 가정). 다음과 같이 시도하십시오.

command! RubySigns call RubySigns() 
" Optional: 
au BufReadPost *.rb call RubySigns() 
function! RubySigns() 
    sign define ruby_end text=^ 
    sign define ruby_def text=v 
    sign unplace * 
    g/^\s*\(def\|class\|begin\)\>/exe 'sign place '.line('.').' line='.line('.').' name=ruby_def buffer='.bufnr('%') 
    g/^\s*end\>/exe 'sign place '.line('.').' line='.line('.').' name=ruby_end buffer='.bufnr('%') 
endfunction 

완벽하지는 않지만 (필자는 루비를 모른다) 아마도 시작해야 할 부분이있을 것입니다.

+0

감사합니다.하지만 제 질문에 foldcolumn을 언급했습니다. – lipry

+0

아, 미안합니다. 더 신중하게 읽어야합니다. – DrAl

+0

표지판 방법이 유용 할 것입니다. – DrAl

관련 문제