Beberapa paket kursor membuat emacs berjalan lambat


9

Saya menggunakan paket Multiple Cursors dalam file html dan itu luar biasa untuk beberapa cursors tetapi jika saya membuat lebih dari 30 atau 50 cursors itu menjadi sangat lambat dan dibutuhkan sekitar lima atau enam detik hanya untuk memindahkan cursor.
Apakah saya salah menggunakannya atau hanya karena tidak siap untuk membuat banyak kursor ?.


2
Itu tergantung pada apa yang terjadi di buffer - beberapa buffer hanya lebih sulit untuk multi-kursor Magnar. Kadang-kadang saya dapat memiliki beberapa ratus tanpa perlambatan yang signifikan, dan kadang-kadang hanya beberapa di (katakanlah wdired-mode) menyebabkan perlambatan. Ada permintaan fitur terbuka - debbugs.gnu.org/cgi/bugreport.cgi?bug=22873 - untuk memindahkan beberapa kemampuan kursor ke dalam kode sumber C, tetapi ini masih merupakan diskusi yang sedang berlangsung saat ini. Salah satu poin penjualan yang saya usulkan ke tim pengembangan Emacs adalah potensi peningkatan kecepatan jika dimasukkan ke dalam basis kode C.
lawlist

3
Saya tidak punya solusi tetapi ingin mengkonfirmasi kelambatan yang sama untuk saya juga. Saya tidak akan terkejut jika masalah ini ditelusuri ke masalah font-lock. Ketika saya membuka kunci font secara global, kursor menjadi tajam kembali.
Pengguna Emacs

1
... dalam hal ini multi kursor tidak akan menyebabkan pelambatan langsung (bahkan jika kelambatan hanya menjadi faktor ketika Anda menggunakannya). Saya akan M-x profiler-startdan melakukan banyak hal lambat dan kemudian M-x profiler-report, dan terus menelusuri ke item (s) mengambil sebagian besar waktu CPU sampai Anda dapat mengisolasi ke perpustakaan tertentu (jika ada); lalu coba nonaktifkan perpustakaan itu. Jangan lupa untuk menghentikan profiler ketika Anda selesai.
phils

Jawaban:


5

Daftar mode minor yang tidak berfungsi dengan baik dengan beberapa mode kursor dapat diatur melalui mc/unsupported-minor-modes. Mode apa pun yang ditambahkan ke daftar ini akan dinonaktifkan ketika memasuki mode banyak kursor, mereka akan diaktifkan kembali setelah Anda keluar dari mode multi kursor.

Anda dapat menambahkan item ke daftar ini seperti itu

(add-to-list 'mc/unsupported-minor-modes 'flyspell-mode)

Ini membuat perbedaan besar pada responsif dari beberapa mode kursor. Saya menemukan dua mode minor yang memiliki dampak terbesar adalah mode linum dan flyspell.


Jika seseorang dapat mencoba dan menjelaskan mengapa flyspell membuat segalanya lambat (atau memberikan resep singkat untuk mereproduksi kelambatan dengan flyspell), mungkin kita bisa mencoba dan memperbaiki masalahnya.
Stefan

1
Saya telah mencoba membuat profil kelambatan, tetapi belum dapat menemukan pola yang konsisten. Yang mengatakan lambatnya diperkenalkan oleh flyspell tidak terlalu buruk, modul yang saya temukan jauh lebih buruk adalah mode linum. Mematikan mode linum memungkinkan saya beralih dari 30 kursor sekaligus menjadi lebih dari 600.
Charles Ritchie

Resep yang dapat direproduksi akan sangat bermanfaat.
Stefan

1
Terima kasih atas bantuannya!. sepertinya inilah masalahnya. Indent-guide-mode dan Linum-mode di mana yang harus saya nonaktifkan (saya menonaktifkan indent-guide dan mengganti Linum dengan nlinum). Sekarang saya dapat memiliki ratusan kursor tanpa lag.
Fabman

0

... lebih dari 30 atau 50 kursor menjadi sangat lambat ....

Inilah solusi temp: sesuaikan variabel ini

mc/max-cursors

ke nilai kurang dari 30 sebagai solusinya. Standarnya adalah nil, yang berarti tidak ada batasan. Jumlah aktual untuk mengembalikan kecepatan tergantung pada jenis buffer, font yang digunakan, dan apa pun yang berjalan pada saat itu. Bagaimanapun, masalah yang Anda alami telah dilaporkan secara luas.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.