참고코드 : EWS 적용 [2024-05-02 Thu 13:07] home/junghan/sync/man/dotsamples/vanilla/ahyatt-dotfiles-ekg-meow.emacs.d/emacs.org Meow ;; meow (use-package meow :config ;; It seems really odd that meow doesn't just define this themselves. (defun meow-setup () (setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty) (meow-motion-overwrite-define-key '("j" . meow-next) '("k" . meow-prev) '("<escape>" . ignore)) (meow-leader-define-key ;; SPC j/k will run the original command in MOTION state. '("j" . "H-j") '("k" . "H-k") ;; Use SPC (0-9) for digit arguments. '("1" . meow-digit-argument) '("2" . meow-digit-argument) '("3" . meow-digit-argument) '("4" . meow-digit-argument) '("5" . meow-digit-argument) '("6" . meow-digit-argument) '("7" . meow-digit-argument) '("8" . meow-digit-argument) '("9" . meow-digit-argument) '("0" . meow-digit-argument) '("/" . meow-keypad-describe-key) '("?" . meow-cheatsheet)) (meow-normal-define-key '("0" . meow-expand-0) '("9" . meow-expand-9) '("8" . meow-expand-8) '("7" . meow-expand-7) '("6" . meow-expand-6) '("5" . meow-expand-5) '("4" . meow-expand-4) '("3" . meow-expand-3) '("2" . meow-expand-2) '("1" . meow-expand-1) '("-" . negative-argument) '("=" . meow-pop-to-mark) '(";" . meow-reverse) '("," . meow-inner-of-thing) '("." . meow-bounds-of-thing) '("[" . meow-beginning-of-thing) '("]" . meow-end-of-thing) '("a" . meow-append) '("A" . meow-open-below) '("b" . meow-back-word) '("B" . meow-back-symbol) '("c" . meow-change) '("d" . meow-delete) '("D" . meow-backward-delete) '("e" . meow-next-word) '("E" . meow-next-symbol) '("f" . meow-find) '("g" . meow-cancel-selection) '("G" . meow-grab) '("h" . meow-left) '("H" . meow-left-expand) '("i" . meow-insert) '("I" . meow-open-above) '("j" . meow-next) '("J" . meow-next-expand) '("k" . meow-prev) '("K" . meow-prev-expand) '("l" . meow-right) '("L" . meow-right-expand) '("m" . meow-join) '("n" . meow-search) '("o" . meow-block) '("O" . meow-to-block) '("p" . meow-yank) '("P" . meow-pop-grab) '("q" . meow-quit) '("Q" . meow-goto-line) '("r" . meow-replace) '("R" . meow-swap-grab) '("s" . meow-kill) '("t" . meow-till) '("u" . meow-undo) '("U" . meow-undo-in-selection) '("v" . meow-visit) '("w" . meow-mark-word) '("W" . meow-mark-symbol) '("x" . meow-line) '("X" . meow-goto-line) '("y" . meow-save) '("Y" . meow-sync-grab) '("z" . meow-pop-selection) '("'" . repeat) '("<escape>" . ignore))) (require 'meow-cheatsheet-layout) (meow-setup) (meow-global-mode 1) (add-to-list 'meow-mode-state-list '(eshell-mode . insert)) (add-to-list 'meow-mode-state-list '(calc-mode . insert)) ;; Make it so we can have per-major-mode states (defconst meow-per-mode-state-list nil "Alist of major modes and their corresponding meow state.") (defun meow-enter-mode-state-list () (interactive) (when-let ((state (assoc-default major-mode meow-per-mode-state-list))) (funcall (intern (format "meow-%s-mode" state))))) (meow-define-keys 'normal '("/" . meow-enter-mode-state-list)) ;; And meow state for org mode navigation (setq meow-org-motion-keymap (make-keymap)) (meow-define-state org-motion "Org-mode structural motion" :lighter "[/]" :keymap meow-org-motion-keymap) (meow-define-keys 'org-motion '("<escape>" . meow-normal-mode) '("i" . meow-insert-mode) '("g" . meow-normal-mode) '("u" . meow-undo) ;; Moving between headlines '("k" . org-previous-visible-heading) '("j" . org-next-visible-heading) ;; Moving between headings at the same level '("p" . org-backward-heading-same-level) '("n" . org-forward-heading-same-level) ;; Clock '("I" . org-clock-in) '("O" . org-clock-out) ;; Moving up and down in the outline '("K" . outline-up-heading) ;; Subtree de/promotion '("L" . org-demote-subtree) '("H" . org-promote-subtree) ;; Completion-style search of headings '("v" . consult-org-heading) ;; Setting subtree metadata '("l" . org-set-property) '("t" . org-todo) '("d" . org-deadline) '("s" . org-schedule) '("e" . org-set-effort) ;; Block navigation '("b" . org-previous-block) '("f" . org-next-block) ;; Narrowing/widening '("N" . org-narrow-to-subtree) '("W" . widen)) (add-to-list 'meow-per-mode-state-list '(org-mode . org-motion))) Related-Notes References