;; Global keybindings (global-set-key (kbd "C-c R") 'revert-buffer) (global-set-key (kbd "C-c w") 'whitespace-cleanup) (defun help/insert-em-dash () "Inserts an EM-DASH (not a HYPEN, not an N-DASH)" (interactive) (insert "—")) (global-set-key (kbd "C--") #'help/insert-em-dash) (use-package hydra :ensure t :defer 1) ;; 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) (use-package which-key :ensure t :config (which-key-mode)) (provide 'rul-bindings)