Doom-emacs: [๋ฒ„๊ทธ] + evil / easymotion์— ๋Œ€ํ•œ "SPC + SPC"๋ฐ”์ธ๋”ฉ์ด ์ ‘๋‘์‚ฌ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ณตํ•จ

์— ๋งŒ๋“  2019๋…„ 08์›” 14์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: hlissner/doom-emacs

๋ฌธ์ œ ์„ค๋ช…
SPC SPC ๋ฅผ +evil/easymotion ์— ๋งคํ•‘ํ•˜๋ ค๊ณ ํ•˜๋ฉด "non-prefix key SPC"์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์€ ์ž˜ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.

์‹คํŒจํ•œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

(map! (:map doom-leader-map
        "SPC" #'+evil/easymotion))

๊ทธ๋Ÿฌ๋‚˜์ด ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  (map! (:map doom-leader-map
          "SPC" evilem-map))

  (map! (:map doom-leader-map
          "SPC" #'find-file))

์ด๊ฒƒ์€ +evil/easymotion ์˜ ๋‚ด๋ถ€์— ์ ‘๋‘์‚ฌ ํ‚ค์— ๋งคํ•‘๋˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š” ๋ฌด์–ธ๊ฐ€๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค ... ์ด๊ฒƒ์€ ๊ธฐ๋ณธ g s ๋งคํ•‘์ด g ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ‚ค๋„ ํฌํ•จํ•˜๋Š” ์ ‘๋‘์‚ฌ.


๋””๋ฒ„๊ฑฐ ์ž…๋ ฅ ๋จ --Lisp ์˜ค๋ฅ˜ : ( "ํ‚ค ์‹œํ€€์Šค SPC SPC๊ฐ€ ์ ‘๋‘์‚ฌ๊ฐ€ ์•„๋‹Œ ํ‚ค SPC๋กœ ์‹œ์ž‘"์˜ค๋ฅ˜)
define-key ((keymap (ํ‚ค๋งต (avy-goto-word-or-subword-1. evil-avy-goto-word-or-subword-1) (avy-goto-word-1-below. evil-avy -goto-word-1-below) (avy-goto-word-1-above. evil-avy-goto-word-1-above) (avy-goto-word-1. evil-avy-goto-word-1 ) (avy-goto-word-0. evil-avy-goto-word-0) (avy-goto-symbol-1-below. evil-avy-goto-symbol-1-below) (avy-goto-symbol- 1- ์œ„. evil-avy-goto-symbol-1- ์œ„) (avy-goto-symbol-1. evil-avy-goto-symbol-1) (avy-goto-subword-1. evil-avy-goto- subword-1) (avy-goto-subword-0. evil-avy-goto-subword-0) (avy-goto-line-below. evil-avy-goto-line-below) (avy-goto-line-above . evil-avy-goto-line-above) (avy-goto-line. evil-avy-goto-line) (avy-goto-char-timer. evil-avy-goto-char-timer) (avy-goto- char-in-line. evil-avy-goto-char-in-line) (avy-goto-char-2-below. evil-avy-goto-char-2-below) (avy-goto-char-2- ์œ„. evil-avy-goto-char-2- ์œ„) (avy-goto-char-2. evil-avy-goto-char-2) (avy-goto-char. evil-avy-goto-char) (ace -jump-word-mode .evil-ace-jump-word-m ode) (ace-jump-line-mode. evil-ace-jump-line-mode) (ace-jump-char-mode. evil-ace-jump-char-mode)) (33. evil-shell-command) (58. evil-ex) (๋‹ค์šด ๋งˆ์šฐ์Šค -1. evil-mouse-drag-region) (4. evil-scroll-down) (21. evil-scroll-up) (9. evil-jump-forward) (26. evil-emacs-state) (์•„๋ž˜. evil-next-line) (up. evil-previous-line) (์˜ค๋ฅธ์ชฝ. evil-forward-char) (left. evil-backward-char) (30. evil-buffer) (22. evil-visual-block) ( 86. evil-visual-line) (118. evil-visual-char) (122 ํ‚ค๋งต (69. vimish-fold-delete-all) (100. vimish-fold-delete) (70. evil-vimish-fold / create -line) (102. evil-vimish-fold / create) (107. + fold / previous) (106. + fold / next) (72. evil-scroll-left) (76. evil-scroll-right) (์™ผ์ชฝ . "zh") (104. evil-scroll-column-left) (์˜ค๋ฅธ์ชฝ. "zl") (108. evil-scroll-column-right) (45. "zb ^") (98. evil-scroll-line -to-bottom) (46. "zz ^") (122. evil-scroll-line-to-center) (13. [122 return]) (return. "zt ^") (116. evil-scroll-line -to-top) (43. evil-scroll-bottom-line-to-top) (94. evil-scroll-top-line-to- ํ•˜๋‹จ)) (92. evil-execute-in-emacs-state) (13. evil-ret) (25. evil-scroll-line-up) (15. evil-jump-backward) (6. evil-scroll-page-down) (5 . evil-scroll-line-down) (2. evil-scroll-page-up) (29. evil-jump-to-tag) (67108918. evil-switch-to-windows-last-buffer) (23. evil -window-map) (45. evil-previous-line-first-non-blank) (95. evil-next-line-1-first-non-blank) (43. evil-next-line-first-non- ๊ณต๋ฐฑ ๊ณต๋ฐฑ) (94. evil-first-non-blank) (124. evil-goto-column) (63. evil-ex-search-backward) (59. evil-repeat-find-char) (47. evil-ex -search-forward) (44. evil-repeat-find-char-reverse) (42. evil-ex-search-word-forward) (91 ํ‚ค๋งต (100. git-gutter : previous-hunk) (116. hl- todo-previous) (104. outline-previous-visible-heading) (101. previous-error) (97. evil-backward-arg) (121. + evil : c-string-decode) (117. + evil : url -decode) (92. + evil / previous-comment) (42. + evil / previous-comment) (35. + evil / previous-preproc-directive) (77. + evil / previous-end-of-method) ( 109. + ์•… / ์ด์ „ ๋ฐฉ๋ฒ• ์‹œ์ž‘ ) (115. evil-prev-flyspell-error) (123. evil-previous-open-brace) (40. evil-previous-open-paren) (93. evil-backward-section-end) (91. evil-backward-section- begin)) (93 keymap (100. git-gutter : next-hunk) (116. hl-todo-next) (104. outline-next-visible-heading) (101. next-error) (97. evil-forward -arg) (121. + evil : c-string-encode) (117. + evil : url-encode) (92. + evil / next-comment) (42. + evil / next-comment) (35. + evil / next-preproc-directive) (77. + evil / next-end-of-method) (109. + evil / next-beginning-of-method) (115. evil-next-flyspell-error) (125. evil -next-close-brace) (41. evil-next-close-paren) (91. evil-forward-section-end) (93. evil-forward-section-begin)) (41. evil-forward-sentence- begin) (40. evil-backward-sentence-begin) (39. evil-goto-mark-line) (96. evil-goto-mark) (37. evil-jump-item) (36. evil-end-of -line) (35. evil-ex-search-word-backward) (125. evil-forward-paragraph) (123. evil-backward-paragraph) (103 ํ‚ค๋งต (115 ํ‚ค๋งต (47. avy-goto-char-timer ) (32 closur e (t) nil (๋Œ€ํ™” ํ˜•) (let ((current-prefix-arg t)) (๋Œ€ํ™” ํ˜• ํ˜ธ์ถœ (ํ•จ์ˆ˜ avy-goto-char-timer)))) (83. evil-easymotion-snipe-backward) (115. evil-easymotion-snipe-forward) (65. evilem--motion-function-evil-backward-arg) (97. evilem--motion-function-evil-forward-arg ) (43. evilem-motion-next-line-first-non-blank) (45. evilem-motion-previous-line-first-non-blank) (35. evilem-motion-search-word-backward) (42 . evilem-motion-search-word-forward) (78. evilem-motion-search-previous) (110. evilem-motion-search-next) (41. evilem-motion-forward-sentence-begin) (40. evilem -motion-backward-sentence-begin) (93 ํ‚ค๋งต (91. evilem-motion-forward-section-end) (93. evilem-motion-forward-section-begin)) (91 ํ‚ค๋งต (93. evilem-motion-backward -section-end) (91. evilem-motion-backward-section-begin)) (70. evilem-motion-find-char-backward) (102. evilem-motion-find-char) (84. evilem-motion- find-char-to-backward) (116. evilem-motion-find-char-to) (107. evilem-motion-previous-line) (106. evilem-motion-next-line) (103 ํ‚ค๋งต (107. evilem -motion-previous-visual-line) (106. evilem-motion-next -์‹œ๊ฐ ์„ ) (69. evilem-motion-backward-WORD-end) (101. evilem-motion-backward-word-end)) (66. evilem-motion-backward-WORD-begin) (98. evilem-motion-backward-word-begin) (69. evilem-motion-forward-WORD-end) (101. evilem-motion-forward-word-end) (87. evilem-motion-forward-WORD-begin) (119. evilem-motion-forward-word- ์‹œ์ž‘)) (78. evil-previous-match) (110. evil-next-match) (118. evil-visual-restore) (42. evil-ex-search-unbounded-word-forward) (35. evil- ex-search-unbounded-word-backward) (29. evil-jump-to-tag) (36. evil-end-of-visual-line) (109. evil-middle-of-visual-line) (94. evil-first-non-blank-of-visual-line) (95. evil-last-non-blank) (48. evil-beginning-of-visual-line) (107. evil-previous-visual-line) ( 106. evil-next-visual-line) (103. evil-goto-first-line) (69. evil-backward-WORD-end) (101. evil-backward-word-end) (100. evil-goto- ์ •์˜)) ...) ""nil)
evil-define-key (๋ชจ์…˜ ๊ธ€๋กœ๋ฒŒ ""nil)(let ((prefix (this-command-keys))) (evil-define-key (quote motion) (quote global) prefix nil) (evilem-default-keybindings (key-description prefix)) (setq prefix-arg current -prefix-arg unread-command-events (mapcar (function (lambda (e) (cons te)))) (vconcat (if evil-this-operator (progn (where-is-internal evil-this-operator evil-normal- ์ƒํƒœ์ง€๋„ t))) ์ ‘๋‘์‚ฌ))))
+ evil / easymotion ()
funcall-interactively (+ evil / easymotion)
๋Œ€ํ™” ํ˜• ํ˜ธ์ถœ (+ evil / easymotion nil nil)
command-execute (+ evil / easymotion)

์‹œ์Šคํ…œ ์ •๋ณด

  • ์šด์˜์ฒด์ œ : darwin (x86_64-apple-darwin14.5.0)
  • ์…ธ : / bin / zsh
  • Emacs : 26.2 (2019 ๋…„ 4 ์›” 12 ์ผ)
  • ๋‘  : 2.0.9 (HEAD-> ๊ฐœ๋ฐœ, _ ์—…๊ทธ๋ ˆ์ด๋“œ / ๊ฐœ๋ฐœ f754d4ff 2019-07-23 18:23:17 +0200)
  • ๊ทธ๋ž˜ํ”ฝ ๋””์Šคํ”Œ๋ ˆ์ด : t (๋ฐ๋ชฌ : nil)
  • ์‹œ์Šคํ…œ ๊ธฐ๋Šฅ : NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS
  • ์„ธ๋ถ€:
    elisp env bootstrapper: envvar-file elc count: 0 uname -a: Darwin 17.7.0 Darwin Kernel Version 17.7.0: Sun Jun 2 20:31:42 PDT 2019; root:xnu-4570.71.46~1/RELEASE_X86_64 x86_64 modules: (:completion company ivy :ui doom doom-dashboard doom-quit hl-todo modeline nav-flash ophints (popup +all +defaults) treemacs vc-gutter vi-tilde-fringe window-select workspaces :editor evil file-templates fold lispy multiple-cursors rotate-text snippets :emacs dired electric vc :term eshell :tools bibtex editorconfig eval flycheck flyspell (lookup +docsets) macos magit :lang data emacs-lisp my-ess markdown (org +ipython +pandoc) polymode python sh :config default) packages: (dtrt-indent (fill-function-arguments :recipe (fill-function-arguments :fetcher github :repo davidshepherd7/fill-function-arguments)) deadgrep pandoc-mode) exec-path: (~/.gem/bin ~/.zplug/repos/zplug/zplug/bin ~/.zplug/bin ~/.cargo/bin ~/.nix-profile/bin ~/.gem/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin /Library/TeX/texbin /opt/X11/bin ~/.config/nvim/bundle/fzf/bin ~/.local/bin /Applications/Emacs.app/Contents/MacOS/bin-x86_64-10_10 /Applications/Emacs.app/Contents/MacOS/libexec-x86_64-10_10 ~/.local/bin /Applications/Emacs.app/Contents/MacOS/libexec/)
bug elisp keybinds resolved

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

27cabea๋ถ€ํ„ฐ ์›ํ•˜๋Š” ๊ณณ ์–ด๋””์—์„œ๋‚˜ +evil/easymotion ๋ฐ”์ธ๋”ฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์„œ ์–ธ๊ธ‰ ํ•œ ๊ธฐ์ˆ ์  ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

๊ธฐ๋ณธ์ ์œผ๋กœ evil-motion-state-map ์ด์™ธ์˜ ๋‹ค๋ฅธ ๊ณณ์—์„œ๋Š” + evil / easymotion์„ ๋ฐ”์ธ๋”ฉ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

(map! :leader :m "gs" #'evil/easymotion)  ; note the :m 

๋‹ค๋ฅธ ๊ณณ์— ๋ฐ”์ธ๋”ฉ๋˜๋„๋ก ์„ค๊ณ„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค (์‹ ๋ขฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.). evilem-easymotion์„ ์ง€์—ฐ๋กœ๋“œ ํ•œ ๋‹ค์Œ, ์–ด๋–ค ํ‚ค ํ†ตํ•ฉ์„ ์†์ƒ์‹œํ‚ค์ง€ ์•Š๊ณ  evilem-map์— ๋‚ด์žฅ ๋œ ํ‚ค ๋ฐ”์ธ๋“œ๋ฅผ ๋ณต์ œํ•˜์ง€ ์•Š๊ณ ๋„ ์ด๋ธ” ๋ ˜ ๋งต์„ ํŠธ๋ฆฌ๊ฑฐ ํ•œ ํ‚ค ์‹œํ€€์Šค์— ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๊ฒƒ์€ ํŠธ๋ฆญ์ž…๋‹ˆ๋‹ค. ๋ช…๋ น์ด ํ˜ธ์ถœ ๋œ ํ‚ค๋งต์„ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜์žˆ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜์žˆ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์—†์œผ๋ฏ€๋กœ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค์€ ์ฒ˜์Œ์— "์ฆ๊ฐ• ๋œ"๋ชจ์…˜ ํ‚ค๋ฅผ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•œ ํƒ€ํ˜‘์ฒ˜๋Ÿผ ๋ณด์˜€๋‹ค.

๊ด€๋ จ์ด์—†๋Š” ๋ฉ”๋ชจ์—์„œ, ๋‹น์‹ ์€ ์‚ฌ์šฉํ•ด์•ผ :leader ๋Œ€์‹  :map doom-leader-map . ๋™๋“ฑํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ์ถฉ๋ถ„ํžˆ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ง€๋งŒ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ wontfix ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ด€์‹ฌ์„ ๊ฐ€์ ธ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

27cabea๋ถ€ํ„ฐ ์›ํ•˜๋Š” ๊ณณ ์–ด๋””์—์„œ๋‚˜ +evil/easymotion ๋ฐ”์ธ๋”ฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์„œ ์–ธ๊ธ‰ ํ•œ ๊ธฐ์ˆ ์  ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰