denote ๋ฉ”๋‰ด์–ผ ํ•œ๊ธ€

** 13.5. Use dired-virtual-mode for arโ€ฆ

๊ทธ๋ž˜ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ตฌ๋‚˜. ์‰ฝ๋„ค. ์ข‹๋‹ค.

* 7. Linking notes โ€ฆ

๋…ธํŠธ ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ• ๊ด€๋ จ

.gitmodules

[submodule โ€œplugins/ffmpeg-cropโ€]

์—ฌ๊ธฐ ๋ณด๋ฉด ๊ท€ํ•œ ์Šคํƒ€์ผ ์–ด๋–ป๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ์˜ˆ์˜๊ฒŒ ์Šคํฌ๋ฆฐ์ƒท์„ ํ•˜๋Š”๊ฐ€? ๋ฐฐ์›Œ์•ผํ•  ๋ถ€๋ถ„์ด๋‹ค.

[submodule โ€œplugins/ffmpeg-cropโ€] path = plugins/ffmpeg-crop url = git@github.com:karthink/ffmpeg-crop.git [submodule โ€œplugins/inkโ€] path = plugins/ink url = git@github.com:karthink/ink.git [submodule โ€œplugins/elmoโ€] path = plugins/elmo url = git@github.com:karthink/elmo.git [submodule โ€œplugins/popperโ€] path = plugins/popper url = git@github.com:karthink/popper.git [submodule โ€œplugins/consult-dirโ€] path = plugins/consult-dir url = git@github.com:karthink/consult-dir.git [submodule โ€œplugins/project-xโ€] path = plugins/project-x url = git@github.com:karthink/project-x.git

Why and How I Use โ€˜Org-modeโ€™ for My Writing and More

๊ทธ ์‹ฌ์ˆ ๊ถ‚์€ ์™ธ๊ด€ ์•„๋ž˜์—๋Š” ์•„๋งˆ๋„ /๊ฐ€์žฅ/๊ฐ€์žฅ ์ ‘โ€ฆ

https://emacspeak.sourceforge.net/

Ref: Emacs Org-mode - a system for note-taking and project planning by Carsten Dominik, the inventor of org-mode. The video was curated by TV Raman, a blind-since-childhood programmer, who uses org-mode and who also created โ€œEmacspeakโ€ - Emacs for the Blind. For the more fortunate of us, though some Emacs default settings are weird, and though muc of the language to explain Emacs is annoyingly crufty and old, it may be worth adapting to the oddities. Honestly, one doesnโ€™t need to learn much to derive use out of Emacs org-mode. That said, if you want all the familiarity of your Mouse and keyboard shortcuts, then by all means configure Emacs to fit your needs. That is its forte! Many โ€œstarter kitsโ€ are available, to remove the burden of figuring out how to do so. mousemacs seems to be quite nice. Hit me up if you need help setting it up ( weblog at this site)!

์ฐธ๊ณ : https://www.youtube.com/watch?v=oJTwQvgfgMM[Emacs ์กฐ์ง ๋ชจ๋“œ - ๋ฉ”๋ชจ ์ž‘์„ฑ ๋ฐ ํ”„๋กœ์ ํŠธ ๊ณ„ํš์„ ์œ„ํ•œ ์‹œ์Šคํ…œ]], ์กฐ์ง ๋ชจ๋“œ์˜ ๋ฐœ๋ช…๊ฐ€์ธ Carsten Dominik ์˜ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด ๋™์˜์ƒ์€ ์–ด๋ฆด ์ ๋ถ€ํ„ฐ ์‹œ๊ฐ ์žฅ์• ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ, org-mode ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์‹œ๊ฐ ์žฅ์• ์ธ์„ ์œ„ํ•œ Emacs ์ธ โ€œEmacspeakโ€๋„ ๋งŒ๋“  TV Raman ์ด ํ๋ ˆ์ดํŒ…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šด์ด ์ข‹์€ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ์ผ๋ถ€ Emacs ๊ธฐ๋ณธ ์„ค์ •์ด ์ด์ƒํ•˜๊ณ  Emacs ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋งŽ์€ ์–ธ์–ด๊ฐ€ ์„ฑ๊ฐ€์‹œ๊ณ  ์˜ค๋ž˜๋˜์—ˆ์ง€๋งŒ ์ด์ƒํ•œ ์ ์— ์ ์‘ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์†”์งํžˆ Emacs ์กฐ์ง ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šธ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋งˆ์šฐ์Šค์™€ ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค์˜ ๋ชจ๋“  ์นœ์ˆ™ ํ•จ์„ ์›ํ•œ๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ ํ•„์š”์— ๋งž๊ฒŒ Emac ์„ ๊ตฌ์„ฑํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ์ด ์ด ๋งฅ์˜ ์žฅ์ ์ž…๋‹ˆ๋‹ค! ๋‹ค์–‘ํ•œ โ€œ์Šคํƒ€ํ„ฐ ํ‚คํŠธโ€๊ฐ€ ์ œ๊ณต๋˜๋ฏ€๋กœ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ด์•ผ ํ•˜๋Š” ๋ถ€๋‹ด์„ ๋œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/corvideon/mousemacs[๋งˆ์šฐ์Šค๋งฅ์Šค]]๊ฐ€ ๊ฝค ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์„ค์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ์ €์—๊ฒŒ ์—ฐ๋ฝํ•˜์„ธ์š” (์ด ์‚ฌ์ดํŠธ์˜ weblog)!

My Emacs Keybindings

ํ‚ค๋ฐ”์ธ๋”ฉ ์„ค์ • ํŒŒ์ผ์— ๋Œ€ํ•˜์—ฌ (๋ฒˆ์—ญ)

About this file

In the same way Emacs is the heart of my dotfiles, this file right here is the โ€œheartโ€ of my Emacs config. It has been split from my full config (which can be found here but you probably knew that already and came to this section from that file) because it is large enough to fit in its own file and there is no need for it to be in the main file and make that unnecessarily larger. This file tangles to keybindings.el in my libs folder (which stores all the extrnal elisp โ€œlibrariesโ€ that I have manually installed without the use of MELPA) and this makes this essentially act as an external emacs package. I can require it inside my main config file, which tangles to init.el and everything set in this file will be loaded with Emacs. It consists of all the custom keybindings I have set for Emacs. And there are a lot of those as I personally am not a fun of the default Emacs keybindings as the control key is not in an ergonomic position to click (and personally I dont like the solution of making Caps-Lock act as control as I am then going to become an addict and will be unable to use a computer that doesnt have Caps Lock bound as Control) and I also just like using my keybindings cause they make more sense for me (as I thought of all of them).

Emacs๊ฐ€ ์ œ ๋‹ทํŒŒ์ผ์˜ ํ•ต์‹ฌ์ธ ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ๋ฐ”๋กœ ์—ฌ๊ธฐ ์ด ํŒŒ์ผ์€ ์ œ Emacs ๊ตฌ์„ฑ์˜ โ€˜ํ•ต์‹ฌโ€™์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ์ž์ฒด ํŒŒ์ผ์— ๋“ค์–ด๊ฐˆ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ํฌ๊ณ  ๋ฉ”์ธ ํŒŒ์ผ์— ๋„ฃ์–ด์„œ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ํฌ๊ฒŒ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ๊ตฌ์„ฑ(์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋ฏธ ์•Œ๊ณ  ๊ณ„์…”์„œ ํ•ด๋‹น ํŒŒ์ผ์—์„œ ์ด ์„น์…˜์œผ๋กœ ์˜ค์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค)์—์„œ ๋ถ„๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ๋‚ด libs ํด๋”(MELPA๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•œ ๋ชจ๋“  ์™ธ๋ถ€ elisp โ€œ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌโ€๋ฅผ ์ €์žฅํ•˜๋Š” ํด๋”)์˜ keybindings.el์— ์—‰์ผœ ์žˆ์œผ๋ฏ€๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ์™ธ๋ถ€ emacs ํŒจํ‚ค์ง€์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ตฌ์„ฑ ํŒŒ์ผ์— ์ด ํŒŒ์ผ์„ ์š”๊ตฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ํŒŒ์ผ์— ์„ค์ •๋œ ๋ชจ๋“  ๊ฒƒ์ด init.el์— ์—ฐ๊ฒฐ๋˜๊ณ  ์ด ํŒŒ์ผ์— ์„ค์ •๋œ ๋ชจ๋“  ๊ฒƒ์ด Emacs์™€ ํ•จ๊ป˜ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ์ œ๊ฐ€ ์„ค์ •ํ•œ ๋ชจ๋“  ์‚ฌ์šฉ์ž ์ง€์ • ํ‚ค ๋ฐ”์ธ๋”ฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์ œ์–ด ํ‚ค๊ฐ€ ์ธ์ฒด ๊ณตํ•™์ ์œผ๋กœ ํด๋ฆญํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜์— ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ Emacs ํ‚ค ๋ฐ”์ธ๋”ฉ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์œผ๋ฉฐ(๊ฐœ์ธ์ ์œผ๋กœ Caps-Lock์„ ์ œ์–ด๋กœ ์ž‘๋™ํ•˜๊ฒŒ ํ•˜๋Š” ์†”๋ฃจ์…˜์€ ์ค‘๋…์ž๊ฐ€ ๋˜์–ด Caps Lock์ด ์ œ์–ด๋กœ ๋ฐ”์ธ๋”ฉ๋˜์ง€ ์•Š์€ ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค) ๋˜ํ•œ ์ œ๊ฐ€ ์ƒ๊ฐํ•œ ๋ชจ๋“  ํ‚ค๊ฐ€ ์ €์—๊ฒŒ ๋” ์ ํ•ฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ œ ํ‚ค ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค.

I use a setup, inspired to an extent by what Spacemacs (the first Emacs โ€œdistributionโ€ I ever used), but in some ways they are different. The two most important modifier/leader keys in this config are Space (abbreviated as SPC in the rest of the file) and the comma key โ€œ,โ€. Space is used for the more general keybindings which are active in every buffer if it is in normal mode. Comma is for buffer specific commands and since the only major mode I use a lot which has enough commands for me to be interested in setting this up is org, comma essentially stands for org mode commands. Its only active if the bufferโ€™s major mode is org and it is also in normal mode. I manage these with general.el, an excellent package for managing your custom keybindings. I also enable which-key mode globally so that I can see which keys I can press to follow a leader key and what action they will do (its probably one of the most useful emacs packages and I cannot comprehend why its not enabled by default in Emacs).

์ €๋Š” ์ŠคํŽ˜์ด์Šค๋งฅ(์ œ๊ฐ€ ์ฒ˜์Œ ์‚ฌ์šฉํ•œ Emacs โ€œ๋ฐฐํฌํŒโ€)์—์„œ ์–ด๋А ์ •๋„ ์˜๊ฐ์„ ์–ป์€ ์„ค์ •์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ๋ช‡ ๊ฐ€์ง€ ๋ฉด์—์„œ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด ์„ค์ •์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋‘ ๊ฐ€์ง€ ์ˆ˜์ •์ž/๋ฆฌ๋” ํ‚ค๋Š” ์ŠคํŽ˜์ด์Šค(ํŒŒ์ผ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์—์„œ๋Š” SPC๋กœ ์•ฝ์นญ)์™€ ์‰ผํ‘œ ํ‚ค โ€,โ€œ์ž…๋‹ˆ๋‹ค. ์ŠคํŽ˜์ด์Šค๋Š” ์ผ๋ฐ˜ ๋ชจ๋“œ์ธ ๊ฒฝ์šฐ ๋ชจ๋“  ๋ฒ„ํผ์—์„œ ํ™œ์„ฑํ™”๋˜๋Š” ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ํ‚ค ๋ฐ”์ธ๋”ฉ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‰ผํ‘œ๋Š” ๋ฒ„ํผ๋ณ„ ๋ช…๋ น์„ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ, ์ œ๊ฐ€ ์ด ์„ค์ •์— ๊ด€์‹ฌ์„ ๊ฐ€์งˆ ๋งŒํผ ์ถฉ๋ถ„ํ•œ ๋ช…๋ น์ด ์žˆ๋Š” ์œ ์ผํ•œ ์ฃผ์š” ๋ชจ๋“œ๋Š” org ๋ชจ๋“œ์ด๋ฏ€๋กœ ์‰ผํ‘œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ org ๋ชจ๋“œ ๋ช…๋ น์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„ํผ์˜ ์ฃผ ๋ชจ๋“œ๊ฐ€ org์ด๊ณ  ์ผ๋ฐ˜ ๋ชจ๋“œ์ธ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ํ‚ค ๋ฐ”์ธ๋”ฉ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ›Œ๋ฅญํ•œ ํŒจํ‚ค์ง€์ธ general.el๋กœ ์ด๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์–ด๋–ค ํ‚ค ๋ชจ๋“œ๋ฅผ ์ „์—ญ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์–ด๋–ค ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ๋ฆฌ๋” ํ‚ค๋ฅผ ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๊ณ  ์–ด๋–ค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ฐ€์žฅ ์œ ์šฉํ•œ ์—๋งฅ ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ ์™œ ์—๋งฅ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š์€์ง€ ์ดํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค).

General has integration with which-key, so for some functions whose names I find not so self descriptive, I have a which-key statement, which gives me a special message instead of the command name for those commands. I can also nest leader keys inside other leader keys creating some larger โ€œkey-chordsโ€ using general. Those are for a group of commands, which have similar functionalities but differ in something. For example SPC c is for calendar commands (using the calfw.el package) while SPC r is for Org-Roam commands and commands about reference material. If you add the nested leader key to the original leader keyโ€™s list of actions and set it to :ignore t as I have done below, you can set a which-key statement which describes what that leader key is about.

์ผ๋ฐ˜ ํ‚ค๋Š” ์–ด๋–ค ํ‚ค์™€ ํ†ตํ•ฉ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฆ„์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ์ผ๋ถ€ ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ ์–ด๋–ค ํ‚ค ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ช…๋ น์˜ ๋ช…๋ น ์ด๋ฆ„ ๋Œ€์‹  ํŠน๋ณ„ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ผ๋ฐ˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ๋” ํ‚ค๋ฅผ ๋‹ค๋ฅธ ๋ฆฌ๋” ํ‚ค ์•ˆ์— ์ค‘์ฒฉ์‹œ์ผœ ๋” ํฐ โ€˜ํ‚ค-์ฝ”๋“œโ€™๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ๋Šฅ์€ ๋น„์Šทํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์ ์ด ์žˆ๋Š” ๋ช…๋ น ๊ทธ๋ฃน์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด SPC c๋Š” ์บ˜๋ฆฐ๋” ๋ช…๋ น(calfw.el ํŒจํ‚ค์ง€ ์‚ฌ์šฉ)์„ ์œ„ํ•œ ๊ฒƒ์ด๊ณ  SPC r์€ Org-Roam ๋ช…๋ น ๋ฐ ์ฐธ์กฐ ์ž๋ฃŒ์— ๋Œ€ํ•œ ๋ช…๋ น์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ค‘์ฒฉ๋œ ๋ฆฌ๋” ํ‚ค๋ฅผ ์›๋ž˜ ๋ฆฌ๋” ํ‚ค์˜ ์ž‘์—… ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•˜๊ณ  ์•„๋ž˜์—์„œ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ :๋ฌด์‹œ t๋กœ ์„ค์ •ํ•˜๋ฉด ํ•ด๋‹น ๋ฆฌ๋” ํ‚ค์˜ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•˜๋Š” which-key ๋ฌธ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

2024-08-14

โ€œI do mathematics because once you proveโ€ฆ

์œ ๋ฐœ ํ•˜๋ผ๋ฆฌ (2024) ๋„ฅ์„œ์Šค: ์„๊ธฐ ์‹œ๋Œ€๋ถ€ํ„ฐ AI๊นŒ์ง€ ์ •๋ณด ๋„คํŠธ์›Œํฌ์˜ ๊ฐ„๋žตํ•œ ์—ญ์‚ฌ

๋‘˜์งธ, ์‹ค๋ฆฌ์ฝ˜ ์ปคํŠผ์ด ์ธ๊ฐ„์„ ํ•œ ์ง‘๋‹จ๊ณผ ๋‹ค๋ฅธ ์ง‘๋‹จ์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผโ€ฆ

BIBLIOGRAPHY