Fix keybindings for dirvish
This commit is contained in:
parent
0465cc52e1
commit
52ce9cda96
@ -285,6 +285,156 @@ Setup other stuff
|
|||||||
|
|
||||||
;; (add-hook 'before-save-hook 'whitespace-cleanup)
|
;; (add-hook 'before-save-hook 'whitespace-cleanup)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
** Text Editor
|
||||||
|
|
||||||
|
Emacs is an great operating system, if only it had a good text editor...
|
||||||
|
|
||||||
|
*** Text editing
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(global-set-key (kbd "M-z") #'zap-up-to-char)
|
||||||
|
(global-set-key (kbd "M-Z") #'zap-to-char)
|
||||||
|
|
||||||
|
(defun joe/duplicate-line-comment ()
|
||||||
|
(interactive)
|
||||||
|
(let ((col (current-column)))
|
||||||
|
(duplicate-line)
|
||||||
|
(comment-line 1)
|
||||||
|
(move-to-column col)))
|
||||||
|
|
||||||
|
(global-set-key (kbd "C-c d") 'duplicate-line)
|
||||||
|
(global-set-key (kbd "C-c C-;") 'joe/duplicate-line-comment)
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
*** Hydra
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(straight-use-package 'hydra)
|
||||||
|
|
||||||
|
(defhydra hydra-navigate (global-map "<f2>")
|
||||||
|
"Window Navigation"
|
||||||
|
("q" nil "quit")
|
||||||
|
("d" joe/smooth-scroll-half-page-down "half page down")
|
||||||
|
("u" joe/smooth-scroll-half-page-up "half page up")
|
||||||
|
("e" joe/smooth-scroll-short-down "line down")
|
||||||
|
("y" joe/smooth-scroll-short-up "line up")
|
||||||
|
("n" next-line "line down")
|
||||||
|
("p" previous-line "line up")
|
||||||
|
("M-r" move-to-window-line-top-bottom "Reposition cursor"))
|
||||||
|
#+end_src
|
||||||
|
*** Multiple Cursors
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(straight-use-package 'multiple-cursors)
|
||||||
|
#+end_src
|
||||||
|
*** Evil
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
|
||||||
|
(setq evil-want-keybinding nil)
|
||||||
|
(setq evil-undo-system 'undo-fu)
|
||||||
|
(setq evil-want-C-u-scroll t)
|
||||||
|
(setq evil-want-Y-yank-to-eol t)
|
||||||
|
(setq evil-disable-insert-state-bindings t)
|
||||||
|
|
||||||
|
(straight-use-package 'evil)
|
||||||
|
(straight-use-package 'evil-collection)
|
||||||
|
|
||||||
|
(evil-mode t)
|
||||||
|
(evil-collection-init)
|
||||||
|
|
||||||
|
;; TODO: We need 3 bindings; 1.) close buffer 2.) close window 3.) close buffer and window
|
||||||
|
;; To disable a keybinding just bind it to nil
|
||||||
|
(evil-set-leader 'normal (kbd "SPC"))
|
||||||
|
|
||||||
|
(evil-define-key 'normal 'global
|
||||||
|
(kbd "<leader>w") 'save-buffer
|
||||||
|
(kbd "<leader>q") 'kill-buffer-and-window
|
||||||
|
(kbd "<leader>k") 'kill-this-buffer
|
||||||
|
(kbd "<leader>h") 'help-command
|
||||||
|
(kbd "<leader>hf") 'helpful-callable
|
||||||
|
(kbd "<leader>hv") 'helpful-variable
|
||||||
|
(kbd "<leader>hk") 'helpful-key
|
||||||
|
(kbd "<leader>ho") 'helpful-symbol
|
||||||
|
(kbd "<leader>hg") 'helpful-at-point
|
||||||
|
(kbd "<leader>fb") 'bookmark-jump
|
||||||
|
(kbd "<leader>fr") 'consult-recent-file
|
||||||
|
(kbd "<leader>ff") 'project-find-file
|
||||||
|
(kbd "<leader>fi") 'joe/edit-init
|
||||||
|
(kbd "<leader>bl") 'mode-line-other-buffer
|
||||||
|
(kbd "<leader>ba") 'consult-buffer
|
||||||
|
(kbd "<leader>bb") 'consult-project-buffer
|
||||||
|
(kbd "<leader>bi") 'ibuffer
|
||||||
|
(kbd "<leader>bm") 'joe/toggle-buffer-mode
|
||||||
|
(kbd "<leader>br") 'joe/revert-buffer-no-confirm
|
||||||
|
(kbd "<leader>gg") 'magit-status
|
||||||
|
(kbd "<leader>gc") 'magit-clone
|
||||||
|
(kbd "<leader>ss") 'joe/vterm-here
|
||||||
|
(kbd "<leader>sv") 'vterm
|
||||||
|
(kbd "<leader>tv") 'vterm-other-window
|
||||||
|
(kbd "<leader>Ba") 'joe/bookmark-set-and-save
|
||||||
|
(kbd "<leader>Bd") 'bookmark-delete
|
||||||
|
(kbd "<leader>mr") 'joe/compile-run
|
||||||
|
(kbd "<leader>mc") 'joe/compile-comp
|
||||||
|
(kbd "<leader>ct") 'consult-theme
|
||||||
|
(kbd "<leader>cl") 'consult-line
|
||||||
|
(kbd "<leader>ci") 'consult-imenu
|
||||||
|
(kbd "<leader>cy") 'consult-yank-from-kill-ring
|
||||||
|
(kbd "<leader>cg") 'consult-ripgrep
|
||||||
|
(kbd "<leader>cF") 'consult-find
|
||||||
|
(kbd "<leader>co") 'consult-outline)
|
||||||
|
|
||||||
|
(kbd "C-h") 'evil-window-left)
|
||||||
|
(kbd "C-j") 'evil-window-down)
|
||||||
|
(kbd "C-k") 'evil-window-up)
|
||||||
|
(kbd "C-l") 'evil-window-right)
|
||||||
|
(kbd "C-p") 'tab-previous)
|
||||||
|
(kbd "C-n") 'tab-next)
|
||||||
|
(kbd "<leader>tn") 'tab-new)
|
||||||
|
(kbd "<leader>tc") 'tab-close)
|
||||||
|
(kbd "<leader>tr") 'tab-rename)
|
||||||
|
|
||||||
|
(evil-define-key 'normal 'global (kbd "q") 'avy-goto-word-0)
|
||||||
|
|
||||||
|
(evil-define-key 'normal 'global (kbd "M-1") '(lambda () (interactive) (tab-bar-select-tab 1)))
|
||||||
|
(evil-define-key 'normal 'global (kbd "M-2") '(lambda () (interactive) (tab-bar-select-tab 2)))
|
||||||
|
(evil-define-key 'normal 'global (kbd "M-3") '(lambda () (interactive) (tab-bar-select-tab 3)))
|
||||||
|
(evil-define-key 'normal 'global (kbd "M-4") '(lambda () (interactive) (tab-bar-select-tab 4)))
|
||||||
|
(evil-define-key 'normal 'global (kbd "M-5") '(lambda () (interactive) (tab-bar-select-tab 5)))
|
||||||
|
(evil-define-key 'normal 'global (kbd "M-6") '(lambda () (interactive) (tab-bar-select-tab 6)))
|
||||||
|
(evil-define-key 'normal 'global (kbd "M-7") '(lambda () (interactive) (tab-bar-select-tab 7)))
|
||||||
|
(evil-define-key 'normal 'global (kbd "M-8") '(lambda () (interactive) (tab-bar-select-tab 8)))
|
||||||
|
(evil-define-key 'normal 'global (kbd "M-9") '(lambda () (interactive) (tab-bar-select-tab 9)))
|
||||||
|
;; (define-prefix-command 'evil-consult-map)
|
||||||
|
;; (define-key evil-consult-map "b" 'evil-window-bottom-right)
|
||||||
|
;; (define-key evil-consult-map "c" 'evil-window-delete)
|
||||||
|
|
||||||
|
;; (define-key evil-normal-state-map "," 'evil-consult-map)
|
||||||
|
|
||||||
|
(defvar global-evil-leader-map (make-sparse-keymap))
|
||||||
|
(evil-define-key 'normal 'global-evil-leader-map (kbd "SPC") 'evil-send-leader)
|
||||||
|
|
||||||
|
(define-minor-mode global-evil-leader-mode
|
||||||
|
"Minor mode to make evil leader global"
|
||||||
|
:global t
|
||||||
|
:keymap global-evil-leader-map)
|
||||||
|
(global-evil-leader-mode)
|
||||||
|
|
||||||
|
;; (evil-define-key 'normal 'global (kbd "M-h") 'tab-line-switch-to-prev-tab)
|
||||||
|
;; (evil-define-key 'normal 'global (kbd "M-l") 'tab-line-switch-to-next-tab)
|
||||||
|
|
||||||
|
(straight-use-package 'evil-surround)
|
||||||
|
(global-evil-surround-mode t)
|
||||||
|
|
||||||
|
(straight-use-package 'evil-snipe)
|
||||||
|
(evil-snipe-override-mode t)
|
||||||
|
|
||||||
|
(straight-use-package 'evil-commentary)
|
||||||
|
(evil-commentary-mode t)
|
||||||
|
|
||||||
|
(straight-use-package 'evil-goggles)
|
||||||
|
(evil-goggles-mode t)
|
||||||
|
(setq evil-goggles-duration 0.075)
|
||||||
|
(setq evil-goggles-pulse t)
|
||||||
|
(setq evil-goggles-async-duration 0.55)
|
||||||
|
#+end_src
|
||||||
** Buffers
|
** Buffers
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun joe/kill-this-buffer-or-popup ()
|
(defun joe/kill-this-buffer-or-popup ()
|
||||||
@ -434,39 +584,6 @@ The theme of `C-x 4` bindings is that they operate on other windows, so this fun
|
|||||||
(global-set-key (kbd "C-S-v") #'joe/smooth-scroll-short-down)
|
(global-set-key (kbd "C-S-v") #'joe/smooth-scroll-short-down)
|
||||||
(global-set-key (kbd "M-S-v") #'joe/smooth-scroll-short-up)
|
(global-set-key (kbd "M-S-v") #'joe/smooth-scroll-short-up)
|
||||||
|
|
||||||
#+end_src
|
|
||||||
** Org Mode
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(straight-use-package 'org-bullets)
|
|
||||||
|
|
||||||
(defun joe/org-init ()
|
|
||||||
(setq org-todo-keywords '((sequence "TODO" "IN-PROGRESS" "|" "DONE" "BACKLOG")))
|
|
||||||
(setq org-agenda-files '("~/todo.org"))
|
|
||||||
|
|
||||||
(org-babel-do-load-languages
|
|
||||||
'org-babel-load-languages
|
|
||||||
'((emacs-lisp . t)
|
|
||||||
(makefile . t)
|
|
||||||
(shell . t)))
|
|
||||||
|
|
||||||
(require 'org-tempo)
|
|
||||||
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
|
|
||||||
(setq org-edit-src-content-indentation 0))
|
|
||||||
(with-eval-after-load 'org (joe/org-init))
|
|
||||||
|
|
||||||
(setq org-blank-before-new-entry
|
|
||||||
'((heading . nil)
|
|
||||||
(plain-list-item . nil)))
|
|
||||||
(setq org-cycle-separator-lines 1)
|
|
||||||
(setq org-hide-emphasis-markers t)
|
|
||||||
(setq org-src-window-setup 'current-window)
|
|
||||||
|
|
||||||
(defun joe/org-hook ()
|
|
||||||
(local-set-key (kbd "C-. C-i") 'consult-org-heading)
|
|
||||||
(org-bullets-mode)
|
|
||||||
(org-indent-mode))
|
|
||||||
(add-hook 'org-mode-hook 'joe/org-hook)
|
|
||||||
#+end_src
|
#+end_src
|
||||||
** VEMCO
|
** VEMCO
|
||||||
|
|
||||||
@ -613,6 +730,99 @@ targets."
|
|||||||
|
|
||||||
;; (global-set-key (kbd "C-s") 'swiper-thing-at-point)
|
;; (global-set-key (kbd "C-s") 'swiper-thing-at-point)
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
** Dirvish/Dired
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(straight-use-package 'dirvish)
|
||||||
|
(with-eval-after-load 'dirvish
|
||||||
|
(dirvish-override-dired-mode)
|
||||||
|
(setq delete-by-moving-to-trash t)
|
||||||
|
(setq dired-dwim-target t)
|
||||||
|
(setq dirvish-reuse-session nil)
|
||||||
|
|
||||||
|
(dirvish-define-preview exa (file)
|
||||||
|
"Use `exa' to generate directory preview."
|
||||||
|
:require ("exa") ; tell Dirvish to check if we have the executable
|
||||||
|
(when (file-directory-p file) ; we only interest in directories here
|
||||||
|
`(shell . ("exa" "--icons" "--color=always" "--no-user" "-al" "--group-directories-first" ,file))))
|
||||||
|
(add-to-list 'dirvish-preview-dispatchers 'exa)
|
||||||
|
|
||||||
|
(setq dired-listing-switches "-l --sort=version --almost-all --human-readable --time-style=long-iso --group-directories-first --no-group")
|
||||||
|
(setq dirvish-preview-dispatchers (cl-substitute 'pdf-preface 'pdf dirvish-preview-dispatchers))
|
||||||
|
(setq dirvish-attributes '(all-the-icons file-size collapse subtree-state))
|
||||||
|
|
||||||
|
(defun joe/dirvish-find-directory (dir)
|
||||||
|
(interactive "FDirvish Directory:")
|
||||||
|
(dirvish-dwim dir))
|
||||||
|
|
||||||
|
(setq dirvish-quick-access-entries
|
||||||
|
'(("h" "~/" "Home")
|
||||||
|
("d" "~/Downloads/" "Downloads")
|
||||||
|
("D" "~/Documents/" "Documents")
|
||||||
|
("b" "~/Documents/Books/" "Books")
|
||||||
|
("p" "~/Development/" "Dev")
|
||||||
|
("r" "~/Repositories" "Repos")
|
||||||
|
("B" "~/pCloudDrive/" "pCloud")))
|
||||||
|
|
||||||
|
(evil-define-key 'normal dirvish-mode-map
|
||||||
|
(kbd "C-c f") #'dirvish-fd
|
||||||
|
(kbd "a") #'dirvish-quick-access
|
||||||
|
(kbd ".") #'dired-create-empty-file
|
||||||
|
(kbd "f") #'dirvish-file-info-menu
|
||||||
|
(kbd "y") #'dirvish-yank-menu
|
||||||
|
(kbd "h") #'dired-up-directory
|
||||||
|
(kbd "l") #'dired-find-file
|
||||||
|
(kbd "s") #'dirvish-quicksort
|
||||||
|
(kbd "v") #'dirvish-vc-menu
|
||||||
|
(kbd "q") #'dirvish-quit
|
||||||
|
(kbd "L") #'dirvish-history-go-forward
|
||||||
|
(kbd "H") #'dirvish-history-go-backward
|
||||||
|
(kbd "TAB") #'dirvish-subtree-toggle
|
||||||
|
(kbd "M-n") #'dirvish-narrow
|
||||||
|
(kbd "M-l") #'dirvish-ls-switches-menu
|
||||||
|
(kbd "M-m") #'dirvish-mark-menu
|
||||||
|
(kbd "M-t") #'dirvish-layout-toggle
|
||||||
|
(kbd "M-s") #'dirvish-setup-menu
|
||||||
|
(kbd "M-e") #'dirvish-emerge-menu
|
||||||
|
(kbd "M-j") #'dirvish-fd-jump))
|
||||||
|
|
||||||
|
(evil-global-set-key 'normal (kbd "-") #'dirvish-dwim)
|
||||||
|
(global-set-key (kbd "C-x d") #'dirvish-dwim)
|
||||||
|
(global-set-key (kbd "C-x C-d") #'joe/dirvish-find-directory)
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
** Org Mode
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(straight-use-package 'org-bullets)
|
||||||
|
|
||||||
|
(defun joe/org-init ()
|
||||||
|
(setq org-todo-keywords '((sequence "TODO" "IN-PROGRESS" "|" "DONE" "BACKLOG")))
|
||||||
|
(setq org-agenda-files '("~/todo.org"))
|
||||||
|
|
||||||
|
(org-babel-do-load-languages
|
||||||
|
'org-babel-load-languages
|
||||||
|
'((emacs-lisp . t)
|
||||||
|
(makefile . t)
|
||||||
|
(shell . t)))
|
||||||
|
|
||||||
|
(require 'org-tempo)
|
||||||
|
(add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
|
||||||
|
(setq org-edit-src-content-indentation 0))
|
||||||
|
(with-eval-after-load 'org (joe/org-init))
|
||||||
|
|
||||||
|
(setq org-blank-before-new-entry
|
||||||
|
'((heading . nil)
|
||||||
|
(plain-list-item . nil)))
|
||||||
|
(setq org-cycle-separator-lines 1)
|
||||||
|
(setq org-hide-emphasis-markers t)
|
||||||
|
(setq org-src-window-setup 'current-window)
|
||||||
|
|
||||||
|
(defun joe/org-hook ()
|
||||||
|
(local-set-key (kbd "C-. C-i") 'consult-org-heading)
|
||||||
|
(org-bullets-mode)
|
||||||
|
(org-indent-mode))
|
||||||
|
(add-hook 'org-mode-hook 'joe/org-hook)
|
||||||
#+end_src
|
#+end_src
|
||||||
** Avy
|
** Avy
|
||||||
|
|
||||||
@ -637,64 +847,6 @@ targets."
|
|||||||
(global-set-key (kbd "C-h C-d") #'helpful-at-point)
|
(global-set-key (kbd "C-h C-d") #'helpful-at-point)
|
||||||
(global-set-key (kbd "C-h F") #'helpful-function)
|
(global-set-key (kbd "C-h F") #'helpful-function)
|
||||||
(global-set-key (kbd "C-h C") #'helpful-command)
|
(global-set-key (kbd "C-h C") #'helpful-command)
|
||||||
#+end_src
|
|
||||||
** Dirvish/Dired
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(straight-use-package 'dirvish)
|
|
||||||
(with-eval-after-load 'dirvish
|
|
||||||
(dirvish-override-dired-mode)
|
|
||||||
(setq delete-by-moving-to-trash t)
|
|
||||||
(setq dired-dwim-target t)
|
|
||||||
(setq dirvish-reuse-session nil)
|
|
||||||
|
|
||||||
(dirvish-define-preview exa (file)
|
|
||||||
"Use `exa' to generate directory preview."
|
|
||||||
:require ("exa") ; tell Dirvish to check if we have the executable
|
|
||||||
(when (file-directory-p file) ; we only interest in directories here
|
|
||||||
`(shell . ("exa" "--icons" "--color=always" "--no-user" "-al" "--group-directories-first" ,file))))
|
|
||||||
(add-to-list 'dirvish-preview-dispatchers 'exa)
|
|
||||||
|
|
||||||
(setq dired-listing-switches "-l --sort=version --almost-all --human-readable --time-style=long-iso --group-directories-first --no-group")
|
|
||||||
(setq dirvish-preview-dispatchers (cl-substitute 'pdf-preface 'pdf dirvish-preview-dispatchers))
|
|
||||||
(setq dirvish-attributes '(all-the-icons file-size collapse subtree-state))
|
|
||||||
|
|
||||||
(defun joe/dirvish-find-directory (dir)
|
|
||||||
(interactive "FDirvish Directory:")
|
|
||||||
(dirvish-dwim dir))
|
|
||||||
|
|
||||||
(setq dirvish-quick-access-entries
|
|
||||||
'(("h" "~/" "Home")
|
|
||||||
("d" "~/Downloads/" "Downloads")
|
|
||||||
("D" "~/Documents/" "Documents")
|
|
||||||
("b" "~/Documents/Books/" "Books")
|
|
||||||
("p" "~/Development/" "Dev")
|
|
||||||
("r" "~/Repositories" "Repos")
|
|
||||||
("B" "~/pCloudDrive/" "pCloud")))
|
|
||||||
|
|
||||||
(define-key dirvish-mode-map (kbd "C-c f") #'dirvish-fd)
|
|
||||||
(define-key dirvish-mode-map (kbd "a" ) #'dirvish-quick-access)
|
|
||||||
(define-key dirvish-mode-map (kbd "." ) #'dired-create-empty-file)
|
|
||||||
(define-key dirvish-mode-map (kbd "f" ) #'dirvish-file-info-menu)
|
|
||||||
(define-key dirvish-mode-map (kbd "y" ) #'dirvish-yank-menu)
|
|
||||||
(define-key dirvish-mode-map (kbd "N" ) #'dirvish-narrow)
|
|
||||||
(define-key dirvish-mode-map (kbd "^" ) #'dired-up-directory)
|
|
||||||
(define-key dirvish-mode-map (kbd "h" ) #'dirvish-history-jump)
|
|
||||||
(define-key dirvish-mode-map (kbd "s" ) #'dirvish-quicksort)
|
|
||||||
(define-key dirvish-mode-map (kbd "v" ) #'dirvish-vc-menu)
|
|
||||||
(define-key dirvish-mode-map (kbd "q" ) #'dirvish-quit)
|
|
||||||
(define-key dirvish-mode-map (kbd "TAB" ) #'dirvish-subtree-toggle)
|
|
||||||
(define-key dirvish-mode-map (kbd "M-f" ) #'dirvish-history-go-forward)
|
|
||||||
(define-key dirvish-mode-map (kbd "M-b" ) #'dirvish-history-go-backward)
|
|
||||||
(define-key dirvish-mode-map (kbd "M-l" ) #'dirvish-ls-switches-menu)
|
|
||||||
(define-key dirvish-mode-map (kbd "M-m" ) #'dirvish-mark-menu)
|
|
||||||
(define-key dirvish-mode-map (kbd "M-t" ) #'dirvish-layout-toggle)
|
|
||||||
(define-key dirvish-mode-map (kbd "M-s" ) #'dirvish-setup-menu)
|
|
||||||
(define-key dirvish-mode-map (kbd "M-e" ) #'dirvish-emerge-menu)
|
|
||||||
(define-key dirvish-mode-map (kbd "M-j" ) #'dirvish-fd-jump))
|
|
||||||
|
|
||||||
(global-set-key (kbd "C-x d") #'dirvish-dwim)
|
|
||||||
(global-set-key (kbd "C-x C-d") #'joe/dirvish-find-directory)
|
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
** Terminals/Shells
|
** Terminals/Shells
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
@ -750,146 +902,6 @@ startup. Reason we have to call this is so the vterm fucntion can call `vterm--i
|
|||||||
(setq undo-strong-limit 100663296) ;; 96mb.
|
(setq undo-strong-limit 100663296) ;; 96mb.
|
||||||
(setq undo-outer-limit 1006632960) ;; 960mb.
|
(setq undo-outer-limit 1006632960) ;; 960mb.
|
||||||
#+end_src
|
#+end_src
|
||||||
** Text Editor
|
|
||||||
|
|
||||||
Emacs is an great operating system, if only it had a good text editor...
|
|
||||||
|
|
||||||
*** Text editing
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(global-set-key (kbd "M-z") #'zap-up-to-char)
|
|
||||||
(global-set-key (kbd "M-Z") #'zap-to-char)
|
|
||||||
|
|
||||||
(defun joe/duplicate-line-comment ()
|
|
||||||
(interactive)
|
|
||||||
(let ((col (current-column)))
|
|
||||||
(duplicate-line)
|
|
||||||
(comment-line 1)
|
|
||||||
(move-to-column col)))
|
|
||||||
|
|
||||||
(global-set-key (kbd "C-c d") 'duplicate-line)
|
|
||||||
(global-set-key (kbd "C-c C-;") 'joe/duplicate-line-comment)
|
|
||||||
|
|
||||||
#+end_src
|
|
||||||
*** Hydra
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(straight-use-package 'hydra)
|
|
||||||
|
|
||||||
(defhydra hydra-navigate (global-map "<f2>")
|
|
||||||
"Window Navigation"
|
|
||||||
("q" nil "quit")
|
|
||||||
("d" joe/smooth-scroll-half-page-down "half page down")
|
|
||||||
("u" joe/smooth-scroll-half-page-up "half page up")
|
|
||||||
("e" joe/smooth-scroll-short-down "line down")
|
|
||||||
("y" joe/smooth-scroll-short-up "line up")
|
|
||||||
("n" next-line "line down")
|
|
||||||
("p" previous-line "line up")
|
|
||||||
("M-r" move-to-window-line-top-bottom "Reposition cursor"))
|
|
||||||
#+end_src
|
|
||||||
*** Multiple Cursors
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(straight-use-package 'multiple-cursors)
|
|
||||||
#+end_src
|
|
||||||
*** Evil
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
|
|
||||||
(setq evil-want-keybinding nil)
|
|
||||||
(setq evil-undo-system 'undo-fu)
|
|
||||||
(setq evil-want-C-u-scroll t)
|
|
||||||
(setq evil-want-Y-yank-to-eol t)
|
|
||||||
(setq evil-disable-insert-state-bindings t)
|
|
||||||
|
|
||||||
(straight-use-package 'evil)
|
|
||||||
(straight-use-package 'evil-collection)
|
|
||||||
|
|
||||||
(evil-mode t)
|
|
||||||
(evil-collection-init)
|
|
||||||
|
|
||||||
;; TODO: We need 3 bindings; 1.) close buffer 2.) close window 3.) close buffer and window
|
|
||||||
;; To disable a keybinding just bind it to nil
|
|
||||||
(evil-set-leader 'normal (kbd "SPC"))
|
|
||||||
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>w") 'save-buffer)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>q") 'kill-buffer-and-window)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>k") 'kill-this-buffer)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>h") 'help-command)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>hf") 'helpful-callable)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>hv") 'helpful-variable)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>hk") 'helpful-key)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>ho") 'helpful-symbol)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>hg") 'helpful-at-point)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>fb") 'bookmark-jump)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>fr") 'consult-recent-file)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>ff") 'project-find-file)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>fi") 'joe/edit-init)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>bl") 'mode-line-other-buffer)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>ba") 'consult-buffer)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>bb") 'consult-project-buffer)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>bi") 'ibuffer)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>bm") 'joe/toggle-buffer-mode)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>br") 'joe/revert-buffer-no-confirm)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>gg") 'magit-status)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>gc") 'magit-clone)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>ss") 'joe/vterm-here)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>sv") 'vterm)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>tv") 'vterm-other-window)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>Ba") 'joe/bookmark-set-and-save)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>Bd") 'bookmark-delete)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>mr") 'joe/compile-run)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>mc") 'joe/compile-comp)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>ct") 'consult-theme)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>cl") 'consult-line)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>ci") 'consult-imenu)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>cy") 'consult-yank-from-kill-ring)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>cg") 'consult-ripgrep)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>cF") 'consult-find)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>co") 'consult-outline)
|
|
||||||
|
|
||||||
(evil-define-key 'normal 'global (kbd "C-h") 'evil-window-left)
|
|
||||||
(evil-define-key 'normal 'global (kbd "C-j") 'evil-window-down)
|
|
||||||
(evil-define-key 'normal 'global (kbd "C-k") 'evil-window-up)
|
|
||||||
(evil-define-key 'normal 'global (kbd "C-l") 'evil-window-right)
|
|
||||||
(evil-define-key 'normal 'global (kbd "C-p") 'tab-previous)
|
|
||||||
(evil-define-key 'normal 'global (kbd "C-n") 'tab-next)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>tn") 'tab-new)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>tc") 'tab-close)
|
|
||||||
(evil-define-key 'normal 'global (kbd "<leader>tr") 'tab-rename)
|
|
||||||
|
|
||||||
(evil-define-key 'normal 'global (kbd "q") 'avy-goto-word-0)
|
|
||||||
|
|
||||||
;; (define-prefix-command 'evil-consult-map)
|
|
||||||
;; (define-key evil-consult-map "b" 'evil-window-bottom-right)
|
|
||||||
;; (define-key evil-consult-map "c" 'evil-window-delete)
|
|
||||||
|
|
||||||
;; (define-key evil-normal-state-map "," 'evil-consult-map)
|
|
||||||
|
|
||||||
(defvar global-evil-leader-map (make-sparse-keymap))
|
|
||||||
(evil-define-key 'normal 'global-evil-leader-map (kbd "SPC") 'evil-send-leader)
|
|
||||||
|
|
||||||
(define-minor-mode global-evil-leader-mode
|
|
||||||
"Minor mode to make evil leader global"
|
|
||||||
:global t
|
|
||||||
:keymap global-evil-leader-map)
|
|
||||||
(global-evil-leader-mode)
|
|
||||||
|
|
||||||
;; (evil-define-key 'normal 'global (kbd "M-h") 'tab-line-switch-to-prev-tab)
|
|
||||||
;; (evil-define-key 'normal 'global (kbd "M-l") 'tab-line-switch-to-next-tab)
|
|
||||||
|
|
||||||
(straight-use-package 'evil-surround)
|
|
||||||
(global-evil-surround-mode t)
|
|
||||||
|
|
||||||
(straight-use-package 'evil-snipe)
|
|
||||||
(evil-snipe-override-mode t)
|
|
||||||
|
|
||||||
(straight-use-package 'evil-commentary)
|
|
||||||
(evil-commentary-mode t)
|
|
||||||
|
|
||||||
(straight-use-package 'evil-goggles)
|
|
||||||
(evil-goggles-mode t)
|
|
||||||
(setq evil-goggles-duration 0.075)
|
|
||||||
(setq evil-goggles-pulse t)
|
|
||||||
(setq evil-goggles-async-duration 0.55)
|
|
||||||
#+end_src
|
|
||||||
** Which Key
|
** Which Key
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
Loading…
x
Reference in New Issue
Block a user