$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

emacsで複数行移動

一気に5行とか飛ばして移動したいときあるので、複数行移動できる方法ないかなと探してみたけど、何か見つからなかったので、場当たり的に作った。
もっといい方法知りたい。

;;; 複数行飛ばし
(defun next-5-lines ()
  (interactive)
  (setq num 0)
  (while  (< num 5)
    (progn
      (next-line)
      (setq num (1+ num)))))

(defun previous-5-lines ()
  (interactive)
  (setq num 0)
  (while  (< num 5)
    (progn
      (previous-line)
      (setq num (1+ num)))))

追記1

こんな感じでいけるって言われた。短くなった。

(global-set-key "\M-n" '(lambda ()
                          (interactive)
                          (next-line 5)))
(global-set-key "\M-p" '(lambda ()
                          (interactive)
                          (previous-line 5)))

追記2

更に短くなった

;;; 複数行移動
(global-set-key "\M-n" (kbd "C-u 5 C-n"))
(global-set-key "\M-p" (kbd "C-u 5 C-p"))