Как я могу сделать прокрутку мыши Emacs медленнее и плавнее?

Когда я прокручиваю Emacs с помощью колесика мыши, он прокручивает 5 строк за раз, что, я думаю, слишком много - где мне установить новое значение?

Кроме того, когда я прокручиваю Emacs с помощью мыши (колесом или полосой прокрутки), курсор прыгает, чтобы оставаться в видимой области экрана - есть ли способ переопределить это поведение, заставляя его оставаться в строке, на которой он был, даже когда он выходит за пределы экрана? Другими словами, я не хочу, чтобы позиция, в которой появляются вновь набранные символы, изменялась при прокрутке.

Также приветствуются любые альтернативные предложения о том, как я мог бы заглянуть в какой-нибудь удаленный участок кода, а затем быстро вернуться в прежнее положение.


person Headcrab    schedule 15.01.2009    source источник


Ответы (7)


Вы можете контролировать количество в переменной mouse-wheel-scroll-amount (в mwheel.el).

РЕДАКТИРОВАТЬ: например. Добавляйте (setq mouse-wheel-scroll-amount '(1 ((shift) . 1) ((control) . nil))) в ваш .emacs по одной строке за раз.

У меня также есть (setq mouse-wheel-progressive-speed nil) в моем .emacs, что я считаю более приятным поведением.

person luapyad    schedule 15.01.2009
comment
Добавлен (setq mouse-wheel-scroll-amount '(1)) в мой .emacs, он работает. И мне тоже нравится (setq mouse-wheel -gressive-speed nil). - person Headcrab; 15.01.2009
comment
Хедкраб, это тот ответ, который вы искали? Если да, пожалуйста, примите это. - person Geoff; 09.02.2012
comment
Джефф, это вопрос типа 3-в-1, где каждый ответ касается одного из трех, поэтому я не могу выбрать один конкретный ответ. - person Headcrab; 18.02.2012
comment
Вот ссылка на документацию, если кто-то не хочет ее искать: gnu.org/software/emacs/manual/html_node/emacs/ - person snd; 27.01.2016
comment
Вы можете использовать большее число после shift для быстрой прокрутки при нажатии клавиши shift. - person xuhdev; 11.04.2016
comment
Боже, эта прогрессивная скорость убивала меня! Если просто обнулить этот параметр, прокрутка мыши будет работать должным образом. Кто бы мог подумать, что это хорошая идея ... - person SnakE; 24.07.2018

Я использую хлебную крошку, чтобы оставить след вокруг буфера или всех буферов.

Отбросьте хлебную крошку, посмотрите, что вы хотите / нужно, а затем вернитесь к хлебной крошке. Вот что у меня есть, 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)

Надеюсь, это поможет.

person Joe Casadonte    schedule 15.01.2009

Вот моя установка:

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

Невозможно иметь «точку» где-то за пределами текущего представления; все команды перемещения точки также перемещают дисплей. Я думаю, что это фундаментальное предположение, которое делает emacs.

Я думаю, что то, что вы хотите в своем последнем пункте - заглянуть в удаленный раздел и вернуться, - может быть выполнено с помощью регистров:

Это сохраняет вашу позицию в регистре A:

C-x r A

И это восстанавливает позицию из регистра A:

C-x r j A

Если вы делаете это часто, я бы посоветовал привязать их к менее подробным вещам :)

person Community    schedule 15.01.2009
comment
Пробовал их, он сказал, что C-x r A не определено. - person Headcrab; 20.01.2009
comment
C-x r SPC A, где A - имя регистра (т. Е. Любой отдельный символ). В подобных случаях вы можете использовать C-x r C-h, чтобы увидеть все привязки, начинающиеся с префикса C-x r. - person phils; 03.11.2011

Вы можете использовать закладки или регистр, а также встроенную метку и кольцо для меток -

(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

или если у вас нет выделенной области или вы не против увидеть выделение,

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

Также приветствуются любые альтернативные предложения о том, как я мог бы заглянуть в какой-нибудь удаленный участок кода, а затем быстро вернуться в прежнее положение.

В главе 3 Боба Гликкштейна «Написание расширений GNU Emacs» построена функция отмены прокрутки (чтобы вернуться к указанное место в стеке команд прокрутки) в качестве примера программирования.

Код отображается в сети, но есть сообщение о конфликте с ЕЦБ, если вы его используете.

person Michael Paulukonis    schedule 15.01.2009

Используйте простые и удобные закладки с автоматическим именем - Bookmark +. Просто нажмите клавишу, чтобы создать или удалить - так же просто, как установить отметку. Они могут быть постоянными или временными. При желании они могут быть выделены автоматически (бахрома или линия).

person Drew    schedule 02.11.2011