LINUX.ORG.RU

[emacs] Смена положения курсора при скроллинге

 


0

0

Пользуюсь емаксом не более месяца, поэтому не пинайте плз ногами, если
что-то неправильное делаю, а подскажите как лучше. :)

Меня в емаксе беспокоит, что если отскролить так, что текущее
положение курсора не будет видно на экране, он поменяет свое
положение. Не привык к такому поведению, и не привыкается.
Придумал такое решение:
(defun my-store-pos () (point-to-register 0))
(defun my-restore-pos () (if (not (equal (get-register 0) nil))
			     (jump-to-register 0)))
(global-set-key [right] '(lambda ()
			   (interactive)
			   (my-restore-pos)
			   (forward-char) ; вызываем обычную для кнопки комманду
			   (my-store-pos))) ; повторить для всех кнопок, кроме тех,
			                    ; которые не хочется, что бы влияли на курсор,
			                    ; например mouse-4 и mouse-5

Получится, что можно нажимать кнопку, затем отскроллить, потом снова
нажать кнопку и курсор вернется на то место, где его оставили.

Однако проблема в том, что для всех кнопок сделать global-set-key неразумно.
Вобщем вопрос: как для всех кнопок (и их сочетаний), за исключением
нескольких из них, сделать так, что бы до и после команды, которую
выполняет кнопка вызвать мои функции?
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.