BIBLIOGRAPHY

โ€œEmacs-Evil/Evil.โ€ (2017) 2025. Evil. https://github.com/emacs-evil/evil.

ํžˆ์Šคํ† ๋ฆฌ

  • [2025-04-23 Wed 14:27] emacs-evil ์ด๋ผ๊ณ  ์ด๋ฆ„์„ ํ•˜๋Š”๊ฒŒ ์ข‹์„๊ฒƒ ๊ฐ™์•„.
  • [2025-03-21 Fri 06:46] ๊นŠ๋‹ค ๊นŠ์–ด. ์ˆจ์€๊ทธ๋ฆผ์ฐพ๊ธฐ ๋ณด๋ฌผ์ฐพ๊ธฐ ์•„๋‹Œ๊ฐ€
  • [2023-10-04 Wed 15:12] ์ฝ”๋”ฉ์„ ํ•˜๋‹ค ๋ณด๋‹ˆ ํ•„์š”ํ•œ ํ‚ค๋ฅผ ์•Œ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ

์—ฌ๊ธฐ๊ฒŒ ์ง‘์ค‘ํ•˜๊ฒŒ ๋œ๋‹ค. ๋†€๋ผ์šด ์ผ์ด๋‹ค.

  • [2023-09-09 Sat 12:35] ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ๋‚ด์šฉ์ด๋‹ค. ๊ทผ๋ฐ ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ผ๋‹จ

์”จ์•—์„ ์‹ฌ์—ˆ๋‹ค. ๊ฑฐ๋‘˜ ์ˆ˜๋Š” ์—†๋‹ค. ๊ฐ€์•ผ ํ•œ๋‹ค. ํ…์ŠคํŠธ ๋งˆ์Šคํ„ฐ๋กœ์„œ ์ž์œ ๋ฅผ ์–ป์œผ๋ ค๋ฉด ์ผ๋‹จ ํŽธ์ง‘ ๋ชจ๋“œ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค. ์ด๋งฅ์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ํŽธ์ง‘ ๋ชจ๋“œ๋ฅผ ์„ž์–ด ์“ฐ๋Š” ๊ฒƒ๋„ ์ข‹์ง€๋งŒ EVIL ์€ ๊ฒฝํ—˜์„ ํ•ด์•ผ ํ•œ๋‹ค.

emacs-evil/evil

(โ€œEmacs-Evil/Evilโ€ [2017] 2025) The extensible vi layer for Emacs.

#ํ‚ค์›Œ๋“œ evil

ํ•ต์‹ฌ๊ต๋ณธ #๋‘ ์ด๋งฅ์Šค: #์ด๋ธ” #ํŽธ์ง‘ #ํŠœํ† ๋ฆฌ์–ผ

๋ฐ”๊พธ์ง€ ๋ง๊ณ  ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ์ปค๋ฒ„ํ•˜๋ฉด ์ข‹๋‹ค.

โ€™*โ€™ โ€™#โ€™ #์‹ฌ๋ณผ Symbol Transient State

[2023-05-13 Sat 16:40]

  • EVIl ๊ด€๋ จ ํ›ˆ๋ จ์„ ์ข€ ํ–ˆ์–ด์•ผ ๋˜๋Š”๋ฐ ์ด์ œ ์•Œ์•˜๋„ค. ๋œ์žฅ.

๊ทธ๋ฆฌ๊ณ  Spacemacs ์—์„œ ์ œ๊ณตํ•˜๋Š” Transient State ๋Š” ๋‹ค ์ด์œ ๊ฐ€ ์žˆ๋‹ค. ํ•„์š”ํ•ด์„œ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. compleseus ๋ ˆ์ด์–ด์— ๊ฐ€๋ฉด ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ project ๊ฐ€ projectile ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค. ์ˆ˜์ • ๋ฐ”๋žŒ.

>

SpaceVim ์„ค์น˜ํ•˜๋ฉฐ โ€” VSpaceCode and Spacemacs ๋น„๊ต

TODO Evil Tips Examples

KeyForUsed
vipevil-inner-passageVery Often
visevil-inner-sentenceVery Often
gqapformat passageVery Often
gqasformat sentenceOften
cireplace everything within parensSometimes
dt;deleting everything until a semicolonRare
cifevil-cp-inner-formRare

cif

cif ์ด๊ฒŒ ๋ญ”๊ฐ€? :: evil-cp-inner-form ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. ์ฆ‰ ๊ด„ํ˜ธ ์•ˆ์— ํผ์„ ์ž˜๋ผ๋‚ด๊ธฐ ํ•œ๋‹ค. ์•„๋ž˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์žˆ๋‹ค. ์•„! ์ด ํ•จ์ˆ˜๋Š” evil-cleverparens-text-objects ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€์ด๋‹ค. ์ด๊ฒŒ ๋ ๊นŒ?

>

* [2023-12-14 Thu 09:32] vip vis ๋“ฑ ๋ชจ๋ฅด๋Š” ์„ธ๊ณ„๊ฐ€ ์žˆ์Œ์„ ์•Œ๋‹ค.

evil-surround

[2023-10-04 Wed 12:35] ์ด๊ฑธ ๋“œ๋””์–ด ์‚ฌ์šฉํ•œ๋‹ค. ์™œ?!

evil-textobj-line ํ…์ŠคํŠธ ์˜ค๋ธŒ์ ํŠธ

[2023-12-14 Thu 15:59]

  • VIM https://nolboo.kim/blog/2016/10/13/vim-text-objects-definitive-guide/
    • VIM ์—์„œ ํŽธ์ง‘์„ ํšจ๊ณผ์ ์œผ๋กœ ํ•˜๋ ค๋ฉด, ๋‹จ์ˆœํžˆ ๋ฌธ์ž๋ฅผ ๋„˜์–ด์„œ ๋‹จ์–ด, ๋ฌธ์žฅ, ๋ฌธ๋‹จ์„ ํŽธ์ง‘ํ•ด์•ผ ํ•œ๋‹ค.VIM ์—์„œ ์ด๋Ÿฐ ํ•˜์ด๋ ˆ๋ฒจ์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ํ…์ŠคํŠธ ๊ฐœ์ฒด๋ผ๊ณ  ํ•œ๋‹ค.
    • VIM ์—๋Š” ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๊ฐœ์ฒด์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์œ„ํ•œ ํ…์ŠคํŠธ ๊ฐœ์ฒด๊ฐ€ ์žˆ๋‹ค. ํ…์ŠคํŠธ ๊ฐœ์ฒด๋ฅผ ๋ฐฐ์šฐ๋ฉด VIM ํŽธ์ง‘์ด ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ๋‹จ๊ณ„์˜ ์ •ํ™•๋„์™€ ์†๋„๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

Spacemacs Focus Document

[2023-02-25 Sat 17:16]

์—ฌ๊ธฐ ๋ฌธ์„œ๋„ ์ข‹๋‹ค.

/home/junghan/sync/man/dotsamples/spacemacs/ghasak-dot-spacemacs/docs/emacs_tips_tricks/multi_cursor.md:

Evil for Viim Style Editing

Evil for Vim Style Editing - Practicalli Spacemacs

2022 evil-emacs forward backward keybinding

[2023-06-17 Sat 13:43]

์•Œ์•„์•ผ ํ•  ํ‚ค ๋ฐ”์ธ๋”ฉ

M-x ์˜์›ํ•˜๋ผ ๋ฉ”ํƒ€์—‘์Šค! M-m SPC ์™€ ๊ฐ™์Œ. ์ŠคํŽ˜์ด์Šค๋งฅ์Šค root ๋ผ๊ณ  ํ•จ. M-RET ๋งˆ์ด๋„ˆ๋ชจ๋“œ ๋ช…๋ น์…‹ ๋…ธ๋ฉ€ ๋ชจ๋“œ์—์„œ , ๊ณผ ๊ฐ™์Œ. C-g keyboard-quit :: ์ด๊ฑธ ๋ชฐ๋ž์—ˆ๋‹ค. ์‹คํ–‰ ์ทจ์†Œ!!

evil emacs ๋ฅผ ์ž˜ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ์€?

๋‚ด ์ƒ๊ฐ์—๋Š” evil mode ์™€ ์ƒ๊ด€ ์—†์ด ์›ํ•˜๋Š” ์ž‘์—…์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋งฅ์Šค ๊ณ ์œ ์˜ ํ‚ค ๋ฐ”์ธ๋”ฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

vim ์—์„œ ํŽธ์ง‘ ๋ชจ๋“œ๋กœ ์ง„์ž…ํ•˜๋ฉด ๋ฉ”ํƒ€ ํ‚ค ์กฐํ•ฉ์ด ์•„๋‹ˆ๋ผ๋ฉด ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์€ ํ…์ŠคํŠธ ์ž…๋ ฅ์ด๋‹ค. vim ๋„ ์ œ๋Œ€๋กœ ์จ๋ณด์ง€ ์•Š์€ ์ด์œ ๋Š” ๋ชจ๋“œ ์ „ํ™˜์ด ๊ท€์ฐฎ์•„์„œ๋‹ค.

์ด๋งฅ์Šค๋ฅผ ์ œ๋Œ€๋กœ ์จ๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐโ€ฆ ๊ทธ๋ ‡๋‹ค๊ณ  ์ด๋งฅ์Šค ์ž…๋ ฅ ๋ฐฉ์‹์„ ๊ณต๋ถ€ํ•˜๊ธฐ๋Š” ์‹ซ๊ณ โ€ฆ ์„ ํƒ ์˜ต์…˜์€ EVIL ์ด๋‹ค. ์ŠคํŽ˜์ด์Šค๋งฅ์Šค๋Š” ์—ฌ๊ธฐ์— ์ถฉ์‹คํ•œ ์ด๋งฅ์Šค์ด๊ณ  ๋งŒ์กฑ์Šค๋Ÿฝ๋‹ค.

์ด๋™/์‚ญ์ œ/์ถ”๊ฐ€ : ์บ๋ฆญํ„ฐ, ์›Œ๋“œ, ๋ผ์ธ ๊ฒ€์ƒ‰ undo/redo

๋“ฑ. ์ผ๊ด€์„ฑ ์žˆ๋Š” ๋ฐฉ์‹์ด ํ•„์š”ํ•˜๋‹ค.

C-r undo-fu only redo $ end 0 home

  • insert ๋ชจ๋“œ ๋ฐฉํ–ฅํ‚ค ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋„๋ก ์„ธํŒ…

C-h j k l C-S backspace kill line C-w evil-delete-backward-word C-_ undo-region C-u undo-fu undo C-r undo-fu redo C-$ end C-0 home M-h delete-backward-char M-l delete-forward-char

adslfjaldksjflk ds asdlkk

;; ํŽธ์ง‘ ๋ชจ๋“œ ์‹œ, ๋‹จ์–ด ๋‹จ์œ„๋กœ ์ง€์šฐ๋ ค๋ฉด C-w ๋ฅผ ์“ฐ๋ฉด ๋œ๋‹ค ;; char ๋ฅผ ์ง€์šฐ๋ ค๋ฉด backspace ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค. ์ด๊ฒŒ ๋ถˆํŽธํ•˜๋‹ค. ์ถ”๊ฐ€ํ•˜์ž.

alsdkfjlkdsf

w evil forward word : ์ด๋™|๋‹จ์–ด b evil backward word ์ด๋™|๋‹จ์–ด

  • all mode

M-DEL backword-kill-word ์ปค์„œ ์ด์ „ ์›Œ๋“œ ๋‹จ์œ„๋กœ ์‚ญ์ œ M-d kill-word M-f forward word M-b backward word

๋‚ด๊ฐ€ ์ถ”๊ฐ€ํ•œ ํ‚ค ๋ฐ”์ธ๋”ฉ์˜ ์ผ๋ถ€์ด๋‹ค. ๋ชฉ์ ์€ ๋ฐฉํ–ฅํ‚ค๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ์ค„์ด๊ณ  ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ๋ชจ๋“œ ๋ณ€ํ™˜์„ ์ตœ์†Œํ™” ํ•˜๋ฉด์„œ ๊ธ€์„ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŽธ์ง‘ ๋ชจ๋“œ์—์„œ ์“ฐ๋‹ค๊ฐ€ ๋…ธ๋ฉ€ ๋ชจ๋“œ๋กœ ๋ฐ”๊พธ๊ณ โ€ฆ ์ด ์ž‘์—…์ด ๋งค์šฐ ๋ฒˆ๊ฑฐ๋กญ๋‹ค. ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ์€ ํŽธ์ง‘ ๋ชจ๋“œ์—์„œ๋„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. ํŠนํžˆ ์ผ๋ฐ˜์ ์ธ ํŽธ์ง‘ ๊ธฐ๋Šฅ์˜ ๊ฒฝ์šฐ.

๋‹คํ–‰์ธ ๊ฒƒ์€ ์ด๋งฅ์Šค๋Š” ์—๋นŒ ๋ชจ๋“œ๋งŒ ์ง€์›ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ๋ฌผ๋ก  ์ŠคํŽ˜์ด์Šค๋งฅ์Šค ์—๋นŒ ๋ชจ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” ๊ธฐ์กด ์ด๋งฅ์Šค ํ‚ค ๋ฐ”์ธ๋”ฉ๊ณผ ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ๋งŽ์•„์„œ ๋ง‰ ๋„ฃ์„ ์ˆ˜๊ฐ€ ์—†๋‹ค.

๊ทธ๋Ÿผ์—๋„ ํ•จ์ˆ˜๋Š” ์—ฌ์ „ํžˆ ์žˆ๊ธฐ์— ์ ๋‹นํžˆ ๋งž์ถฐ ๋„ฃ์–ด์ฃผ๋ฉด ํŽธ์ง‘, ์ด๋™์ด ๋ฌด๋‚œํ•˜๊ฒŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

evil-escape ๋„ ,. ์œผ๋กœ ๋งคํ•‘ํ•ด ๋†“์•˜๋Š”๋ฐ ๊ดœ์ฐฎ๋‹ค. ESC ๋ฅผ ๋ˆ„๋ฅด๋Š” ๊ฒƒ ๋ณด๋‹ค ๋”ฐ๋‹ฅ ๋ˆ„๋ฅด๋Š”๊ฒŒ ํŽธํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด!! ํŽธ์ง‘ ๋ชจ๋“œ์—์„œ ๋งˆ์ด๋„ˆ๋ชจ๋“œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ , . , ์„ ๋”ฐ๋‹ค๋‹ฅ ๋ˆŒ๋ฅด๋ฉด ๊ฐ€๋Šฅํ–ˆ๋‹ค.

๊ทผ๋ฐโ€ฆ M-RET์„ ๋ˆ„๋ฅด๋ฉด ๋ชจ๋“œ์— ์ƒ๊ด€ ์—†์ด ๋งˆ์ด๋„ˆ๋ชจ๋“œ ๋ช…๋ น์–ด๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ evil-escape ๋Š” ์“ธ๋งŒํ•˜๋‹ค. ๊ดœํžˆ ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ค. ์•„! ์›๋ž˜ ๋งคํ•‘์€ fd ์— ๋˜์–ด ์žˆ๋‹ค. ํ•œ๊ธ€ ์ž…๋ ฅ ์ค‘์—๋Š” ใ„นใ…‡์ด ์ž…๋ ฅ๋˜๋‹ˆ๊นŒโ€ฆ ์˜๋ฌธ์œผ๋กœ ๋ฐ”๊พธ๊ณ  ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ง์ด๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ์— , . ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฌผ๋ก  ๋” ์ข‹์€ ํ‚ค ๋งคํ•‘์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค. ํฐ ๊ณ ๋ฏผํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ˆ๊นŒ.

  (evil-define-key '(normal insert visual) org-mode-map (kbd "C-c h") 'org-insert-heading)
  (evil-define-key '(normal insert visual) org-mode-map (kbd "C-c s") 'org-insert-subheading)
 
  ;; ํ—ค๋”ฉ ์ด๋™์„ ํŽธํ•˜๊ฒŒ ํ•˜์ž
  (define-key org-mode-map (kbd "C-n") 'org-next-visible-heading)
  (define-key org-mode-map (kbd "C-p") 'org-previous-visible-heading)
 
  ;; ํŽธ์ง‘ ๋ชจ๋“œ์—์„œ ๋ฐฉํ–ฅํ‚ค๋ฅผ ์ปค๋ฒ„ํ•˜๋Š” ๋ฐฉ๋ฒ•
  ;; evil-mode ์—์„œ ๊ธฐ์กด ํ‚ค ๋ฐ”์ธ๋”ฉ C-k๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
  ;; ๋‚˜๋จธ์ง€ ํ‚ค๋Š” ํฐ ๋ฌธ์ œ ์—†์–ด์„œ ๊ทธ๋ƒฅ ๋‘”๋‹ค.
  (keymap-unset-key [C-k] "evil-mode")
 
  ;; insert ๋ชจ๋“œ์—์„œ ๋ฐฉํ–ฅํ‚ค๋กœ ์“ฐ๋„๋ก ์„ธํŒ…ํ•œ๋‹ค. evil-xxx-line ๋Œ€์‹ 
  ;; ์ด๋งฅ์Šค ๊ธฐ๋ณธ ์ด๋™์œผ๋กœ ์„ธํŒ… ํ–ˆ๋‹ค.
  (evil-define-key '(insert) org-mode-map (kbd "C-h") 'left-char)
  (evil-define-key '(insert) org-mode-map (kbd "C-l") 'right-char)
  (evil-define-key '(insert) org-mode-map (kbd "C-j") 'next-line)
  (evil-define-key '(insert) org-mode-map (kbd "C-k") 'previous-line)
 
  ;; ์ด์ƒํ•˜๊ฒŒ ๊ธฐ์กด ํ‚ค ๋ฐ”์ธ๋”ฉ์ด ์•ˆ์ง€์›Œ์ง„๋‹ค. ์ด๊ฑด ๋‚˜์ค‘์— ๋‹ค์‹œ ํ•˜์ž.
  ;; (define-key org-mode-map (kbd "M-h") nil)
  ;; (define-key org-mode-map (kbd "M-l>") nil)
  ;; (keymap-unset-key [M-h] "evil-mode")
  ;; (keymap-unset-key [M-l] "evil-mode")
  ;; (evil-define-key '(insert) org-mode-map (kbd "M-h") 'delete-backward-char)
  ;; (evil-define-key '(insert) org-mode-map (kbd "M-l") 'delete-forward-char)
 
  (evil-define-key '(insert) org-mode-map (kbd "C-u") 'undo-fu-only-undo)
  (evil-define-key '(insert) org-mode-map (kbd "C-r") 'undo-fu-only-redo)
 
  (evil-define-key '(insert) org-mode-map (kbd "C-0") 'org-begginng-of-line)
  (evil-define-key '(insert) org-mode-map (kbd "C-4") 'org-end-of-line)
 

์ด๋ฏธ์ง€ ์—†์ด embark ๋กœ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์ž.

์ด ๋ฐฉ๋ฒ•์ด ์žˆ์œผ๋ฉด ์ •๋ง ์ด๋งฅ์Šค๋ฅผ ๊ฑฐ์˜ ๋ฌธ์„œํ™” ํ•˜๊ณ  ์„ค๋ช…ํ•˜๋Š”๋ฐ ์œ ๋ฆฌํ•ด์ง„๋‹ค.

which-key toggle

๋„๋Œ€์ฒด ํ‚ค ๋ฐ”์ธ๋”ฉ์ด ๋ญ์•ผ? ๋ญ˜ ์ž…๋ ฅํ•ด์•ผ ์ด๊ฑธ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฑฐ์•ผ? M-x ์—์„œ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋“ค๋„ ์žˆ์ง€๋งŒโ€ฆ evil ์ž…๋ ฅ์ด๋ผ๋˜๊ฐ€ ๋ชจ๋ฅด๋Š” ์„ธ์ƒ์ด ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๊ธฐ์— ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ฐพ๋Š” ๋ฐฉ๋ฒ• ๊ทธ ์ž์ฒด์ด๋‹ค.

which-key ๋ฅผ ํ† ๊ธ€์„ ์ด์šฉํ•ด์„œ ๊ฐ ๋ ˆ๋ฒจ ๋ณ„๋กœ ํ˜„์žฌ ์ž…๋ ฅ ํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค๋งต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ง€๊ธˆ org ๋ฌธ์„œ๋ฅผ ํŽธ์ง‘ ์ค‘์ธ๋ฐ ๋ญ˜ ์ž…๋ ฅํ•ด์•ผ ๋ญ๊ฐ€ ๋˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด ํ† ๊ธ€๋กœ ๋ฉ”๋‰ด๋ฅผ ๋„์›Œ ๋†“๊ณ  ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค. ํ•œ๋‘๋ฒˆ ํ•˜๋‹ค๋ณด๋ฉด ์ต์ˆ™ํ•ด์ง€๊ณ  ๊ธฐ์–ต์ด ๋‚˜๊ณ , ๋‚˜์ค‘์—๋Š” ๋” ํŽธํ•œ ํ‚ค๋กœ ๋ฐ”๊ฟ”์„œ ์“ฐ๊ฒŒ ๋œ๋‹ค.

>

์ด๋ฏธ์ง€๋ฅผ ๋ณธ๋‹ค.

>

>

>

>

vim keybindings

translate:: VIM ํ•ต์‹ฌ ํ‚ค๋งต alias:: project:: url:: person:: progress:: [BROKEN LINK: write],
create-at:: [BROKEN LINK: 2022-07-06] week-at:: #2022-W27 editcount:: 2

์ž…๋ ฅ๋ชจ๋“œ i ๋ฅผ ๋„˜์–ด์„œ์ž.

  • i : ์ปค์„œ ์•ž
  • a : ์ปค์„œ ๋’ค
  • I : ์ค„ ์•ž โ€” i + Home
  • A : ์ค„ ๋
  • o : ๋นˆ์ค„ ๋„ฃ๊ณ  ์ž…๋ ฅ
  • r : ํ•œ๊ธ€์ž ์ˆ˜์ •
  • R : ์ˆ˜์ • ๋ชจ๋“œ
  • ** ๋ช…๋ น๋ชจ๋“œ์—์„œ ๋ฐฉํ–ฅํ‚ค๋ฅผ ๋„˜์–ด์„œ์ž.

    :CUSTOM_ID: ๋ช…๋ น๋ชจ๋“œ์—์„œ-๋ฐฉํ–ฅํ‚ค๋ฅผ-๋„˜์–ด์„œ์ž.

    • * ๋‹จ์–ด ๋‹จ์œ„ ์ด๋™

      :CUSTOM_ID: ๋‹จ์–ด-๋‹จ์œ„-์ด๋™

      • w : Next word
      • b : previous word
    • * ๋ฌธ์ž ๋‹จ์œ„ ์ด๋™

      :CUSTOM_ID: ๋ฌธ์ž-๋‹จ์œ„-์ด๋™

      • h j k l : arrow keys
    • * ๋ฌธ๋‹จ ๋‹จ์œ„ ์ด๋™

      :CUSTOM_ID: ๋ฌธ๋‹จ-๋‹จ์œ„-์ด๋™

      • { : ๋ฌธ๋‹จ ์‹œ์ž‘์œผ๋กœ
      • } : ๋ฌธ๋‹จ ๋์œผ๋กœ
    • * ํ™”๋ฉด ๋‚ด์—์„œ ์ด๋™

      :CUSTOM_ID: ํ™”๋ฉด-๋‚ด์—์„œ-์ด๋™

      • H : ํ™”๋ฉด ๋งจ ์œ„๋กœ
      • L : ํ™”๋ฉด ๋งจ ์•„๋ž˜๋กœ
      • M : ํ™”๋ฉด ๊ฐ€์šด๋Œ€๋กœ
    • * ํŽ˜์ด์ง€ ๋‹จ์œ„ ์ด๋™

      :CUSTOM_ID: ํŽ˜์ด์ง€-๋‹จ์œ„-์ด๋™

      • ctrl u : ๋ฐ˜ ํŽ˜์ด์ง€ ์œ„๋กœ
      • ctrl d : ๋ฐ˜ ํŽ˜์ด์ง€ ์•„๋ž˜๋กœ
  • ** ๋ณต๋ถ™์€ v ๋ณด๋‹ค V ๋ฅผ ์“ฐ์ž

    :CUSTOM_ID: ๋ณต๋ถ™์€-v ๋ณด๋‹ค-v ๋ฅผ-์“ฐ์ž

    • v : ์„ ํƒ ๋ชจ๋“œ
    • V : ์ค„ ๋‹จ์œ„ ์„ ํƒ ๋ชจ๋“œ
    • x : ์˜ค๋ ค๋‘๊ธฐ
    • d : ์‚ญ์ œ
    • p : ๋ถ™์—ฌ๋„ฃ๊ธฐ

Move and Kill Editing Keybindings in Emacs

Hungry Delete with S-<backspace> S-<DEL>

[2023-10-05 Thu 06:50] ์ด๊ฒŒ ์™„๋ฒฝํ•œ ์กฐํ•ฉ์ด์—ˆ๋‹ค. ๋ฐ˜์˜ํ–ˆ๋‹ค.

spacemacs.org ์ฐธ๊ณ 

[2023-09-07 Thu 18:48] home/junghan.spacemacs.d/dot-org/spacemacs.org

jh-editing ์ฐธ๊ณ 

[2023-09-07 Thu 18:48] home/junghan.spacemacs.d/dot-org/jh-editing.org

iedit

[2023-10-04 Wed 12:28] ๋นŒํŠธ์ธ ์•„๋‹˜. ๊ทธ๋Ÿฌ๋‚˜ ์ค‘์š”.

iedit - edit multiple regions simultaneously

evil-iedit-state

[2023-09-09 Sat 16:51] ์ด๊ฑธ๋กœ ๋ชปํ• ๊ฒŒ ์—†๋‹ค.

๋จผ์ € rg-menu ๋กœ regex ๊ฒ€์ƒ‰์„ ํ•œ๋‹ค์Œ์— wgrep ์œผ๋กœ ์žก๊ณ 

v ๋ˆŒ๋Ÿฌ์„œ visual block ์œผ๋กœ ์žก๊ณ  SPC s e ํ•˜๋ฉด ํŒŒ๋ž€์ƒ‰์ด ์žกํžŒ๋‹ค. insert ๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค.

https://github.com/syl20bnr/evil-iedit-state

TEMP auto-highlight-symbol and evil-visualstar

[2023-09-10 Sun 08:25]

์ŠคํŽ˜์ด์Šค๋งฅ์Šค์— ์„ค์น˜ ๋˜์–ด ์žˆ๋Š” ๋‘ ํŒจํ‚ค์ง€๋ฅผ ๋ณด๋ผ. ์žฅ๋‹จ์ ์ด ๋ช…ํ™•ํ•˜๋‹ค.

โ€œevil-visualstarโ€ ๋Š” ๊ธฐ๋ณธ์€ ๊บผ์ ธ ์žˆ๋‹ค. ์ผœ์ฃผ๋ผ.

์™œ ์ผœ์ค˜์•ผ ํ•˜๋Š”๊ฐ€? ๋น„์ฃผ์–ผ ๋ชจ๋“œ๋กœ ์„ ํƒํ•œ ํ…์ŠคํŠธ๋งŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ. ์ด๊ฒŒ ์—†๋‹ค๋ฉด ๊ทธ๋ƒฅ ํƒ€์ดํ•‘ ํ•˜๋ฉด ๋œ๋‹ค. ์•„๋‹ˆ๋ฉด ripgrep ๋„ ๋œ๋‹ค. ํ•„์š” ์—†๋‹ค๋ฉด ์ง€์šฐ๊ณ . ๋˜๋„๋ก ํƒ€์ดํ•‘ ์•ˆํ•˜๋ฉด ํŽธํ•˜์ง€ ์•Š๋Š”๊ฐ€? ์ง€๊ธˆ ์ด๊ฒƒ๋„ ์ž…๋ ฅํ•˜๋ ค๋ฉด ํž˜๋“คํ…๋ฐ

evil-snipe

[2024-01-30 Tue 05:30]

Description

This layer adds various replacements for vimโ€™s default search functions.

  • Alternative implementation of vimโ€™s default search operations.
  • Replacement of evil-surround with a two-character search.
  • Support for alternative scopes for default search operations.
  • Support for alternative motions based on configurable regexps.

Install

Layer

To use this configuration layer, add it to your ~/.spacemacs. You will need to add evil-snipe to the existing dotspacemacs-configuration-layers list in this file.

Improved f and t search behavior

With evil-snipe you can define your own search scope for f and t searches which means that you wonโ€™t have to jump to the correct line before searching with f / t / F / T. And after you have found a match, you can just press f or t again afterwards to continue the search. No need to use ; / โ€‹,โ€‹.

์ด๋ธ”์Šค๋‹™์„ ์‚ฌ์šฉํ•˜๋ฉด f ๋ฐ t ๊ฒ€์ƒ‰์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ง์ ‘ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ f / t / F / T~๋กœ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์ „์— ์˜ฌ๋ฐ”๋ฅธ ์ค„๋กœ ์ด๋™ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์„ ์ฐพ์€ ํ›„์—๋Š” ~์—ํ”„ ๋˜๋Š” ํ‹ฐ~๋ฅผ ๋‹ค์‹œ ๋ˆŒ๋Ÿฌ ๊ฒ€์ƒ‰์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š” ์—†์ด ~; / ~,~๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

This alternate behavior is disabled by default, to enable it set the layer variable evil-snipe-enable-alternate-f-and-t-behaviors to t:

  (setq-default dotspacemacs-configuration-layers
    '((evil-snipe :variables evil-snipe-enable-alternate-f-and-t-behaviors t)))

Two-character search with s

With the s~/~S keys you can do a simple search like f~/~t, but instead of searching for one character, you search for two. This makes the search a lot more precise than regular f~/~t searches. While you can search forward or backwards in the buffer with / and ?, s / S are much easier to reach, donโ€™t require you to press enter and they are precise enough for many common purposes.

S~/S ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด f~/~t~์™€ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ•œ ๋ฌธ์ž๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋Œ€์‹  ๋‘ ๋ฌธ์ž๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๋ฐ˜ ~f~/~t ๊ฒ€์ƒ‰๋ณด๋‹ค ํ›จ์”ฌ ๋” ์ •ํ™•ํ•˜๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„ํผ์—์„œ / ๋ฐ ?~๋กœ ์•ž๋’ค๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ~s / S๋Š” ํ›จ์”ฌ ๋” ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๊ณ , ์—”ํ„ฐํ‚ค๋ฅผ ๋ˆ„๋ฅผ ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ, ๋งŽ์€ ์ผ๋ฐ˜์ ์ธ ์šฉ๋„๋กœ ์ถฉ๋ถ„ํžˆ ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.

More scopes

Evil-snipe also adds several scope options for searches (set evil-snipe-scope and evil-snipe-repeat-scope to one of these, the default value is buffer):

ValueDescription
buffersearch in the rest of the buffer after the cursor (vim-sneak behavior)
linesearch in the current line after the cursor (vim-seek behavior)
visiblesearch in the rest of the visible buffer only
whole-linesame as line, but highlight matches on either side of cursor
whole-buffersame as buffer, but highlight all matches in buffer
whole-visiblesame as visible, but highlight all visible matches in buffer

If you do not want to replace the regular f / F / t / T behavior, just remove this line from evil-snipe/packages.el: (evil-snipe-replace-evil)

Symbol groups

With symbol groups you can let a character stand for a regex, for example a group of characters. By adding a pair of (CHAR REGEX) to the list evil-snipe-aliases you can search for a regex very simply:

  • Here we set the [ character to mean all characters [({ in all modes so a search with sa[ would find a[, a{ or a(.

        ;; Alias [ and ] to all types of brackets
        (push '(?\[ "[[{(]") evil-snipe-aliases)
        (push '(?\] "[]})]") evil-snipe-aliases)
  • Here we set the char : to mean โ€œa regex matching python function definitionsโ€ (but only in python-mode), so by searching with f:fff you can quickly cycle through all function definitions in a buffer!

        ;; For python style functions
        (add-hook 'python-mode-hook
                  (lambda ()
                    (make-variable-buffer-local 'evil-snipe-aliases)
                    (push '(?: "def .+:") evil-snipe-aliases)))

Key bindings

Key bindingDescription
fsearch forward for the next entered character and set the cursor to itโ€™s position
Fsearch backward for the next entered character and set the cursor to itโ€™s position
tsearch forward for the next entered character and set the cursor before itโ€™s position
Tsearch backward for the next entered character and set the cursor before itโ€™s position
ssearch forward for the next entered two characters and set the cursor to itโ€™s position
Ssearch backward for the next entered two characters and set the cursor to itโ€™s position

#๊ด€๋ จ๋…ธํŠธ

์ฝ”์ง€ ์ด๋งฅ์Šค ํด๋กœ์ € ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

์ฝ”์ง€ ์ด๋งฅ์Šค ๋งค๋‰ด์–ผ ํด๋กœ์ € ์ด๋ธ” - emacs clojure evil ide

ํ•˜์›Œ๋“œ ์•„์ €์”จ ha-evil.org ํ›Œ๋ฅญํ•จ

@ํ•˜์›Œ๋“œ์•„๋ธŒ๋žŒ์Šค HowardAbrams ๊ตฌ๋ฃจ ๋ฆฌํ„ฐ๋ ˆ์ดํŠธ ์ด๋งฅ์Šค - hamacs

vanilla/hamacs-evil/ha-evil.org

์‹ ๊ธฐํ•œ ์กฐํ•ฉ์ด ๋งŽ๋„ค. ๊ทธ๋Ÿฌ๋‚˜ ์ผ๋‹จ ๋‘ ์ด๋งฅ์Šค ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•ด๋ผ

์•„์นด์ด๋น™

[2024-01-31 Wed 15:24]

์ „๋ฐ˜์ ์ธ ๊ฐœ์„  ๊ฒ€ํ†  ํ•„์š” by Injae

[2023-09-10 Sun 08:14]

์ด๋ ‡๊ฒŒ ๋งŽ๋‹ค. ์ข‹์€ ๊ฒƒ์€ ์จ๋ผ. ์•„๋ž˜ ์ธ์ œ๋‹˜ ๋ณด๋‹ˆ ์šฉ๋ฒ•์ด ์žˆ๋”๋ผ.

evil-anzu evil-args evil-collection evil-escape evil-exchange evil-iedit-state evil-indent-plus evil-lion evil-nerd-commenter evil-matchit evil-numbers evil-surround evil-textobj-line evil-unimpaired evil-visual-mark-mode evil-visualstar evil-tutor evil-lisp-state evil-cleverparens

/home/junghan/sync/man/dotsamples/korean/injae-dotfiles/module/+evil.el

์ „๋ฐ˜์ ์œผ๋กœ ์—๋นŒ ์‹œ์Šคํ…œ์„ ๊ฒ€ํ† ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์•ˆ์“ฐ๋Š”๊ฒŒ ๋„ˆ๋ฌด ๋งŽ๋‹ค. ๋ชฐ๋ผ์„œ ๊ทธ๋ ‡๋‹ค. ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ๋ผ! Spacemacs ๊ธฐ๋ณธ์œผ๋กœ ๊ฐ€์•ผ ๋œ๋‹ค.

 
    (evil-want-C-u-scroll t)
    (evil-symbol-word-search t)
    (evil-want-minibuffer t)
    (define-key evil-normal-state-map (kbd "q") 'nil) ; evil macro disable
    (define-key evil-visual-state-map (kbd "R") 'evil-visual-exchange-corners)
    (setq-default evil-kill-on-visual-paste nil)
    ;; visual mode 'p' command update clipboard problem fix
 
;; (global-evil-visualstar-mode t) ์—†๋Š” ๊ฒƒ๊ณผ ์žˆ๋Š” ๊ฒƒ์˜ ์ฐจ์ด๋Š”?
 
;;;; string-infraction
;; (use-package evil-string-inflection
;; :config (define-key evil-normal-state-map "gR" 'evil-operator-string-inflection)
;; )
 
;;;; indent-plus
 
;;;; evil-surround
; @call-function
; visual mode S- or gS-
; normal mode ys- or yS-
; change surround cs-
; delete surround ds-
; @select area
; call-functionu- - ;ํ˜„์žฌ๋ถ€ํ„ฐ ๋‹จ์–ด ๋๊นŒ์ง€
; {call-function}-i- ;ํ˜„์žฌ ๋‹จ์–ด
; {call-function}-s- ;ํ˜„์žฌ ์ค„
; @wrap function
; {select-area}-w
; ${target}( ๋ฐ”๊พธ๊ณ ์‹ถ์€๊ฑฐ ), ${change}(๋ฐ”๋€”๊ฑฐ)
; ๊ฐ์‹ธ๊ธฐ:     => y-s-i-w-${change}( "(", "{", "[")
; ์ „๋ถ€ ๊ฐ์‹ธ๊ธฐ => y-s-s-${change}
; ๋ฐ”๊พธ๊ธฐ: => c-s-${target}( "(", "{", "["), ${change}
; ๋ฒ—๊ธฐ๊ธฐ: => d-s-${target}( "(", "{", "[")