vim에서 Python을위한 최고의 코드 폴딩 플러그인? [닫은] 코드에 vim을

내가 쓰는 모든 코드에 vim을 사용합니다. 내 가장 큰 문제는 좋은 Python 코드 접는 플러그인을 찾을 수 없다는 것입니다. 나는 들여 쓰기를 사용하는 인기있는 2 ~ 3 개를 찾았지만 너무 작거나 너무 많이 접는 경향이 있습니다. 이상적으로는 이것이 접 히고 싶은 것입니다.

  1. 모든 최상위 클래스를 접습니다.
  2. 모든 최상위 기능을 접습니다.
  3. 모든 클래스 메소드를 접습니다

그리고 더 이상 없습니다. 현재 사용중인 플러그인은 나쁘지 않지만 메서드 내에서 함수를 접는 경향이 있습니다. 또한 들여 쓰기 수준이 다른 클래스 메서드 내에서 코드 블록에 대해 혼동됩니다 (예 : for 루프 다음에 더 많은 코드를 사용하면 for 루프 다음에 코드가 접힐 수 있음).

누구든지 이러한 요구 사항을 충족시키는 플러그인을 알고 있습니까, 아니면 내 자신의 작성 방법을 알아 내야합니까?

이것들은 과거에 시도한 것들입니다.



답변

심플 폴드

나는 이것이 vim에서 파이썬을위한 최고의 접는 플러그인이라고 생각합니다.

클래스와 함수 / 메소드 정의를 올바르게 접고 루프와 조건부 블록을 건드리지 않은 채로두면됩니다.

https://github.com/tmhedberg/SimpylFold


답변

그들은 당신을위한 플러그인이 없지만 이 stackoverflow question 에 대한 유용한 답변 있습니다.

특히, 당신은 설정을 시도 할 수 있습니다 set foldnestmax=2. 이렇게하면 최상위 기능에서 원치 않는 접기가 수행되지만 요구 사항은 충족됩니다. foldnestmaxx보다 깊은 것을 접지 마십시오 (x보다 깊게 모든 것을 접는 foldlevel과 반대). 어디에 있든 기능을 찾을 수있을만큼 접을 수 있도록 스마트하게 접으려면을 설정해야합니다 foldexpr.

foldexpr을 사용하는 경우 가장 좋은 방법은 vimscript에서 기본 접기를 사용하여 매달린 다음 제공 한 플러그인 중 하나에 대한 코드를 사용하는 것입니다. set foldcolumn=1설정 한 주름을 볼 수 있도록 (또는 그 이상) 확인하십시오 . 나는 당신이 볼 경우에만이 본질적 배 증가 거라고 생각 class하거나 def,하지만 당신은해야 할 수도 있습니다 v:foldstartv:foldlevel결정하면 끝을 주름.

또한 zO폴드를 재귀 적으로 여는 데 사용하십시오 (최상위 함수를 펼치면 그 안에있는 모든 것이 펴집니다).