-* Key Bindings
-Here are some global key bindings for basic editting
-** Esc in minibuffer
-Use =ESC= to exit minibuffer. Also I map =Super-h= the same as =C-g=
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- (define-key minibuffer-local-map [escape] 'keyboard-escape-quit)
- (define-key minibuffer-local-map [escape] 'keyboard-escape-quit)
- (define-key minibuffer-local-ns-map [escape] 'keyboard-escape-quit)
- (define-key minibuffer-local-isearch-map [escape] 'keyboard-escape-quit)
- (define-key minibuffer-local-completion-map [escape] 'keyboard-escape-quit)
- (define-key minibuffer-local-must-match-map [escape] 'keyboard-escape-quit)
- (define-key minibuffer-local-must-match-filename-map [escape] 'keyboard-escape-quit)
- (define-key minibuffer-local-filename-completion-map [escape] 'keyboard-escape-quit)
- (define-key minibuffer-local-filename-must-match-map [escape] 'keyboard-escape-quit)
-
- ;; Also map s-h same as C-g
- (define-key minibuffer-local-map (kbd "s-h") 'keyboard-escape-quit)
-#+END_SRC
-
-** Project operations - =super=
-*** Projectile
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
- (use-package projectile
- :ensure t
- :init
- (setq projectile-enable-caching t)
- (setq projectile-switch-project-action (lambda ()
- (projectile-dired)
- (sd/project-switch-action)))
- (setq projectile-cache-file (concat sd-temp-directory "projectile.cache"))
- :config
- (add-to-list 'projectile-globally-ignored-files "GTAGS")
- (projectile-global-mode t))
-
- (use-package persp-projectile
- :ensure t
- :config
- (persp-mode)
- :bind
- ;; (:map projectile-mode-map
- ;; ("s-t" . projectile-persp-switch-project))
- )
-
- ;; 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)
-
- (global-set-key (kbd "s-f") 'projectile-find-file)
- ;; (global-set-key (kbd "s-`") 'mode-line-other-buffer)
-
- ;; (global-set-key (kbd "s-n") 'persp-next)
- ;; (global-set-key (kbd "s-p") 'persp-prev)
- ;; (global-set-key (kbd "s-;") 'persp-switch-last)
-
- (global-set-key (kbd "s-=") 'text-scale-increase)
- (global-set-key (kbd "s--") 'text-scale-decrease)
-
- ;; (global-set-key (kbd "s-u") 'undo-tree-visualize)
-#+END_SRC