Emacs의 Function key 설정 공개
16810 단어 emacs-lispEmacs
F1: help-command
F1은 Deault에서 다양한 help-commad에 대한 prifix로 설정되어 있으므로 그대로 사용합니다. which-key.el을 도입하면 각 명령의 가이드가 미니 버퍼에 표시되므로 편리합니다.
(use-package which-key)
(add-hook 'after-init-hook #'which-key-mode)
F2:hydra-compile
일반적으로는 여기에
M-x compile
를 할당하고 있는 사람이 많다고 생각합니다. 나는 다양한 작업을 makefaile로 자동화하고 있으므로 목적에 따라 명령을 구분할 수 있도록 hydra로 메뉴 설정하고 있습니다.(bind-key
[f2]
(defhydra hydra-compile (:color red :hint nil)
"
🗿 Compile: make _k_ _a_ll _u_pftp _m_ove _b_klog _g_it _c_lean 🐾 "
("k" my:make-k :exit t)
("a" my:make-all :exit t)
("u" my:make-upftp :exit t)
("m" my:make-move :exit t)
("g" my:make-git :exit t)
("b" my:make-bklog :exit t)
("c" my:make-clean)))
F3: term-current-dir-open
열려 있는 buffer의 현재로 시스템의 터미널을 엽니다. 또한 Shift+F3에서 Filer를 엽니다.
(bind-key
[f3]
(defun term-current-dir-open ()
"Open terminal application in current dir."
(interactive)
(let ((dir default-directory))
(when (eq system-type 'darwin)
(shell-command (concat "open -a iterm.app " dir)))
(when (eq system-type 'gnu/linux)
(shell-command (concat "gnome-terminal --maximize " dir))))))
(bind-key
[S-f3]
(defun filer-current-dir-open ()
"Open filer in current dir."
(interactive)
(when (eq system-type 'darwin)
(shell-command "open ."))
(when (eq system-type 'gnu/linux)
(shell-command (concat "xdg-open " default-directory)))))
F4: goto-chg
텍스트를 편집하고 있고 이전 편집한 부분으로 돌아가고 싶을 때가 종종 있습니다. 그 때 편리한 것이 goto-chg.el입니다.
(use-package goto-chg
:bind
([f4] . goto-last-change)
([S-f4] . goto-last-change-reverse))
F5: quickrun
매우
perl
이나 ruby
등의 미니 스크립트를 자작하는 경우도 있으므로 quickrun으로 간단하게 시운전할 수 있도록 하고 있습니다.(use-package quickrun)
(bind-key [f5] 'quickrun)
F6: countel commands
다기능 counsel의 커맨드군을 키 바인드해도 매우 기억할 수 없네요.
자주 사용하는 주요 커맨드만 키 바인딩하고, 나머지는 F6를 두드리면 counsel-M-x가 마음대로 좁혀주므로 필요한 커맨드를 선택 할 수 있습니다.
(bind-key [f6] (lambda ()
(interactive)
(counsel-M-x "^counsel ")))
counsel의 상세 설정은 이쪽
F7: calendar
리타이어하고 나서는, Emacs에서의 GTD는 그만두었습니다만, 작업중에 캘린더를 칠라 보고 싶을 때도 있습니다. Calfw까지는 필요 없기 때문에 표준 기능의 calendar를 사용하고 있습니다. F7을 눌러 표시/숨기기를 토글합니다.
(use-package calendar
:commands calendar
:bind (([f7] . calendar)
:map calendar-mode-map
("n" . calendar-forward-day)
("b" . calendar-backward-day)
([f7] . calendar-exit))
:config
(setq calendar-mark-holidays-flag t))
calendar의 상세 설정은 이쪽
F8 : iconfy-or-deiconfy-frame
Emacs 숨기기 (최소화)/다시 표시를 toggle합니다.
;; Iconify-frame
(bind-key [f8] 'iconify-or-deiconify-frame)
F9: display-line-numbers-mode
linum-mode는 무겁기 때문에 사용하지 않았습니다만, Emacs26 이후가 되어 동작이 가벼운
display-line-numbers-mode
를 사용할 수 있게 되었으므로, F9로 toggle하고 있습니다.(add-hook 'prog-mode-hook 'display-line-numbers-mode)
(add-hook 'text-mode-hook 'display-line-numbers-mode)
(bind-key [f9] 'display-line-numbers-mode)
F10: 대시보드
Emacs에서 작업을 재설정 할 때는 dashboard로 돌아가려고합니다. 다시 돌아갈 때는 dashboard buffer를 Refresh합니다.
(use-package dashboard
:bind (([f10] . open-dashboard)
:map dashboard-mode-map
([f10] . quit-dashboard))
:hook
(after-init . dashboard-setup-startup-hook)
:config
(defun open-dashboard ()
"Open the *dashboard* buffer and jump to the first widget."
(interactive)
(delete-other-windows)
;; Refresh dashboard buffer
(if (get-buffer dashboard-buffer-name)
(kill-buffer dashboard-buffer-name))
(dashboard-insert-startupify-lists)
(switch-to-buffer dashboard-buffer-name)
;; Jump to the first section
(goto-char (point-min))
(dashboard-goto-recent-files))
(defun quit-dashboard ()
"Quit dashboard window."
(interactive)
(quit-window t)
(when (and dashboard-recover-layout-p
(bound-and-true-p winner-mode))
(winner-undo)
(setq dashboard-recover-layout-p nil)))
(defun dashboard-goto-recent-files ()
"Go to recent files."
(interactive)
(funcall (local-key-binding "r"))))
dashboard의 상세 설정은 이쪽
F11: neotree-toggle
클래식한 설정이군요.
F12: darkroom-mode
내 Emacs는 문장 쓰기가 메인이므로 Darkroom-mode를 F12의 toggle에서 사용하고 있습니다. darkroom-mode로 작업할 때는
flycheck-mode
git-gutter-mode
display-line-numbers-mode
를 각각 OFF로 합니다.(use-package darkroom
:bind (([f12] . my:darkroom-mode-in)
:map darkroom-mode-map
([f12] . my:darkroom-mode-out ))
:config
(defun my:darkroom-mode-in ()
"Darkroom mode in."
(interactive)
(display-line-numbers-mode 0)
(flycheck-mode 0)
(git-gutter-mode 0)
(darkroom-mode 1))
(defun my:darkroom-mode-out ()
"Darkroom mode out."
(interactive)
(darkroom-mode 0)
(git-gutter-mode 1)
(flycheck-mode 1)
(display-line-numbers-mode 1)))
Reference
이 문제에 관하여(Emacs의 Function key 설정 공개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/minoruGH/items/f6ddc75ab8a28e8b694e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)