Ini sepertinya pertanyaan yang sangat aneh, tapi saya memiliki file Python yang memiliki angka di dalamnya yang panjangnya seribu digit dan file itu tampaknya berjalan sangat lambat, saya tidak yakin apakah ada semacam pemrosesan yang terjadi pada saya. Saya tidak tahu.
Saya menekan garis j
dan ada jeda yang pasti ~ 1 detik itu sangat menyakitkan!
Saya hanya memiliki ini pada file Python, itu tidak terjadi pada orang lain.
Setelah menghapus nomor file tersebut berfungsi normal kembali ...
Ini nomornya:
number=("""7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450""")
Ini bahkan bukan angka, melainkan sebuah string.
.txt
. Beberapa sintaks menyoroti pola regexp tersesat, saya kira.synmaxcol
ke beberapa nomor terbatas (seperti lebar terminal Anda).Jawaban:
Saya dapat mereproduksi ini dengan
syntax/python.vim
yang dikirimkan dengan Vim 7.4.663.Menggunakan
:syntime
, ini tampaknya disebabkan oleh sintaksis grup / pola berikut:Anda harus melaporkan masalah ini ke pengelolanya (nama dan alamat emailnya ada di header skrip).
Kebetulan, saya awalnya tidak dapat mereproduksi ini, karena saya menggunakan skrip sintaksis alternatif dari sini . Beralih ke itu (jika sesuai dengan kebutuhan Anda), akan menjadi solusi yang layak juga.
Sunting: Melihat lebih jauh ke dalam penyebab yang mungkin, ini tampaknya karena kinerja patologis mesin regexp berbasis NFA baru. Dengan
:set regexpengine=1
, saya tidak melihat perlambatan besar itu. Jadi satu solusi / perbaikan yang mungkin adalah beralih ke mesin lama untuk kecocokan sintaksis itu; ini bisa dilakukan dengan menambahkan\%#=1
pola (cp.:help NFA
).sumber
/usr/share/vim/vim74/syntax
, pengembang di atas adalahNeil Schemenauer <[email protected]>
. Bisakah saya bertanya; apakah ini sebabnya Anda mengubah file sintaks awalnya? Terima kasih