(use-package hydra :ensure t :defer 1) ;; projectile (defhydra hydra-projectile-other-window (:color teal) "projectile-other-window" ("f" projectile-find-file-other-window "file") ("g" projectile-find-file-dwim-other-window "file dwim") ("d" projectile-find-dir-other-window "dir") ("b" projectile-switch-to-buffer-other-window "buffer") ("q" nil "cancel" :color blue)) (defhydra hydra-projectile (:color teal :hint nil) " PROJECTILE: %(projectile-project-root) Find File Search/Tags Buffers Cache ------------------------------------------------------------------------------------------ _s-f_: file _a_: ag _i_: Ibuffer _c_: cache clear _ff_: file dwim _g_: update gtags _b_: switch to buffer _x_: remove known project _fd_: file curr dir _o_: multi-occur _s-k_: Kill all buffers _X_: cleanup non-existing _r_: recent file _s_: ripgrep ^^^^_z_: cache current _d_: dir " ("a" projectile-ag) ("b" projectile-switch-to-buffer) ("c" projectile-invalidate-cache) ("d" projectile-find-dir) ("s-f" projectile-find-file) ("ff" projectile-find-file-dwim) ("fd" projectile-find-file-in-directory) ("g" ggtags-update-tags) ("s-g" ggtags-update-tags) ("i" projectile-ibuffer) ("K" projectile-kill-buffers) ("s-k" projectile-kill-buffers) ("m" projectile-multi-occur) ("o" projectile-multi-occur) ("s-p" projectile-switch-project "switch project") ("p" projectile-switch-project) ("s" projectile-save-project-buffers "save project buffers") ("r" projectile-recentf) ("x" projectile-remove-known-project) ("X" projectile-cleanup-known-projects) ("z" projectile-cache-current-file) ("`" hydra-projectile-other-window/body "other window") ("q" nil "cancel" :color blue)) (global-set-key (kbd "C-c p") 'hydra-projectile/body) ;; tab-bar (defhydra hydra-tab-bar (:color amaranth) "Tab Bar Operations" ("t" tab-new "Create a new tab" :column "Creation" :exit t) ("d" dired-other-tab "Open Dired in another tab") ("f" find-file-other-tab "Find file in another tab") ("x" tab-close "Close current tab") ("m" tab-move "Move current tab" :column "Management") ("r" tab-rename "Rename Tab") ("" tab-bar-select-tab-by-name "Select tab by name" :column "Navigation") ("l" tab-next "Next Tab") ("j" tab-previous "Previous Tab") ("q" nil "Exit" :exit t)) (global-set-key (kbd "C-x t") 'hydra-tab-bar/body) ;; Zoom (defhydra hydra-zoom () "zoom" ("g" text-scale-increase "in") ("l" text-scale-decrease "out")) (global-set-key (kbd "C-c z") 'hydra-zoom/body) ;; Go (defhydra hydra-go () "zoom" ("=" gofmt :exit t) ("c" go-coverage :exit t)) ;; vterm (defhydra hydra-vterm () "zoom" ("t" multi-vterm "Open a terminal" :exit t) ("d" multi-vterm-dedicated-open "Dedicated" :exit t) ("p" multi-vterm-prev "Previous terminal") ("n" multi-vterm-next "Next terminal") ("r" multi-vterm-rename-buffer "Rename buffer" :exit t) ) (global-set-key (kbd "C-c t") 'hydra-vterm/body) (global-set-key (kbd "C-c m") 'hydra-go/body)