Skip to content

Commit

Permalink
update: pages
Browse files Browse the repository at this point in the history
  • Loading branch information
netpyoung committed Dec 28, 2023
1 parent 615f035 commit eaf10fd
Show file tree
Hide file tree
Showing 23 changed files with 608 additions and 57 deletions.
3 changes: 1 addition & 2 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@
- [setting-theme.el](emacs/emacs.d/config/setting-theme.el.md)
- [setting-treemacs.el](emacs/emacs.d/config/setting-treemacs.el.md)
- [lang-emacs-lisp.el](emacs/emacs.d/config/lang-emacs-lisp.el.md)
- [lang-emacs-lisp.el](emacs/emacs.d/config/file-json.el.md)
- [file-json.el](emacs/emacs.d/config/lang-emacs-lisp.el.md)
- [file-json.el](emacs/emacs.d/config/file-json.el.md)
- [file-markdown.el](emacs/emacs.d/config/file-markdown.el.md)
- [util-command.el](emacs/emacs.d/config/util-command.el.md)
- [util-git.el](emacs/emacs.d/config/util-git.el.md)
Expand Down
67 changes: 66 additions & 1 deletion src/emacs/emacs.d/config-loader.el.md
Original file line number Diff line number Diff line change
@@ -1 +1,66 @@
# config-loader.el
# config-loader.el

리스트에 나열된 설정파일들을 로드하고, 로드된 결과를 보여줍니다.

``` lisp
;; file: config-loader.el
(require 'cl-lib)
(require 'cl-seq)
(defalias '-> 'thread-first)
(defalias '->> 'thread-last)
(cl-defstruct ConfigInfo
index
file-path
file-fullpath
time-load-sec)
(defun getConfigInfos (config-dir config-list)
(cl-loop for file-path in config-list
for index from 0
for file-fullpath = (->> file-path
(symbol-name)
(concat config-dir)
(locate-user-emacs-file)
(file-truename))
when (file-exists-p file-fullpath)
collect
(let* ((time-load-sec (-> file-fullpath
(load-file)
(benchmark-run)
(car))))
(make-ConfigInfo :index (+ index 1)
:file-path file-path
:file-fullpath file-fullpath
:time-load-sec time-load-sec))))
(defun getIndicate (val-cur val-max)
(let* ((perc-1 (thread-first
val-cur
(/ val-max)
(* 10)
(round)))
(perc-2 (- 10 perc-1)))
(concat (make-string perc-1 ?■) (make-string perc-2 ?.))))
(defun config-loader:load-config (config-dir config-list)
(let* ((infos (getConfigInfos config-dir config-list))
(acc-sec (->> infos
(mapcar #'ConfigInfo-time-load-sec)
(apply '+ ))))
(let ((buff (get-buffer-create "== 설정 로드 결과 ==")))
(with-current-buffer buff
(view-mode -1)
(erase-buffer)
(insert (format "\n\n총 %d파일, %0.4f초\n\n" (length infos) acc-sec))
(dolist (info infos)
(insert (format "%03d | %s | %0.2f초 | %s\n"
(ConfigInfo-index info)
(getIndicate (ConfigInfo-time-load-sec info) acc-sec)
(ConfigInfo-time-load-sec info)
(ConfigInfo-file-path info))))
(switch-to-buffer buff)
(view-mode +1)))))
```
8 changes: 8 additions & 0 deletions src/emacs/emacs.d/config.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,10 @@
# config/

| prefix | 설명 ||
| -------- | --------------- | ------------------ |
| base- | 기본 | base-define.el |
| os- | 운영체제 특화 | os-windows.el |
| setting- | 사용자설정 | setting-theme.el |
| lang- | 프로그래밍 언어 | lang-emacs-lisp.el |
| file- | 파일 타입별 | file-markdown.el |
| util- | 유틸리티 | util-git.el |
41 changes: 25 additions & 16 deletions src/emacs/emacs.d/config/base-define.el.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,43 @@
# base-define.el

``` lisp
;; file: 0000_define.el
;; file: base-define.el
(defconst true t)
(defconst false nil)
(defconst IS_WINDOWS (eq system-type 'windows-nt))
(defconst IS_MAC (eq system-type 'darwin))
(defconst IS_LINUX (eq system-type 'gnu/linux))
(defconst MODE_ON +1)
(defconst MODE_OFF -1)
(defmacro -> (&rest body)
(let ((result (pop body)))
(dolist (form body result)
(setq result
(append (list (car form) result)
(cdr form))))))
(defmacro ->> (&rest body)
(let ((result (pop body)))
(dolist (form body result)
(setq result
(append form (list result))))))
;; (defmacro -> (&rest body)
;; ;; thread-first
;; (let ((result (pop body)))
;; (dolist (form body result)
;; (setq result
;; (append (list (car form) result)
;; (cdr form))))))
;; (defmacro ->> (&rest body)
;; ;; thread-last
;; (let ((result (pop body)))
;; (dolist (form body result)
;; (setq result
;; (append form (list result))))))
(defmacro comment (&rest body)
nil)
(defmacro do (&rest body)
`(progn
,@body))
(defalias 'count 'length)
(defalias 'first 'car)
(defalias 'rest 'cdr)
(defalias 'do 'progn)
(defalias 'provided? 'featurep)
(defalias '-> 'thread-first)
(defalias '->> 'thread-last)
(defun inc (n) (+ 1 n))
```
19 changes: 18 additions & 1 deletion src/emacs/emacs.d/config/base-setting.el.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
- 예전에는 [(defalias 'yes-or-no-p 'y-or-n-p)](https://www.gnu.org/software/emacs/manual/html_node/elisp/Yes_002dor_002dNo-Queries.html) 이런식으로 했었다

``` lisp
;; file: 0010_base-setting.el
;; file: base-setting.el
(progn ;; `설정::한글'
;; ref: https://www.gnu.org/software/emacs/manual/html_node/emacs/Language-Environments.html
Expand All @@ -22,4 +22,21 @@
(progn ;; `설정::Y_혹은_N으로_대답'
(setq read-answer-short t)
(setq use-short-answers t))
(progn ;; `설정::인덴트'
(setq-default indent-tabs-mode nil)
(setq tab-width 4))
(use-package delsel
;; ref: https://github.com/emacs-mirror/emacs/blob/master/lisp/delsel.el
:ensure nil
:config
(delete-selection-mode +1))
(use-package whitespace
:ensure nil
:hook (before-save . whitespace-cleanup))
```
9 changes: 8 additions & 1 deletion src/emacs/emacs.d/config/file-json.el.md
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
# lang-emacs-lisp.el
# file-json.el

``` lisp
;; file: file-json.el
(use-package json-mode
:ensure t)
```
19 changes: 19 additions & 0 deletions src/emacs/emacs.d/config/file-markdown.el.md
Original file line number Diff line number Diff line change
@@ -1 +1,20 @@
# file-markdown.el

``` lisp
;; file: file-markdown.el
(use-package markdown-mode
;; ref: https://jblevins.org/projects/markdown-mode/
;; ref: https://leanpub.com/markdown-mode/
:ensure t
:commands (gfm-mode)
:mode (("\\.md\\'" . markdown-mode)
("\\.markdown\\'" . markdown-mode))
:init (setq markdown-command "multimarkdown"))
(use-package grip-mode
;; ref: https://github.com/seagle0128/grip-mode
;; ref: grip - https://github.com/joeyespo/grip
;; M-x grip-mode
:ensure t)
```
68 changes: 62 additions & 6 deletions src/emacs/emacs.d/config/lang-emacs-lisp.el.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,78 @@
| buffer-file-name | 현재버퍼 파일의 이름 |

``` lisp
;; file: lang-emacs-lisp.el
(use-package emacs-lisp-mode
:ensure nil
:bind
(("C-c C-l" . (lambda () (interactive) (load-file buffer-file-name)))
("C-c C-z" . ielm))
:config
:init
(add-hook 'emacs-lisp-mode-hook
#'eldoc-mode)
#'eldoc-mode)
;; ref: imenu - https://www.gnu.org/software/emacs/manual/html_node/emacs/Imenu.html
(add-hook 'emacs-lisp-mode-hook
#'(lambda () (imenu-add-to-menubar "@Index")))
#'(lambda () (imenu-add-to-menubar "@Index")))
;; ref: prettify-symbols-mode - prog-mode.el
(add-hook 'emacs-lisp-mode-hook
#'prettify-symbols-mode)
#'prettify-symbols-mode)
;; ref: https://stackoverflow.com/a/6914626
;; (add-hook 'emacs-lisp-mode-hook
;; '(lambda ()
;; (set (make-local-variable lisp-indent-function)
;; 'common-lisp-indent-function)))
;; ref: inferior-emacs-lisp-mode "버퍼: *ielm*"
(add-hook 'lisp-interaction-mode-hook
#'eldoc-mode)
#'eldoc-mode)
(add-hook 'eval-expression-minibuffer-setup-hook
#'eldoc-mode))
#'eldoc-mode))
(use-package eldoc
:ensure nil
:diminish eldoc-mode
:config
(setq eldoc-idle-delay 0.4))
;; (use-package eldoc-box
;; :ensure t
;; :config
;; (add-hook 'emacs-lisp-mode-hook #'eldoc-box-hover-at-point-mode))
(use-package eros
;; eros(Evaluation Result OverlayS for Emacs Lisp)
;; ref: https://github.com/xiongtx/eros
:ensure t
:config
(add-hook 'emacs-lisp-mode-hook
#'eros-mode))
(use-package elisp-autofmt
;; ref: https://codeberg.org/ideasman42/emacs-elisp-autofmt
:ensure t)
(use-package highlight-defined
;; ref: https://github.com/Fanael/highlight-defined
:ensure t
:config
(add-hook 'emacs-lisp-mode-hook
#'highlight-defined-mode))
(use-package aggressive-indent
;; ref: https://github.com/Malabarba/aggressive-indent-mode
:ensure t
:config
(add-hook 'emacs-lisp-mode-hook
#'aggressive-indent-mode))
(use-package keycast
;; ref: https://github.com/tarsius/keycast
;; 모드라인: keycast-mode-line-mode
;; 헤드라인: keycast-header-line-mode
;; 탭 바: keycast-tab-bar-mode
;; 다른 프레임: keycast-log-mode
:ensure t)
```
8 changes: 8 additions & 0 deletions src/emacs/emacs.d/config/os-linux.el.md
Original file line number Diff line number Diff line change
@@ -1 +1,9 @@
# os-linux.el


``` lisp
;; file: os-linux.el
(when (eq system-type 'gnu/linux)
)
```
38 changes: 20 additions & 18 deletions src/emacs/emacs.d/config/os-macos.el.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
# os-macos.el

- <https://www.gnu.org/software/emacs/manual/html_node/elisp/Window-Systems.html>
- 맥의 커맨드키를 이맥스의 메타키로 사용하는게 편하다.

``` lisp
;; 0011_macos.el
;; file: os-macos.el
(when (eq system-type 'darwin)
;; `설정::macOs'
(progn ;; `설정::macOs'
;;
;; ns : NeXTSTEP. Darwin이전에 사용되던 OS
;; darwin: Darwin (kernel)로 macOs의 기반이되는 코어.
;; darwin/ns/mac 이라 치면 보통 macOs구나 라고 생각하면 편하다.
;; mac-function-modifier => alias ns-function-modifier
;; mac-function-modifier => alias ns-function-modifier
;;
;; ref: https://www.gnu.org/software/emacs/manual/html_node/emacs/Mac-_002f-GNUstep-Customization.html
;;
Expand All @@ -21,19 +24,18 @@
;; |hyper|control|super|meta | Space |Cmd |Optn |
;; +-----+-------+-----+-----+-------------------+-----+-----+
;;
(when (eq system-type 'darwin)
;; ref: https://www.gnu.org/software/emacs/manual/html_node/emacs/Mac-_002f-GNUstep-Customization.html
(setq ns-function-modifier 'hyper)
(setq ns-control-modifier 'control)
(setq ns-option-modifier 'super)
(setq ns-command-modifier 'meta)
;; (global-set-key (kbd "S-x") 'kill-region)
;; (global-set-key (kbd "S-c") 'kill-ring-save)
;; (global-set-key (kbd "S-v") 'yank)
;; (global-set-key (kbd "S-a") 'mark-whole-buffer)
;; (global-set-key (kbd "S-s") 'save-buffer)
;; (global-set-key (kbd "S-z") 'undo)
;; (global-set-key (kbd "S-+") 'text-scale-adjust)
;; (global-set-key (kbd "S--") 'text-scale-adjust)
))
;; ref: https://www.gnu.org/software/emacs/manual/html_node/emacs/Mac-_002f-GNUstep-Customization.html
(setq ns-function-modifier 'hyper)
(setq ns-control-modifier 'control)
(setq ns-option-modifier 'super)
(setq ns-command-modifier 'meta)
;; (global-set-key (kbd "S-x") 'kill-region)
;; (global-set-key (kbd "S-c") 'kill-ring-save)
;; (global-set-key (kbd "S-v") 'yank)
;; (global-set-key (kbd "S-a") 'mark-whole-buffer)
;; (global-set-key (kbd "S-s") 'save-buffer)
;; (global-set-key (kbd "S-z") 'undo)
;; (global-set-key (kbd "S-+") 'text-scale-adjust)
;; (global-set-key (kbd "S--") 'text-scale-adjust)
)
```
7 changes: 7 additions & 0 deletions src/emacs/emacs.d/config/os-windows.el.md
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
# os-windows.el

``` lisp
;; file: os-windows.el
(when (eq system-type 'windows-nt)
)
```
Loading

0 comments on commit eaf10fd

Please sign in to comment.