abo-abo / avy

Jump to things in Emacs tree-style
1.71k stars 109 forks source link

How to disable visual line mode? #302

Closed SreenivasVRao closed 4 years ago

SreenivasVRao commented 4 years ago

Hi abo-abo, thank you so much for this package and swiper! They're awesome!

I see avy-go-to-line slowing down a lot, and did a profiler report.

image

It's the same problem as this https://github.com/abo-abo/swiper/issues/1952

And that fix worked perfectly for swiper. Wondering if there's a similar way to disable that mode for avy. I couldn't find a similar variable in avy.

Cheers!

I've narrowed it down to this line which is causing trouble: https://github.com/abo-abo/avy/blob/master/avy.el#L1610

my workaround for now is to redefine the function in my init.el without that line.

abo-abo commented 4 years ago

Thanks. Please test.

SreenivasVRao commented 4 years ago

Hi Oleh, Thank you so much for your quick reply :)

I tested it. And the problem is still present. What works for me is to completely ignore visual-line-mode altogether.

https://github.com/abo-abo/avy/blob/master/avy.el#L1614

I replaced this (if ... ((forward-line 1)) block with just (forward-line 1) and now avy is very responsive.

I'm not familiar with elisp - so it might take me some time to actually understand and test it.

abo-abo commented 4 years ago

If you turn off visual-line-mode, you'll get the same result without a performance penalty. However, if you don't use line-move-visual when visual-line-mode is on, you'll get unexpected results: only "real" newlines can be selected, not the visual ones.

What's the file size and the window size that makes the delay feel perceptible?