- ;; Buffer & File explore
- (evil-leader/set-key "b" 'counsel-projectile-find-file)
- (evil-leader/set-key "f" 'ivy-switch-buffer)
- (evil-leader/set-key "r" 'ivy-recentf)
- (evil-leader/set-key "w" 'save-buffer)
- ;; Window
- (evil-leader/set-key "s" 'evil-window-split)
- (evil-leader/set-key "v" 'evil-window-vsplit)
- (evil-leader/set-key "t" 'sd/hydra-window-layout/body)
- (evil-leader/set-key "q" 'evil-quit)
- ;; others
- (evil-leader/set-key "g" 'magit-status)
- ;; (evil-leader/set-key "d" (lambda () (interactive) (dired default-directory)))
- (evil-leader/set-key "d" 'dired)
- (evil-leader/set-key "e" 'sd/toggle-project-eshell)
- (evil-leader/set-key "h" 'help))
+ (cl-loop for (key . fun ) in '(("F" . counsel-projectile-switch-to-buffer)
+ ("f" . (lambda () (interactive)
+ (call-interactively (if (projectile-project-p)
+ 'projectile-switch-to-buffer
+ 'ivy-switch-buffer))))
+ ("b" . counsel-projectile-find-file)
+ ("r" . ivy-recentf)
+ ("w" . save-buffer)
+ ("v" . evil-window-vsplit)
+ ("s" . evil-window-split)
+ ("t" . sd/hydra-gtags/body)
+ ("p" . sd/hydra-projectile/body)
+ ("q" . evil-quit)
+ ("g" . magit-status)
+ ("e" . sd/toggle-project-eshell)
+ ("d" . dired)
+ ("h" . help))
+ do (evil-leader/set-key key fun)))