Doom-emacs: [BUG] Gulir / gerakan kursor lambat di macOS dengan jendela besar

Dibuat pada 20 Des 2019  ·  27Komentar  ·  Sumber: hlissner/doom-emacs

Apa yang Anda harapkan terjadi?
Performa mulus saat menggulir dan menggerakkan kursor.

Apa yang sebenarnya terjadi?
Gerakan gagap saat jendela emacs dimaksimalkan.

Detil tambahan:
https://github.com/Strayer/dotfiles/tree/f6a037b/.doom.d

Video yang menunjukkan gerakan kursor lambat:
https://youtu.be/54ozr4zPgTw

Info profiler dengan jendela besar:

grafik
grafik

Info profiler dengan jendela kecil:

grafik
grafik

Saya menggunakan emacs 27 yang diinstal melalui homebrew:
brew install emacs-plus --HEAD --without-spacemacs-icon --with-jansson --without-multicolor-fonts

Saya juga mengalami masalah yang sama dengan emacs 26.

Sistem Informasi:


((emacs
(versi. "27.0.50")
(fitur. "RSVG IMAGEMAGICK GLIB NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS JSON PDUMPER LCMS2 GMP")
(build. "20 Des 2019")
(buildopts "--disable-dependency-tracking --disable-silent-rules --enable-locallisppath = / usr / local / share / emacs / site-lisp --infodir = / usr / local / Cellar / emacs-plus / HEAD-85a60da / share / info / emacs --prefix = / usr / local / Cellar / emacs-plus / HEAD-85a60da --with-xml2 --without-dbus --with-gnutls --with-imagemagick --with -json --with-modules --with-rsvg --with-ns --disable-ns-self-contains ")
(windowsys. batch)
(daemonp. server-running))
(malapetaka
(versi. "2.0.9")
(build. "HEAD, origin / develop, origin / HEAD 6d40f30a0 2019-12-20 05:01:44 -0500"))
(sistem
(tipe. darwin)
(config. "x86_64-apple-darwin19.2.0")
(shell. "/ usr / local / bin / fish")
(uname. "Darwin 19.2.0 Versi Kernel Darwin 19.2.0: Sab 9 Nov 03:47:04 PST 2019; root: xnu-6153.61.1 ~ 20 / RELEASE_X86_64 x86_64")
(jalur "~ / .local / bin" "~ / .poetry / bin" "~ / .cargo / bin" "~ / .bin" "/ usr / local / sbin" "~ / Library / Android / sdk / tools "" ~ / Library / Android / sdk / platform-tools "" ~ / .asdf / shims "" ~ / .asdf / bin "" / usr / local / bin "" / usr / bin "" / bin "" / usr / sbin "" / sbin "" / opt / X11 / bin "" / Applications / VMware "" Fusion.app/Contents/Public "" /Applications/Wireshark.app/Contents/MacOS "" / Applications / VMware "" Fusion.app/Contents/Public "" ~ / .local / bin "" /usr/local/Cellar/emacs-plus/HEAD-85a60da/libexec/emacs/27.0.50/x86_64-apple-darwin19.2.0 "))
(config
(envfile. envvar-file)
(file-elc. 0)
(modul: perusahaan penyelesaian ivy: ui doom doom-dashboard doom-exit hl-todo modeline nav-flash neotree ophints (popup + all + defaults) vc-gutter vi-tilde-fringe jendela-pilih ruang kerja: editor (jahat + di mana-mana) file-templates format lipat beberapa kursor rotate-text snippet: emacs dired electric ibuffer vc: tools ansible direnv docker editorconfig (eval + overlay) flycheck (lookup + docsets) magit terraform: lang data elixir emacs-lisp erlang penurunan javascript (org + dragndrop + sekarang) php python sh web: config (default + binding + smartparens))
(paket "n / a")
(elpa "n / a")))

help wanted external macOS performance unknown

Komentar yang paling membantu

Mungkin duplikat dari # 1301.

Sayangnya, ini adalah masalah Emacs dan MacOS yang umum dan umum: https://www.reddit.com/r/emacs/comments/d2n2wh/emacs_is_slow_on_macos/. Keduanya sangat rentan untuk menampilkan kembali kelambatan seperti ini.

Anda dapat mencoba menonaktifkan nomor baris dengan (setq display-line-numbers-type nil) dan beralih ke modeline ringan kami (tetapi mengubah modeline menjadi (modeline +light) dalam ~/.doom.d/init.el ).

Mungkin ini juga bisa membantu:

(add-to-list 'default-frame-alist '(inhibit-double-buffering . t))

Coba juga font lain. Emacs tampaknya tidak setuju dengan beberapa font. Fira Code diketahui bekerja dengan baik dengan Emacs.

Jika tidak ada yang membantu, mungkin di luar kemampuan saya atau Doom untuk memperbaikinya. Sayangnya, Emacs sangat rentan terhadap kelambatan scrolling, dan _much_ lebih banyak di MacOS daripada di Linux.

Semua 27 komentar

Mungkin duplikat dari # 1301.

Sayangnya, ini adalah masalah Emacs dan MacOS yang umum dan umum: https://www.reddit.com/r/emacs/comments/d2n2wh/emacs_is_slow_on_macos/. Keduanya sangat rentan untuk menampilkan kembali kelambatan seperti ini.

Anda dapat mencoba menonaktifkan nomor baris dengan (setq display-line-numbers-type nil) dan beralih ke modeline ringan kami (tetapi mengubah modeline menjadi (modeline +light) dalam ~/.doom.d/init.el ).

Mungkin ini juga bisa membantu:

(add-to-list 'default-frame-alist '(inhibit-double-buffering . t))

Coba juga font lain. Emacs tampaknya tidak setuju dengan beberapa font. Fira Code diketahui bekerja dengan baik dengan Emacs.

Jika tidak ada yang membantu, mungkin di luar kemampuan saya atau Doom untuk memperbaikinya. Sayangnya, Emacs sangat rentan terhadap kelambatan scrolling, dan _much_ lebih banyak di MacOS daripada di Linux.

Sepertinya semua itu membantu. Fira Code juga meningkatkan kinerja scrolling secara signifikan, yang menurut saya sangat mengganggu (saya suka Pragmata Pro!).

Ini masih jauh lebih lambat saat dimaksimalkan dibandingkan dengan jendela kecil (atau sebenarnya SETIAP editor / IDE lain yang saya miliki di mesin saya seperti Neovim, VS Code atau IntelliJ IDEs), membuat emacs masih cukup mengganggu. Setelah membaca lebih lanjut, sepertinya rendering di macOS hanyalah warga negara kelas dua untuk emacs. Ref: https://www.reddit.com/r/emacs/comments/del1yl/emacs_high_gpu_usage_on_mac/

Saya mencoba VM Ubuntu hanya untuk bersenang-senang, tetapi kinerja VMware Fusion dengan resolusi retina tampaknya terlalu menyebalkan untuk membandingkan apa pun.

Coba juga font lain. Emacs tampaknya tidak setuju dengan beberapa font. Fira Code diketahui bekerja dengan baik dengan Emacs.

Apakah ada daftar font yang diketahui bekerja dengan baik dengan Emacs? Saya menggunakan Iosevka dan mengalami masalah serupa dengan kecepatan gulir / gerakan di bawah macOS.

Edit: Emacs diinstal sebagai brew install emacs-mac --with-modules --with-rsvg --with-natural-title-bar .

Saya memiliki masalah yang persis sama. Pengaturan macos saya berperilaku persis seperti video OPs.

FYI, display-line-numbers-type dan inhibit-double-buffering tidak banyak membantu saya. Mengubah font menjadi "Monaco" berhasil. Seperti OP, ini masih belum "halus mentega" tapi sekarang setidaknya saya mendapatkan kinerja scrolling yang sama dengan spacemac.

@zyeri Saya juga menggunakan Iosevka dengan emacs-plus dan memiliki masalah yang sama, misalnya di spacemac, pengguliran lancar, mungkin mereka memiliki beberapa solusi.

@testarossaaaaa Ya spacemacs sepertinya tidak menderita karena ini meskipun berbasis emacs juga ... Saya sangat menikmati malapetaka dan bagi saya ini adalah satu-satunya hal yang menghentikan saya untuk beralih :(

Jika ada yang tahu beberapa solusi, saya akan sangat menghargainya!

Satu perbedaan yang saya perhatikan antara spacemacs dan doom-emacs adalah nilai scroll-conservatively :

  • Di spacemacs, scroll-conservatively = 101
  • Dalam doom-emacs, scroll-conservatively = 10

Mungkin Anda dapat mencoba (setq scroll-conservatively 101) dan melihat apakah itu membantu?

Saya telah mengatur scroll-konservatif ke 101 di 8c7aaa6. Saya tidak berpikir itu akan membantu dengan masalah OP secara khusus, tetapi mungkin membantu dengan gerakan halaman atau jarak jauh, karena masuk kembali ke jendela bisa mahal. Namun, saya tidak lebih dekat untuk mencari tahu apa yang dilakukan Spacemacs yang tidak kita lakukan. Jika ada yang bisa membagi dua konfigurasi mereka sampai masalah hilang, dan mempersempit asalnya, itu akan sangat membantu.

Untuk apa nilainya, saya dapat mereproduksi ini di Emacs HEAD dengan konfigurasi _no_. Saya tidak berpikir ini khusus Doom, tapi saya akan mencoba menggunakan Spacemacs dan melaporkannya kembali. Mungkin mereka melakukan sesuatu untuk memperbaikinya secara tidak sengaja? (Untuk saat ini, saya kembali ke cabang Emacs 27, yang menurut saya tidak memiliki masalah ini.)

Mungkin duplikat dari # 1301.

Sayangnya, ini adalah masalah Emacs dan MacOS yang umum dan umum: https://www.reddit.com/r/emacs/comments/d2n2wh/emacs_is_slow_on_macos/. Keduanya sangat rentan untuk menampilkan kembali kelambatan seperti ini.

Anda dapat mencoba menonaktifkan nomor baris dengan (setq display-line-numbers-type nil) dan beralih ke modeline ringan kami (tetapi mengubah modeline menjadi (modeline +light) dalam ~/.doom.d/init.el ).

Mungkin ini juga bisa membantu:

(add-to-list 'default-frame-alist '(inhibit-double-buffering . t))

Coba juga font lain. Emacs tampaknya tidak setuju dengan beberapa font. Fira Code diketahui bekerja dengan baik dengan Emacs.

Jika tidak ada yang membantu, mungkin di luar kemampuan saya atau Doom untuk memperbaikinya. Sayangnya, Emacs sangat rentan terhadap kelambatan scrolling, dan _much_ lebih banyak di MacOS daripada di Linux.

Saya mengalami masalah yang sama dengan OP, menyetel (setq display-line-numbers-type nil) membantu - lag jauh lebih tidak terlihat sekarang.

(modeline +light) dengan (setq display-line-numbers-type t) tampaknya berdampak kecil pada mesin saya. (add-to-list 'default-frame-alist '(inhibit-double-buffering . t)) juga tidak banyak membantu.

Saya menggunakan 26.3 brew tap railwaycat/emacsmacport dan ukuran Iosevka: 13 dari brew tap homebrew/cask-fonts

Memiliki masalah yang sama untuk sementara waktu, saya akhirnya menghabiskan beberapa jam untuk memecahkan masalah pengaturan khusus saya. Semoga bisa bermanfaat.

Pengaturan saya adalah:

  • brew install emacs-plus --without-spacemacs-icon --HEAD --with-emacs-27-branch --with-jansson --with-xwidgets
  • tema malapetaka
  • Font Menlo

Saya mencoba berbagai kombinasi untuk memahaminya dan inilah temuan saya:

Hal yang cepat diperbaiki adalah hl-line . Jika itu diaktifkan, gerakan kursor lambat. Saya menyelesaikannya dengan menggunakan hl-line+ mana saya hanya dapat mengkonfigurasi sorotan saat menganggur, jadi memindahkan kursor tidak akan menghasilkan penyorotan baris saat ini, dan dengan demikian tidak banyak menggambar ulang. Konfigurasi saya adalah sebagai berikut:

(use-package hl-line+
  :load-path "3rd" # or wherever you put hl-line+.el
  :config
  (hl-line-when-idle-interval 0.3)
  (toggle-hl-line-when-idle 1))

Masalah terbesar saya adalah mengaktifkan display-line-numbers dan highlight-indent-guides secara bersamaan, saat menggunakan karakter unicode default \x2502 sebagai karakter panduan.

Jika saya menonaktifkan salah satunya, itu jauh lebih responsif; jika saya menggunakan unicode yang berbeda tetapi tampak serupa (dalam kasus saya \xFFE8 , sayangnya agak putus-putus), saya dapat tetap mengaktifkan keduanya sekaligus memiliki daya tanggap yang baik.

Secara keseluruhan di sini adalah konfigurasi saya:

(use-package doom-themes
  :ensure t
  :init
  ;; Global settings (defaults)
  (setq doom-themes-enable-bold t    ; if nil, bold is universally disabled
        doom-themes-enable-italic t) ; if nil, italics is universally disabled
  :config
  (load-theme 'doom-one t)

  ;; Enable flashing mode-line on errors
  (doom-themes-visual-bell-config)

  (use-package doom-themes-ext-treemacs
    :init
    (setq doom-themes-treemacs-theme "doom-colors")) ; use the colorful treemacs theme)
  (doom-themes-treemacs-config)

  ;; Corrects (and improves) org-mode's native fontification.
  (doom-themes-org-config))

(use-package hl-line+
  :load-path "3rd"
  :config
  (hl-line-when-idle-interval 0.3)
  (toggle-hl-line-when-idle 1))

(use-package display-line-numbers
  :ensure nil
  :init
  (setq display-line-numbers-width-start t)
  (global-display-line-numbers-mode))

(use-package highlight-indent-guides
  :ensure t
  :delight highlight-indent-guides-mode
  :init
  (setq highlight-indent-guides-method 'character
        ;; default is \x2502 but it is very slow on Mac
        highlight-indent-guides-character ?\xFFE8
        highlight-indent-guides-responsive 'top))

Menggunakan emacs 27.0.91 yang dikompilasi secara lokal, kecepatan scrollingnya cukup bagus.

Langkah-langkah yang saya lakukan:

git clone https://github.com/emacs-mirror/emacs.git
cd emacs
git checkout emacs-27.0.91
./configure
# if configure works then run
make install

Anehnya, emacs versi> 28 memiliki masalah pengguliran lambat yang sama.

Saya memutuskan untuk mencoba malapetaka lagi, dan masih mengalami masalah.

Saya mencoba lagi dengan emacs-27 dan masalahnya masih terlihat. Tombol font "Monaco" masih merupakan hal yang paling banyak dilakukan.

Mengatur "display-line-numbers" ke null juga membantu sedikit, tapi tidak banyak.

@honnix dapatkah Anda memberikan detail lebih lanjut tentang apa yang perlu Anda lakukan untuk mengkonfigurasi hl-line +? Karena cukup baru di Doom, saya masih tidak yakin di mana harus menempatkan cuplikan Anda. Baik package.el maupun config.el tidak melakukan trik untuk saya.

Maaf, Anda masih mengalami masalah. emacs-27 bekerja untuk saya setelah saya mengkompilasi seluruh aplikasi secara lokal FYI.

Cara yang mungkin untuk melacak sumber kelambatan adalah melalui explain-pause-mode saat memulai https://github.com/lastquestion/explain-pause-mode, ini dapat memberikan wawasan tentang sumber daya babi apa.

Saya juga memiliki scrolling lambat pada retina MacBook dengan emacs 28. Konfigurasi Spacemacs pada emacs yang sama menggulir dengan baik. Saya telah beralih ke font dan ukuran yang sama di konfigurasi Spacemacs saya dan itu membantu sedikit tetapi tidak banyak. Menampilkan nomor baris tampaknya menjadi pelanggar terbesar dan cukup terhormat jika dimatikan. Yang mengejutkan saya, Spacemac benar-benar bergulir lebih cepat dengan nomor baris aktif. Sejauh yang saya tahu itu menggunakan display-line-numbers-mode . Menyetel ke relatif atau normal tidak ada bedanya.

Saya telah mencoba membuat profil dan menggunakan explain-pause-mode tetapi tampaknya tidak ada sesuatu yang jelas dalam laporan.

Saya menggunakan GUI emacs dan jika saya membuat jendela kecil, itu akan bergulir dengan baik.

Saya merasa seperti seorang pemilih nit tetapi saya menghabiskan banyak waktu di editor dan dapat menggulir dengan lancar dan cepat meskipun teks membuat perbedaan pada seberapa menyenangkan editor Anda digunakan.

Saya sedikit mengetahui kedalaman saya mengetahui di mana harus mencari untuk memperbaikinya, saya telah mencoba mencari melalui kode spasi untuk menggulir dan nomor baris untuk melihat apakah mereka menerapkan sesuatu yang spesifik dan satu-satunya hal yang saya temukan adalah (setq scroll-conservatively 101) yang tidak membuat perbedaan bagi saya.

@maxwedwards Lihat https://github.com/hlissner/doom-emacs/blob/develop/docs/faq.org#why -is-scrolling-slow-in-emacsdoom dan coba sarannya.

Terima kasih @hlner. Saya telah memeriksa daftar itu dan nomor baris memang membuat perbedaan besar tetapi hal terbesar sejauh ini hanyalah menyeret jendela lebih kecil. Saya tidak tahu apa yang dilakukan Spacemacs tetapi ini adalah rendering pada layar retina MacOS dengan emacs. Saya kecewa dengan tautan reddit emacs yang diposting di atas bahwa pengelola menyarankan bahwa itu adalah masalah MacOS dan bukan masalah Emacs, tampaknya mereka bahkan tidak mengakui itu adalah masalah.

Mengubah font dan membuat font lebih besar mempercepatnya di bawah 10%.

Hal yang paling aneh adalah bahwa spacemac menjadi lebih cepat dengan nomor baris diaktifkan! Sesuatu yang aneh sedang terjadi.

Terima kasih atas pekerjaan Anda di Doom.

Saya menjalankan Emacs 27 di Macbook Pro dengan monitor eksternal 4K. Bagi saya, cukup beralih dari mode hl-line default ke hl-line + dan konfigurasi idle membuat perbedaan besar dan menggulir sekarang cukup dapat diterima. Saya juga suka mempertahankan nomor baris (kebiasaan lama saya kira).

Tapi saya juga menyukai saran @hlissner untuk menavigasi dengan cara yang lebih "jahat":

Jangan mash j (atau Cn) untuk menggulir. Pengguna jahat dapat menggulir jarak jauh dengan Cd dan Cu, misalnya, untuk menghindari kelambatan itu. Jika tidak, gunakan mekanisme pencarian untuk bergerak, seperti isearch (Cs) atau evil-search (/).

Saya sebenarnya mengalami peningkatan besar setelah memutakhirkan ke Emacs 27 melalui emacs-plus scrolling tampaknya secepat vim sekarang ini dengan hl-line + set. Saya melakukan instal ulang penuh sebagai bagian dari peningkatan jadi itu mungkin membantu?

Saya mengalami komplikasi lain seperti yang saya jelaskan di sini https://github.com/jwiegley/use-package/issues/835 , memperbaikinya juga memberi saya dorongan besar dan saya dapat kembali ke hl-line.

@jonasagx Tidak yakin apakah Anda telah menemukan cara mengkonfigurasi hl-line +.

Inilah yang saya lakukan. Saya mengunduh hl-line + .el dan meletakkannya di .emacs.d/3rd , dan memiliki yang berikut di .emacs.d/init.el .

(use-package hl-line+
  :load-path "3rd"
  :config
  (hl-line-when-idle-interval 0.3)
  (toggle-hl-line-when-idle 1))

Bagi saya, mengubah font (Jetbrains Mono -> Fira Code) memperbaiki masalah.

apakah ada yang tahu tentang font tertentu yang membuat mereka bekerja lebih baik? mungkin ini berkaitan dengan tata letak dan volume unicode?

Dapat mengonfirmasi hl-line + mod bersama dengan menonaktifkan nomor baris membuat perbedaan besar. Saya menggunakan monitor 1440p dengan Mac. Kecepatan gulir hampir secepat vim. Saya di Emacs 26.

Saya menambahkan use-package ke config.el kustom saya di folder /user/.doom.d

Bagi saya, mengubah font (Jetbrains Mono -> Fira Code) memperbaiki masalah.

Sebenarnya, itu tidak membantu. Itu adalah restart Emacs, yang membantu.
Beberapa waktu setelah saya mengubah font, kelambatan dimulai lagi, kemudian saya secara tidak sengaja mengubah ukuran jendela Emacs dari dimaksimalkan menjadi setengah ukuran dan kembali dan jeda menghilang.

Dapat mengonfirmasi hl-line + mod bersama dengan menonaktifkan nomor baris membuat perbedaan besar. Saya menggunakan monitor 1440p dengan Mac. Kecepatan gulir hampir secepat vim. Saya di Emacs 26.

Saya menambahkan use-package ke config.el kustom saya di folder /user/.doom.d

Ini memperbaikinya untuk saya !!

Pengguna Linux di sini datang dari neovim untuk melihat Doom Emacs karena saya telah mendengar hal-hal yang baik, dan sepertinya proyek yang hebat :) Saya pasti akan menyelami alam semesta emacs lebih dalam.

Masalah pengguliran juga berlaku untuk saya dan membingungkan. j (Ce) menggulung ke bawah dengan lamban (mulus), sementara k (Cy) menggulung dengan mulus (lamban). Tidak yakin apa yang benar-benar berbeda di bawahnya. Masalahnya dapat sepenuhnya diperbaiki dengan mematikan penomoran baris relatif (hal lain yang disebutkan di sini tidak berfungsi), meskipun saya khawatir itu terlalu mahal bagi saya. Mungkin menggulir dengan j & Ce membantu orang datang ke sini karena saya belum melihat pintasan ini dipasang di mana pun (seandainya berhasil untuk orang lain).

Sunting: Untuk menambah itu, ketika Doom Emacs dijalankan di Alacritty, rendering yang dipercepat perangkat keras tampaknya juga meringankan, meskipun tidak memperbaiki sepenuhnya, masalah pengguliran juga.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat