Saya tertarik untuk mengaktifkan pelipatan kode di Vim untuk kode Python. Saya telah memperhatikan banyak cara untuk melakukannya.
Apakah ada yang punya cara yang lebih disukai untuk melakukan pelipatan kode Python di Vim? Yaitu,
- Apakah Anda memiliki plugin Vim tertentu yang Anda gunakan dan sukai?
- Apakah Anda menggunakan pelipatan manual atau Anda menempatkan spidol di komentar?
- Adakah cara lain yang direkomendasikan untuk melakukan pelipatan kode untuk Python di Vim?
set foldnestmax=2
, dengan cara ini metode kelas dilipat, tetapi pernyataan internal tidak.Saya menggunakan file sintaks ini untuk Python. Ini menetapkan metode lipat untuk sintaks dan melipat semua kelas dan fungsi, tetapi tidak ada yang lain.
sumber
Namun plugin lain untuk melipat kode Python. Agak sederhana, menangani docstrings, dan di GitHub:
SimpylFold
Nikmati!
sumber
if
,for
danwhile
memblokir, bukan?Python sangat cocok untuk melipat pada indentasi, bit untuk menulis kode saya sendiri, saya menggunakan spidol karena mereka dapat memecahkan dokumen sesuai keinginan Anda dan dapat berfungsi sebagai semacam daftar isi. Saya memiliki ini di vimrc saya untuk beralih di antara keduanya ketika saya melihat kode orang lain.
sumber
Saya pikir melipat indentasi baik-baik saja untuk python. Saya membuat repo git bercabang untuk ide IDE vim-config python / django. Pergi!
http://github.com/skyl/vim-config-python-ide
sumber
Saya sangat suka
python_ifold
pluginnya .sumber
Coba plugin ini:
http://vim.sourceforge.net/scripts/script.php?script_id=515
sumber
Bagi saya lipatan yang ideal adalah melipat balok
class
dan sajadef
, lipatan indentasi terlalu berlebihan untuk selera saya. Saya pikir salah satu solusi elegan adalah dengan menggunakan sistem sintaks seperti ini satu disebutkan oleh Tomas. Namun, yang ini dimaksudkan untuk menggantikan file sintaks asli dan mungkin berakhir lebih lama dari aslinya (yaitu skrip itu tidak menyebutkan sintaks Python 3).Solusi saya adalah menempatkan di
~/.vim/syntax
folder file bernamapython.vim
hanya dengan baris penting (diambil dari skrip di atas):Kemudian aktifkan lipatan dengan
:set foldmethod=syntax
.sumber
class
dandef
jika mereka berdiri di awal baris. Karena saya hampir tidak bisa membaca ekspresi, saya kesulitan mencoba menyesuaikannya agar cocok^def
dan^class
. Ini aneh meskipun karena\s*
harus menangani ini dengan baik ..Sumber Python hadir dengan plugin sintaks vim bersama dengan file vimrc kustom. Periksa FAQ python di vim
sumber
Di Anda
.vimrc
:Kemudian
zM
untuk menutupi semuazR
untuk memperluas semua. Saya juga menambahkan:Jadi Anda bisa
z1
danz2
melepaskan indentasi sedikit demi sedikit.sumber
Saya sangat suka skrip vim kecil yang saya tulis untuk .vimrc. Ini memetakan
alt+1
untuk melipat tingkat indentasi python pertama (definisi kelas dan fungsi),alt+2
untuk melipat tingkat kedua (metode kelas), danalt+0
untuk membuka semuanya. Itu memastikan itu hanya melipat satu tingkat dan tidak melipat salah satu sub tingkat bersarang. Anda masih dapat menggunakanza
toggle folding untuk blok saat ini. Perhatikan bahwa di^[0
,^[
adalahalt
untuk terminal saya. Tidak memiliki banyak pengalaman dalam skrip vim jadi jangan ragu untuk memberikan saran tentang fungsinya :)sumber