정확히 말하면 elisp(emacs lisp) 코드 다섯 줄(주석 제외)에 불과하지만, 나름 성취라고 할 수 있으므로, 기록 삼아 올려둡니다.
코드의 내용은 다음과 같습니다.
(defun new-file-with-date-time ()
"날짜-시간 표기된 새 파일 만들기"
(interactive)
(find-file (format-time-string "~/Dropbox/txt/%y%m%d-%H%M%S.txt")))
(global-set-key (kbd "C-c C-n") 'new-file-with-date-time)
;; 날짜 시간 표기법은 이 링크를 참고 https://www.gnu.org/software/emacs/manual/html_node/elisp/Time-Parsing.html
이게 뭐 하는 거냐. 제가 글 쓸 때 쓰는 emacs라는 텍스트 에디터가 있습니다. 1976년에 만들어진, 저보다 나이가 많은 소프트웨어입니다.
구시대의 유물답게 emacs는 수많은 세팅을 자기 손으로 직접 해야 합니다. 그 단점은 반대로, 본인이 원하면 기존에 없던 기능을 써서 넣을 수도 있다는 뜻이 됩니다.
저 코드는 이런 뜻입니다. 이맥스에서 어떤 파일을 편집중이건, ctrl-c ctrl-n 을 입력하면, 210616-203308.txt 같은 이름의 새 파일이 열린다는 것입니다.
즉 저는 언제나 어느 상황에서나, '지금 이 순간'을 파일명으로 삼은 텍스트 파일을 만들고, 내용을 입력한 후, 저장할 수 있습니다. 저장 경로는 제가 텍스트 파일을 모아두는 드롭박스 내 txt 폴더.
이 '자체 확장 기능'은 세 가지 기능을 제공합니다. 1) 순간적으로 떠오르는 내용을 빨리 적어놓기 2) 메모에 고유 식별자(날짜-시간) 부여하기 3) 모바일에서도 접근 가능하게 하기(드롭박스라서 자동 싱크)
저는 프로그래밍을 따로 배워본 적이 없습니다. 단지 영어로 어떻게 어떻게 구글 검색을 좀 해보면 남들이 쓴 코드를 찾아볼 수 있고, 그걸 붙여넣어 실험해보다 보면 작동하는 결과를 얻을 수 있는 거죠.
그런 식이다보니, 솔직히 저 코드에서 (interactive)가 왜 들어가야 하는지 그 이유는 아직도 이해 못하고 있습니다. 하지만 뭐, 아무렴 어떻습니까. 제가 원하는 기능을 스스로 구현해냈으니, 그거면 된 거죠.
이런 글을 왜 쓰나 싶지만, 자랑? 기록? 뭐가 됐건 그냥 올려봅니다.
(참고로 제가 이준석의 '엑셀 시험' 어쩌구를 보고 콧방귀를 뀐 이유도 이런 겁니다. 저는 learning curve가 굉장히 가파른 고대 유물 소프트웨어를 즐겨 쓰는 사람이고, 심지어 간단한 스크립트도 짭니다. 하지만 이게 저의 '글쟁이'로서의 '능력'과 상관 있나요? 없습니다. 좋은 글쟁이는 글을 제 시간에 읽기 좋게 쓰는 사람이면 충분합니다. HWP에서 원고지 매수 확인하는 기능만 알아도 충분합니다. 이제 다시, 일하러 가야죠.)