(require 'repeatable-motion) (defun repeatable-motion-remap-key (keymap next-cmd prev-cmd) "対になるコマンドを定義し、キーに割り当てられたコマンドをrepeatable-motion版に置き換える" (repeatable-motion-define-pair next-cmd prev-cmd) (dolist (command (list next-cmd prev-cmd)) (define-key keymap (vector 'remap command) (intern (format "repeatable-motion-%s" command))))) ;;; 繰り返しキー (global-set-key (kbd "C-:") 'repeatable-motion-forward) ;;; 逆繰り返しキー (global-set-key (kbd "C-M-:") 'repeatable-motion-backward) (with-eval-after-load "org" ;; C-c C-n / C-c C-p (repeatable-motion-remap-key org-mode-map 'org-next-visible-heading 'org-previous-visible-heading) (repeatable-motion-remap-key org-mode-map 'outline-next-visible-heading 'outline-previous-visible-heading) ;; C-c C-f / C-c C-b (repeatable-motion-remap-key org-mode-map 'org-forward-heading-same-level 'org-backward-heading-same-level)) ;;; C-x { / C-x } (repeatable-motion-remap-key global-map 'enlarge-window-horizontally 'shrink-window-horizontally) ;;; C-x ^ (repeatable-motion-remap-key global-map 'enlarge-window 'shrink-window) ;;; C-x → / C-x ← (repeatable-motion-remap-key global-map 'next-buffer 'previous-buffer) ;;; M-g M-n / M-g M-p (repeatable-motion-remap-key global-map 'next-error 'previous-error) ;;; M-{ / M-} (repeatable-motion-remap-key global-map 'forward-paragraph 'backward-paragraph) ;;; C-x [ / C-x ] (repeatable-motion-remap-key global-map 'forward-page 'backward-page) ;;; M-f / M-b (repeatable-motion-remap-key global-map 'forward-word 'backward-word)