- ;; change default-directory of scratch buffer to projectile-project-root
- (defun sd/project-switch-action ()
- "Change default-directory of scratch buffer to current projectile-project-root directory"
- (interactive)
- (dolist (buffer (buffer-list))
- (if (string-match (concat "scratch.*" (projectile-project-name))
- (buffer-name buffer))
- (let ((root (projectile-project-root)))
- (with-current-buffer buffer
- (cd root))))))
-#+END_SRC
-
-*** project config =super= keybindings
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- ;; (global-set-key (kbd "s-h") 'keyboard-quit)
- ;; (global-set-key (kbd "s-j") 'ido-switch-buffer)
- ;; (global-set-key (kbd "s-k") 'ido-find-file)
- ;; (global-set-key (kbd "s-l") 'sd/delete-current-window)
- ;; s-l --> goto-line
- ;; (global-set-key (kbd "s-/") 'swiper)
- ;; s-; -->
- ;; s-' --> 'next-multiframe-window
- (global-set-key (kbd "<s-return>") 'toggle-frame-fullscreen)
+ (require 'utilities)
+ ;; (defhydra sd/hydra-window (:color red :columns nil)
+ ;; "C-o"
+ ;; ;; windows switch
+ ;; ("h" windmove-left nil :exit t)
+ ;; ("j" windmove-down nil :exit t)
+ ;; ("k" windmove-up nil :exit t)
+ ;; ("l" windmove-right nil :exit t)
+ ;; ("C-o" other-window nil :exit t)
+ ;; ;; window resize
+ ;; ("H" hydra-move-splitter-left nil)
+ ;; ("J" hydra-move-splitter-down nil)
+ ;; ("K" hydra-move-splitter-up nil)
+ ;; ("L" hydra-move-splitter-right nil)
+ ;; ;; windows split
+ ;; ("v" (lambda ()
+ ;; (interactive)
+ ;; (split-window-right)
+ ;; (windmove-right))
+ ;; nil :exit t)
+ ;; ("x" (lambda ()
+ ;; (interactive)
+ ;; (split-window-below)
+ ;; (windmove-down))
+ ;; nil :exit t)
+ ;; ;; buffer / windows switch
+ ;; ("o" sd/toggle-max-windows nil :exit t)
+ ;; ("C-k" sd/delete-current-window nil :exit t)
+ ;; ("C-d" (lambda ()
+ ;; (interactive)
+ ;; (kill-buffer)
+ ;; (sd/delete-current-window))
+ ;; nil :exit t)
+
+ ;; ;; ace-window
+ ;; ;; ("'" other-window "other" :exit t)
+ ;; ;; ("a" ace-window "ace")
+ ;; ("s" ace-swap-window nil)
+ ;; ("D" ace-delete-window nil :exit t)
+ ;; ;; ("i" ace-maximize-window "ace-one" :exit t)
+ ;; ;; Windows undo - redo
+ ;; ("u" (progn (winner-undo) (setq this-command 'winner-undo)) nil)
+ ;; ("r" (progn (winner-redo) (setq this-command 'winner-redo)) nil)
+
+ ;; ;; ibuffer, dired, eshell, bookmarks
+ ;; ;; ("C-i" other-window nil :exit t)
+ ;; ("C-b" ido-switch-buffer nil :exit t)
+ ;; ("C-f" projectile-find-file nil :exit t)
+ ;; ("C-r" ivy-recentf nil :exit t)
+ ;; ;; ("C-p" persp-switch nil :exit t)
+ ;; ;; ("C-t" projectile-persp-switch-project nil :exit t)
+
+ ;; ;; other special buffers
+ ;; ("d" sd/project-or-dired-jump nil :exit t)
+ ;; ("b" ibuffer nil :exit t)
+ ;; ("t" multi-term nil :exit t)
+ ;; ("e" sd/toggle-project-eshell nil :exit t)
+ ;; ("m" bookmark-jump-other-window nil :exit t)
+ ;; ("M" bookmark-set nil :exit t)
+ ;; ("g" magit-status nil :exit t)
+ ;; ;; ("p" paradox-list-packages nil :exit t)
+
+ ;; ;; quit
+ ;; ("q" nil nil)
+ ;; ("<ESC>" nil nil)
+ ;; ("C-h" windmove-left nil :exit t)
+ ;; ("C-j" windmove-down nil :exit t)
+ ;; ("C-k" windmove-up nil :exit t)
+ ;; ("C-l" windmove-right nil :exit t)
+ ;; ("C-;" nil nil :exit t)
+ ;; ("n" nil nil :exit t)
+ ;; ("[" nil nil :exit t)
+ ;; ("]" nil nil :exit t)
+ ;; ("f" nil nil))
+
+ ;; (global-unset-key (kbd "C-o"))
+ ;; (global-set-key (kbd "C-o") 'sd/hydra-window/body)
+
+ ;; (defun sd/project-or-dired-jump ()
+ ;; "If under project, jump to the root directory, otherwise
+ ;; jump to dired of current file"
+ ;; (interactive)
+ ;; (if (projectile-project-p)
+ ;; (projectile-dired)
+ ;; (dired-jump)))
+#+END_SRC
+
+Kill the help window and buffer when quit.
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (with-eval-after-load "help-mode"
+ (define-key help-mode-map (kbd "q") (lambda ()
+ (interactive)
+ (quit-window t))))
+
+ (with-eval-after-load 'man
+ (set-face-attribute 'Man-overstrike nil :inherit 'bold :foreground "orange red")
+ (set-face-attribute 'Man-underline nil :inherit 'underline :foreground "forest green")
+ (define-key Man-mode-map (kbd "q") (lambda ()
+ (interactive)
+ (Man-kill))))