Jestem zainteresowany włączeniem zwijania kodu w Vimie dla kodu Python. Zauważyłem wiele sposobów, aby to zrobić.
Czy ktoś ma preferowany sposób na zwijanie kodu Pythona w Vimie? To znaczy,
- Czy masz konkretną wtyczkę Vima, której używasz i lubisz?
- Czy używasz ręcznego składania, czy umieszczasz znaczniki w komentarzach?
- Jakieś inne zalecane sposoby zwijania kodu dla Pythona w Vimie?
set foldnestmax=2
, że w ten sposób metody klas są zawijane, ale wewnętrzne instrukcje nie.Używam tego pliku składni dla Pythona. Ustawia metodę składania na składnię i składa wszystkie klasy i funkcje, ale nic więcej.
źródło
Kolejna wtyczka do składania kodu Pythona. Raczej proste, obsługa ciągów dokumentów i na GitHub:
SimpylFold
Cieszyć się!
źródło
if
,for
awhile
bloki, prawda?Python dobrze nadaje się do zawijania na wcięciu, trochę do pisania własnego kodu. Używam znaczników, ponieważ mogą one skrócić dokument tak, jak chcesz i mogą służyć jako rodzaj spisu treści. Mam to w moim vimrc, aby przełączać się między nimi, gdy przeglądam kod kogoś innego.
źródło
Myślę, że składanie wcięć jest dobre dla Pythona. Tworzę wielobranżowe repozytorium git dla pomysłów VIM-config Python / django IDE. Rozwidl się!
http://github.com/skyl/vim-config-python-ide
źródło
Bardzo podoba mi się ta
python_ifold
wtyczka .źródło
Wypróbuj tę wtyczkę:
http://vim.sourceforge.net/scripts/script.php?script_id=515
źródło
Dla mnie idealnym składaniem jest składanie samych klocków
class
idef
, jak na mój gust zbyt duże jest zaginanie wcięć. Myślę, że jednym eleganckim rozwiązaniem jest stosowanie systemu składni jak ten jeden wspomniany przez Tomas. Jednak ten ma na celu zastąpienie oryginalnego pliku składni i może skończyć się starszym niż oryginalny (tj. Ten skrypt nie wspomina o składni Pythona 3).Moim rozwiązaniem jest umieszczenie w
~/.vim/syntax
folderze pliku o nazwiepython.vim
zawierającej tylko ważne linie (wzięte z powyższego skryptu):Następnie po prostu aktywuj składanie za pomocą
:set foldmethod=syntax
.źródło
class
es idef
s, jeśli stoją na początku linii. Ponieważ prawie nie potrafię odczytać wyrażenia, mam kłopoty z próbą dostosowania go, aby dopasować^def
i^class
. Jest to jednak ciekawe, ponieważ\s*
powinno dobrze sobie z tym poradzić ..Źródło Pythona jest dostarczane z wtyczką składni vim wraz z niestandardowym plikiem vimrc. Sprawdź FAQ Pythona na vimie
źródło
W twoim
.vimrc
:Następnie
zM
zamaskuj wszystko,zR
aby wszystko rozwinąć. Dodałem również:Więc możesz
z1
iz2
stopniowo cofać się.źródło
Bardzo podoba mi się ten mały skrypt vim, który napisałem dla .vimrc. Mapuje
alt+1
zawinięcie pierwszego poziomu wcięcia Pythona (definicje klas i funkcje),alt+2
zawinięcie drugiego poziomu (metody klas) ialt+0
rozwinięcie wszystkiego. Upewnia się, że składa tylko jeden poziom i nie pasuje do żadnego z zagnieżdżonych poziomów podrzędnych. Nadal możesz używaćza
do przełączania składania dla bieżącego bloku. Zauważ, że w^[0
programie^[
jestalt
dla mojego terminala. Nie masz dużego doświadczenia w skryptach vim, więc nie wahaj się sugerować funkcji :)źródło