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


5

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

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

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

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

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

답변:


3

심플 폴드

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

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

https://github.com/tmhedberg/SimpylFold


2

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

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

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

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


set foldnestmax = 2는 현재 작동합니다. 감사합니다.
ipartola

사실, 신경 쓰지 마십시오. 어떤 이유로 클래스 메소드 중간에 함수를 갖는 것은 여전히 ​​작동하지 않습니다.
ipartola

@ ipartola : foldnestmax에 대한 자세한 내용으로 답변을 수정했지만 foldexpr을 설정 해야하는 것처럼 들립니다. 실제로 원하는 것은 모든 함수와 클래스 (최상위 클래스뿐만 아니라 )를 접는 것입니다.
idbrii
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.