Question

When I scroll in Emacs using mouse wheel, it scrolls 5 lines at a time, which, I think, is way too much - where do I set a new value?

Also, when I scroll in Emacs with a mouse (either wheel or scrollbar), the cursor jumps to stay inside the visible screen area - is there a way to override that behavior, making it staying on the line it was on, even when it goes out of screen? In other words, I don't want the position where newly typed symbols appear changed by the scrolling.

Any alternative suggestion on how I could peek into some remote section of code and then quickly return to the former position is also welcome.

Was it helpful?

Solution

You can control the amount in variable mouse-wheel-scroll-amount (in mwheel.el).

EDIT: E.g. Add (setq mouse-wheel-scroll-amount '(1 ((shift) . 1) ((control) . nil))) to your .emacs for 1 line at a time.

I also have (setq mouse-wheel-progressive-speed nil) in my .emacs which I think is nicer behaviour.

OTHER TIPS

I use breadcrumb to leave a trail around a buffer or all buffers.

Drop the breadcrumb, go look at whatever you want/need, then jump back to the breadcrumb. Here's what I have things set to, FWIW:

(global-set-key [(f6)] 'bc-set)
(global-set-key [(shift f6)] 'bc-list)
(global-set-key [(control f6)] 'bc-previous)
(global-set-key [(meta f6)] 'bc-next)
(global-set-key [(shift control f6)] 'bc-local-previous)
(global-set-key [(shift meta f6)] 'bc-local-next)

Hope that helps.

It's impossible to have 'point' to exist somewhere outside of the current view; all the point movement commands move the display as well. I think that's a fundamental assumption that emacs makes.

I think what you want in your last point - to peek to a remote section and return - can be accomplished with registers:

This saves your position in register A:

C-x r A

And this restores the position from register A:

C-x r j A

If you do this a lot I'd advise binding those to things slightly less verbose :)

You can use some bookmark solution or the register, but also the build-in mark and the mark-ring -

(default binding) 

C-Space to set mark (push a mark in mark ring)
C-u C-Space to pop a mark off the ring; repeat this a few more time should 
            get you where you like to be

or if you don't have highlight region on or you don't mind seeing the highlighting,

C-x C-x (exchange-point-and-mark) switch between you current point and your previous mark.

Any alternative suggestion on how I could peek into some remote section of code and then quickly return to the former position is also welcome.

Ch 3 of Bob Glickstein's "Writing GNU Emacs Extensions" builds an unscroll-function (to return to a specified location in a scroll-command stack) as an programming example.

The code appears on-line, but there is a reported conflict with the ECB, if you use that.

Here is my setup:

(setq mouse-wheel-scroll-amount '(0.07))
(setq mouse-wheel-progressive-speed nil)
(setq ring-bell-function 'ignore)

Use easy-come-easy-go autonamed bookmarks -- Bookmark+. Just hit a key to create or delete -- as easy as setting the mark. They can be persistent or temporary. They can be automatically highlighted, if you like (the fringe or the line).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top