yuuka_maniaの日記: Emacs rectangle-mark-mode
日記 by
yuuka_mania
ちょっとした Elisp プログラムで、rectangle-mark-mode を使ったのだけど、どうも、カーソルの移動が期待した通り動かなくて、断念してたのだが、rect.el の中で、関数の上書きっぽいことをしてる部分を発見!関数名をプログラマブルに指定したり、メタプログラミングの一種かもしれないが、読みにくいというか、grep で発見しづらいのは、辛いが、Lispらしいといえばらしいのか。もうちょっと勘を養うしかないか。
(defvar rectangle-mark-mode-map
(let ((map (make-sparse-keymap)))
(define-key map [?\C-o] 'open-rectangle)
(define-key map [?\C-t] 'string-rectangle)
(define-key map [remap exchange-point-and-mark]
'rectangle-exchange-point-and-mark)
(dolist (cmd '(right-char left-char forward-char backward-char
next-line previous-line))
(define-key map (vector 'remap cmd)
(intern (format "rectangle-%s" cmd))))
map)
"Keymap used while marking a rectangular region.")
Emacs rectangle-mark-mode More ログイン