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:foldstart및 v:foldlevel결정하면 끝을 주름.

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


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

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

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