カーソル位置を維持したままスクロールするelisp
でも、Emacs デフォルトの半画面スクロールのままだと、気持ち悪いので1行スクロールの設定も追加してみた。 (setq scroll-conservatively 35 scroll-margin 0 scroll-step 1) 半画面スクロールになれてしまってたけど、やっぱりこっちのほうがいい。
この設定だとウィンドウの上下端に行かないとスクロールできないので、自分はカーソル位置を維持したまま1行スクロールできる以下のelispを使っています。学生の頃友達に教えてもらったものです。
(defun scroll-up-in-place (n) (interactive "p") (previous-line n) (scroll-down n)) (defun scroll-down-in-place (n) (interactive "p") (next-line n) (scroll-up n)) (global-set-key "\M-p" 'scroll-up-in-place) (global-set-key [M-up] 'scroll-up-in-place) (global-set-key "\M-n" 'scroll-down-in-place) (global-set-key [M-down] 'scroll-down-in-place)
キーバインドは、C-p,C-nでカーソル1行移動なのでそれに合わせてM-p,M-nとしています。ひょっとしたらEmacs自体に用意されている気がしないでもないですが。。。