ver22 までの Emacs で、物理行単位にカーソル移動する方法
[2009-01-20-1] の補完。 ver22 までの Emacs のカーソル移動は論理行単位なので、こんなのを使っ てます。時々移動がミスりますが、そこはご愛嬌ということで。 (defvar vz-goal-column 0 "Vz風ゴールカラム") (defvar vz-enable-p t "*Enable the physical moving.") (defun toggle-variable (var) "Toggle '(symbol-value var)'." (set var (not (symbol-value var))) (message "'%s' is now '%s'" (symbol-name var) (symbol-value var))) (defun vz-toggle-vz-enable-p () "Toggle 'vz-enable-p'." (interactive) (toggle-variable 'vz-enable-p)) (defun vz-next-line (num) "Vz:↓" (interactive "p") (if (or (not vz-enable-p) truncate-lines) (next-line num) (or (eq last-command 'vz-next-line) (setq vz-goal-column (% (current-column) (1- (window-width))))) (if (eolp) (progn (forward-char 1) (move-to-column vz-goal-column)) (vertical-motion num) (move-to-column (+ vz-goal-column (current-column)))))) (defun vz-previous-line (num) "Vz:↑" (interactive "p") (if (not vz-enable-p) (previous-line num) (if truncate-lines (previous-line num) (or (eq last-command 'vz-next-line) (setq vz-goal-column (% (current-column) (1- (window-width))))) (let ((ncol (- vz-goal-column (window-width) -1))) (vertical-motion (- num)) (if (<= 0 ncol) (move-to-column ncol) (move-to-column (+ vz-goal-column (current-column)))))) (setq this-command 'vz-next-line))) ;fake 情報源: 極私的 Emacs カスタマイズ紹介マガヂン Emacs をわたし色に染めて♪ 第 16 回 物理行単位のカーソル移動 〜vz.el から一部を流用する〜 ...