|
|
|
@ -338,7 +338,8 @@ On the fly syntax checking.
|
|
|
|
|
:defer t |
|
|
|
|
:hook |
|
|
|
|
((org-mode |
|
|
|
|
prog-mode) |
|
|
|
|
prog-mode |
|
|
|
|
tex-mode) |
|
|
|
|
. yas-minor-mode) |
|
|
|
|
:custom (yas-prompt-functions '(yas-ido-prompt |
|
|
|
|
yas-completing-prompt)) |
|
|
|
@ -422,21 +423,47 @@ Irony requires M-x =irony-install-server=.
|
|
|
|
|
Possible modern replacement for column-enforce-mode: |
|
|
|
|
https://github.com/laishulu/hl-fill-column |
|
|
|
|
|
|
|
|
|
*** RSS |
|
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(use-package elfeed |
|
|
|
|
:custom |
|
|
|
|
(elfeed-db-directory "~/.emacs.d/elfeed/") |
|
|
|
|
(elfeed-enclosure-default-dir "~/downloads/") |
|
|
|
|
(elfeed-search-filter "@6-months-ago +unread") |
|
|
|
|
(elfeed-search-clipboard-type 'CLIPBOARD) |
|
|
|
|
(elfeed-search-title-max-width 100) |
|
|
|
|
(elfeed-search-title-min-width 30) |
|
|
|
|
(elfeed-search-trailing-width 50) |
|
|
|
|
(elfeed-show-unique-buffers t) |
|
|
|
|
(elfeed-feeds |
|
|
|
|
'(("https://www.youtube.com/feeds/videos.xml?user=linustechtips" comedy reviews youtube) |
|
|
|
|
("https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA" boomer linux shell youtube) |
|
|
|
|
("https://phoronix.com/rss.php" linux news reviews) |
|
|
|
|
)) |
|
|
|
|
:hook |
|
|
|
|
(elfeed-search-mode . (lambda (&rest _) (display-line-numbers-mode 0))) |
|
|
|
|
(elfeed-show-mode . (lambda (&rest _) (display-line-numbers-mode 0)))) |
|
|
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
|
* General |
|
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
;; Columns start at 1 |
|
|
|
|
(setq column-number-indicator-zero-based nil) |
|
|
|
|
|
|
|
|
|
;; Custom thems, do not ask if safe |
|
|
|
|
(setq custom-safe-themes t) |
|
|
|
|
|
|
|
|
|
;; Scrolling |
|
|
|
|
(setq scroll-conservatively 1) |
|
|
|
|
(setq mouse-wheel-scroll-amount '(5)) |
|
|
|
|
(setq mouse-wheel-progressive-speed nil) |
|
|
|
|
|
|
|
|
|
;; Columns start at 1 |
|
|
|
|
(setq column-number-indicator-zero-based nil) |
|
|
|
|
|
|
|
|
|
;; Automatically add newline on save at the end of the file |
|
|
|
|
(setq require-final-newline t) |
|
|
|
|
|
|
|
|
|
;; Change parenthesis behavior |
|
|
|
|
;; Parenthesis, set behavior |
|
|
|
|
(setq show-paren-delay 0) |
|
|
|
|
(setq show-paren-style 'mixed) |
|
|
|
|
|
|
|
|
@ -754,6 +781,9 @@ Evil command aliases.
|
|
|
|
|
|
|
|
|
|
;; PHP, set correct tab mode |
|
|
|
|
(add-hook 'php-mode-hook (lambda () (setq indent-tabs-mode t))) |
|
|
|
|
|
|
|
|
|
;; LaTeX, set correct tab mode |
|
|
|
|
(add-hook 'latex-mode-hook (lambda () (setq indent-tabs-mode t))) |
|
|
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
|
* Key Bindings |
|
|
|
@ -814,202 +844,237 @@ Disable spacebar in evil motion.
|
|
|
|
|
** Package |
|
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
;; Buffers |
|
|
|
|
(global-set-key (kbd "M-h") 'centaur-tabs-backward-tab) |
|
|
|
|
(global-set-key (kbd "M-l") 'centaur-tabs-forward-tab) |
|
|
|
|
(global-set-key (kbd "C-M-h") 'centaur-tabs-move-current-tab-to-left) |
|
|
|
|
(global-set-key (kbd "C-M-l") 'centaur-tabs-move-current-tab-to-right) |
|
|
|
|
|
|
|
|
|
(global-set-key (kbd "M-x") 'smex) |
|
|
|
|
|
|
|
|
|
;; Company completion selection |
|
|
|
|
(with-eval-after-load 'company |
|
|
|
|
(define-key company-active-map (kbd "M-n") nil) |
|
|
|
|
(define-key company-active-map (kbd "M-p") nil) |
|
|
|
|
(define-key company-active-map (kbd "M-h") #'company-abort) |
|
|
|
|
(define-key company-active-map (kbd "M-j") #'company-select-next) |
|
|
|
|
(define-key company-active-map (kbd "M-k") #'company-select-previous) |
|
|
|
|
(define-key company-active-map (kbd "M-l") #'company-complete-selection) |
|
|
|
|
(define-key company-active-map (kbd "<escape>") #'company-abort)) |
|
|
|
|
;https://github.com/company-mode/company-mode/blob/master/company.el#L661 |
|
|
|
|
|
|
|
|
|
;; Evil command history selection |
|
|
|
|
(with-eval-after-load 'evil-ex |
|
|
|
|
(define-key evil-ex-completion-map (kbd "M-h") 'abort-recursive-edit) |
|
|
|
|
(define-key evil-ex-completion-map (kbd "M-j") #'next-complete-history-element) |
|
|
|
|
(define-key evil-ex-completion-map (kbd "M-k") #'previous-complete-history-element) |
|
|
|
|
(define-key evil-ex-completion-map (kbd "M-l") 'exit-minibuffer)) |
|
|
|
|
|
|
|
|
|
; Overwrite evil keymaps |
|
|
|
|
;(evil-global-set-key 'motion (kbd "C-w") 'kill-this-buffer) |
|
|
|
|
;(evil-define-key 'motion 'global (kbd "C-w") 'kill-this-buffer) |
|
|
|
|
;(define-key evil-motion-state-map (kbd "C-w") 'kill-this-buffer) ; @Todo test this with nil |
|
|
|
|
;https://github.com/noctuid/evil-guide#global-keybindings-and-evil-states |
|
|
|
|
|
|
|
|
|
(with-eval-after-load 'evil-states |
|
|
|
|
(general-define-key |
|
|
|
|
:keymaps 'evil-normal-state-map |
|
|
|
|
|
|
|
|
|
;; Neotree |
|
|
|
|
"C-n" 'neotree-toggle-in-project-root) |
|
|
|
|
|
|
|
|
|
(general-define-key |
|
|
|
|
:states 'normal |
|
|
|
|
:keymaps 'neotree-mode-map |
|
|
|
|
"RET" 'neotree-enter |
|
|
|
|
"<backtab>" 'neotree-collapse-all ; <S-tab> |
|
|
|
|
"c" 'neotree-create-node |
|
|
|
|
"r" 'neotree-rename-node |
|
|
|
|
"d" 'neotree-delete-node |
|
|
|
|
"h" 'neotree-select-previous-sibling-node |
|
|
|
|
"j" 'neotree-next-line |
|
|
|
|
"k" 'neotree-previous-line |
|
|
|
|
"l" 'neotree-enter |
|
|
|
|
"R" 'neotree-refresh |
|
|
|
|
"C" 'neotree-change-root |
|
|
|
|
"H" 'neotree-hidden-file-toggle |
|
|
|
|
"q" 'neotree-hide |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
;; Dashboard |
|
|
|
|
(general-define-key |
|
|
|
|
:states 'normal |
|
|
|
|
:keymaps 'dashboard-mode-map |
|
|
|
|
[down-mouse-1] 'widget-button-click |
|
|
|
|
"g" 'dashboard-refresh-buffer |
|
|
|
|
"m" 'dashboard-goto-bookmarks |
|
|
|
|
"p" 'dashboard-goto-projects |
|
|
|
|
"r" 'dashboard-goto-recent-files |
|
|
|
|
)) |
|
|
|
|
;; Buffers |
|
|
|
|
(global-set-key (kbd "M-h") 'centaur-tabs-backward-tab) |
|
|
|
|
(global-set-key (kbd "M-l") 'centaur-tabs-forward-tab) |
|
|
|
|
(global-set-key (kbd "C-M-h") 'centaur-tabs-move-current-tab-to-left) |
|
|
|
|
(global-set-key (kbd "C-M-l") 'centaur-tabs-move-current-tab-to-right) |
|
|
|
|
|
|
|
|
|
(global-set-key (kbd "M-x") 'smex) |
|
|
|
|
|
|
|
|
|
;; Company completion selection |
|
|
|
|
(with-eval-after-load 'company |
|
|
|
|
(define-key company-active-map (kbd "M-n") nil) |
|
|
|
|
(define-key company-active-map (kbd "M-p") nil) |
|
|
|
|
(define-key company-active-map (kbd "M-h") #'company-abort) |
|
|
|
|
(define-key company-active-map (kbd "M-j") #'company-select-next) |
|
|
|
|
(define-key company-active-map (kbd "M-k") #'company-select-previous) |
|
|
|
|
(define-key company-active-map (kbd "M-l") #'company-complete-selection) |
|
|
|
|
(define-key company-active-map (kbd "<escape>") #'company-abort)) |
|
|
|
|
; https://github.com/company-mode/company-mode/blob/master/company.el#L661 |
|
|
|
|
|
|
|
|
|
;; Evil command history selection |
|
|
|
|
(with-eval-after-load 'evil-ex |
|
|
|
|
(define-key evil-ex-completion-map (kbd "M-h") 'abort-recursive-edit) |
|
|
|
|
(define-key evil-ex-completion-map (kbd "M-j") #'next-complete-history-element) |
|
|
|
|
(define-key evil-ex-completion-map (kbd "M-k") #'previous-complete-history-element) |
|
|
|
|
(define-key evil-ex-completion-map (kbd "M-l") 'exit-minibuffer)) |
|
|
|
|
|
|
|
|
|
; Overwrite evil keymaps |
|
|
|
|
;(evil-global-set-key 'motion (kbd "C-w") 'kill-this-buffer) |
|
|
|
|
;(evil-define-key 'motion 'global (kbd "C-w") 'kill-this-buffer) |
|
|
|
|
;(define-key evil-motion-state-map (kbd "C-w") 'kill-this-buffer) ; @Todo test this with nil |
|
|
|
|
;https://github.com/noctuid/evil-guide#global-keybindings-and-evil-states |
|
|
|
|
|
|
|
|
|
(with-eval-after-load 'evil-states |
|
|
|
|
(general-define-key |
|
|
|
|
:keymaps 'evil-normal-state-map |
|
|
|
|
|
|
|
|
|
;; Neotree |
|
|
|
|
"C-n" 'neotree-toggle-in-project-root) |
|
|
|
|
|
|
|
|
|
(general-define-key |
|
|
|
|
:states 'normal |
|
|
|
|
:keymaps 'neotree-mode-map |
|
|
|
|
"RET" 'neotree-enter |
|
|
|
|
"<backtab>" 'neotree-collapse-all ; <S-tab> |
|
|
|
|
"c" 'neotree-create-node |
|
|
|
|
"r" 'neotree-rename-node |
|
|
|
|
"d" 'neotree-delete-node |
|
|
|
|
"h" 'neotree-select-previous-sibling-node |
|
|
|
|
"j" 'neotree-next-line |
|
|
|
|
"k" 'neotree-previous-line |
|
|
|
|
"l" 'neotree-enter |
|
|
|
|
"R" 'neotree-refresh |
|
|
|
|
"C" 'neotree-change-root |
|
|
|
|
"H" 'neotree-hidden-file-toggle |
|
|
|
|
"q" 'neotree-hide |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
;; Dashboard |
|
|
|
|
(general-define-key |
|
|
|
|
:states 'normal |
|
|
|
|
:keymaps 'dashboard-mode-map |
|
|
|
|
[down-mouse-1] 'widget-button-click |
|
|
|
|
"g" 'dashboard-refresh-buffer |
|
|
|
|
"m" 'dashboard-goto-bookmarks |
|
|
|
|
"p" 'dashboard-goto-projects |
|
|
|
|
"r" 'dashboard-goto-recent-files |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
;; Elfeed |
|
|
|
|
(general-define-key |
|
|
|
|
:states 'normal |
|
|
|
|
:keymaps 'elfeed-search-mode-map |
|
|
|
|
"gr" 'elfeed-search-update--force |
|
|
|
|
"gR" 'elfeed-search-fetch |
|
|
|
|
"q" 'kill-this-buffer |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
(general-define-key |
|
|
|
|
:states 'normal |
|
|
|
|
:keymaps 'elfeed-show-mode-map |
|
|
|
|
"g" 'elfeed-show-refresh |
|
|
|
|
"q" 'kill-this-buffer |
|
|
|
|
)) |
|
|
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
|
** Leader |
|
|
|
|
|
|
|
|
|
General.el ~leader key binds. |
|
|
|
|
|
|
|
|
|
*** Global |
|
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(with-eval-after-load 'general |
|
|
|
|
(general-create-definer space-leader |
|
|
|
|
:prefix "SPC" |
|
|
|
|
:non-normal-prefix "M-SPC" |
|
|
|
|
:global-prefix "M-SPC" |
|
|
|
|
:states '(normal visual insert motion emacs)) |
|
|
|
|
|
|
|
|
|
(general-create-definer comma-leader |
|
|
|
|
:prefix "," |
|
|
|
|
:states '(normal visual)) |
|
|
|
|
|
|
|
|
|
(space-leader |
|
|
|
|
"SPC" '(smex :which-key "Smex") |
|
|
|
|
"RET" '(bookmark-jump-ido :which-key "Jump to bookmark") |
|
|
|
|
|
|
|
|
|
;; Buffer / bookmark |
|
|
|
|
"b" '(:ignore t :which-key "buffer/bookmark") |
|
|
|
|
"b b" '(ido-switch-buffer :which-key "Switch buffer") |
|
|
|
|
"b B" '(ibuffer :which-key "List buffers") |
|
|
|
|
"b d" '(kill-current-buffer :which-key "Kill buffer") |
|
|
|
|
"b h" '(previous-buffer :which-key "Previous buffer") |
|
|
|
|
"b k" '(kill-current-buffer :which-key "Kill buffer") |
|
|
|
|
"b l" '(next-buffer :which-key "Next buffer") |
|
|
|
|
"b m" '(bookmark-set :which-key "Make bookmark") |
|
|
|
|
"b M" '(bookmark-delete-ido :which-key "Delete bookmark") |
|
|
|
|
"b n" '(evil-buffer-new :which-key "New empty buffer") |
|
|
|
|
"b r" '(revert-buffer :which-key "Revert buffer") |
|
|
|
|
"b s" '(basic-save-buffer :which-key "Save buffer") |
|
|
|
|
"b S" '(evil-write-all :which-key "Save all buffers") |
|
|
|
|
"b <left>" '(previous-buffer :which-key "Previous buffer") |
|
|
|
|
"b <right>" '(next-buffer :which-key "Next buffer") |
|
|
|
|
|
|
|
|
|
;; Comments / config |
|
|
|
|
"c" '(:ignore t :which-key "comment/config") |
|
|
|
|
"c c" '(evilnc-comment-or-uncomment-lines :which-key "Toggle comment") |
|
|
|
|
"c p" '(evilnc-comment-or-uncomment-paragraphs :which-key "Toggle comment paragraph") |
|
|
|
|
"c r" '(config-reload :which-key "Config reload") |
|
|
|
|
"c v" '(config-visit :which-key "Config visit") |
|
|
|
|
"c y" '(evilnc-comment-and-kill-ring-save :which-key "Comment and copy") |
|
|
|
|
|
|
|
|
|
;; LSP |
|
|
|
|
"d" '(:ignore t :which-key "lsp") |
|
|
|
|
"d c" '(lsp-describe-thing-at-point :which-key "LSP Describe under cursor") |
|
|
|
|
"d d" '(lsp-find-definition :which-key "LSP Find definition") |
|
|
|
|
"d e" '(lsp-execute-code-action :which-key "LSP Execute code action") |
|
|
|
|
"d f" '(lsp-format-region-or-buffer :which-key "LSP Format region/buffer") |
|
|
|
|
"d r" '(lsp-find-references :which-key "LSP Find references") |
|
|
|
|
"d R" '(lsp-rename :which-key "LSP Rename") |
|
|
|
|
"d s" '(lsp :which-key "Start LSP") |
|
|
|
|
|
|
|
|
|
;; Find file |
|
|
|
|
"f" '(:ignore t :which-key "file") |
|
|
|
|
"f f" '(find-file-in-project-root :which-key "Find file") |
|
|
|
|
"f r" '(rename-file-and-buffer :which-key "Rename file") |
|
|
|
|
"f s" '(basic-save-buffer :which-key "Save file") |
|
|
|
|
|
|
|
|
|
;; Tabs |
|
|
|
|
"h" '(centaur-tabs-backward-group :which-key "Tab backward group") |
|
|
|
|
"j" '(centaur-tabs-select-end-tab :which-key "Tab select first") |
|
|
|
|
"k" '(centaur-tabs-select-beg-tab :which-key "Tab select last") |
|
|
|
|
"l" '(centaur-tabs-forward-group :which-key "Tab forward group") |
|
|
|
|
|
|
|
|
|
;; Insert |
|
|
|
|
"i" '(:ignore t :which-key "insert") |
|
|
|
|
"i s" '(yas-insert-snippet :which-key "Snippet") |
|
|
|
|
|
|
|
|
|
;; Neotree |
|
|
|
|
"n" '(neotree-toggle-in-project-root :which-key "Toggle Neotree") |
|
|
|
|
|
|
|
|
|
;; Projectile |
|
|
|
|
"p" '(:keymap projectile-command-map :which-key "projectile") |
|
|
|
|
|
|
|
|
|
;; Quit |
|
|
|
|
"q" '(:ignore t :which-key "quit") |
|
|
|
|
"q q" '(save-buffers-kill-terminal :which-key "Quit Emacs") |
|
|
|
|
"q Q" '(save-buffers-kill-emacs :which-key "Quit Emacs (and daemon)") |
|
|
|
|
"q f" '(delete-frame :which-key "Close frame") |
|
|
|
|
"q o" '(delete-other-frames :which-key "Close other frames") |
|
|
|
|
|
|
|
|
|
;; Reformat region |
|
|
|
|
"r" '(:ignore t :which-key "region") |
|
|
|
|
"r r" '(indent-region :which-key "Indent region") |
|
|
|
|
|
|
|
|
|
;; Search |
|
|
|
|
"s" '(:ignore t :which-key "search") |
|
|
|
|
"s a" '(avy-goto-char-timer :which-key "Avy goto char") |
|
|
|
|
"s b" '(bookmark-jump-ido :which-key "Jump to bookmark") |
|
|
|
|
|
|
|
|
|
;; Tabs |
|
|
|
|
"t" '(:ignore t :which-key "tabs") |
|
|
|
|
"t b" '(centaur-tabs-group-buffer-groups :which-key "Group tabs by buffer") |
|
|
|
|
"t p" '(centaur-tabs-group-by-projectile-project :which-key "Group tabs by project") |
|
|
|
|
|
|
|
|
|
;; Update packages |
|
|
|
|
"u" '(auto-package-update-now :which-key "Update packages") |
|
|
|
|
|
|
|
|
|
;; Window |
|
|
|
|
;; "w" '(:keymap evil-window-map :which-key "window") |
|
|
|
|
"w" '(:ignore t :which-key "window") |
|
|
|
|
"w h" '(evil-window-left :which-key "Focus window left") |
|
|
|
|
"w j" '(evil-window-down :which-key "Focus window down") |
|
|
|
|
"w k" '(evil-window-up :which-key "Focus window up") |
|
|
|
|
"w l" '(evil-window-right :which-key "Focus window right") |
|
|
|
|
"w o" '(delete-other-windows :which-key "Close other windows") |
|
|
|
|
"w s" '(:ignore t :which-key "split") |
|
|
|
|
"w s h" '(split-follow-horizontally :which-key "Split horizontal") |
|
|
|
|
"w s v" '(split-follow-vertically :which-key "Split vertical") |
|
|
|
|
"w w" '(other-window :which-key "Focus other window") |
|
|
|
|
"w q" '(delete-window :which-key "Close window") |
|
|
|
|
"w <left>" '(evil-window-left :which-key "Focus window left") |
|
|
|
|
"w <right>" '(evil-window-right :which-key "Focus window down") |
|
|
|
|
"w <up>" '(evil-window-up :which-key "Focus window up") |
|
|
|
|
"w <down>" '(evil-window-down :which-key "Focus window right") |
|
|
|
|
|
|
|
|
|
"x" '(smex-major-mode-commands :which-key "Smex major mode") |
|
|
|
|
)) |
|
|
|
|
(with-eval-after-load 'general |
|
|
|
|
(general-create-definer space-leader |
|
|
|
|
:prefix "SPC" |
|
|
|
|
:non-normal-prefix "M-SPC" |
|
|
|
|
:global-prefix "M-SPC" |
|
|
|
|
:states '(normal visual insert motion emacs)) |
|
|
|
|
|
|
|
|
|
(space-leader |
|
|
|
|
"SPC" '(smex :which-key "Smex") |
|
|
|
|
"RET" '(bookmark-jump-ido :which-key "Jump to bookmark") |
|
|
|
|
|
|
|
|
|
;; Buffer / bookmark |
|
|
|
|
"b" '(:ignore t :which-key "buffer/bookmark") |
|
|
|
|
"b b" '(ido-switch-buffer :which-key "Switch buffer") |
|
|
|
|
"b B" '(ibuffer :which-key "List buffers") |
|
|
|
|
"b d" '(kill-current-buffer :which-key "Kill buffer") |
|
|
|
|
"b h" '(previous-buffer :which-key "Previous buffer") |
|
|
|
|
"b k" '(kill-current-buffer :which-key "Kill buffer") |
|
|
|
|
"b l" '(next-buffer :which-key "Next buffer") |
|
|
|
|
"b m" '(bookmark-set :which-key "Make bookmark") |
|
|
|
|
"b M" '(bookmark-delete-ido :which-key "Delete bookmark") |
|
|
|
|
"b n" '(evil-buffer-new :which-key "New empty buffer") |
|
|
|
|
"b r" '(revert-buffer :which-key "Revert buffer") |
|
|
|
|
"b s" '(basic-save-buffer :which-key "Save buffer") |
|
|
|
|
"b S" '(evil-write-all :which-key "Save all buffers") |
|
|
|
|
"b <left>" '(previous-buffer :which-key "Previous buffer") |
|
|
|
|
"b <right>" '(next-buffer :which-key "Next buffer") |
|
|
|
|
|
|
|
|
|
;; Comments / config |
|
|
|
|
"c" '(:ignore t :which-key "comment/config") |
|
|
|
|
"c c" '(evilnc-comment-or-uncomment-lines :which-key "Toggle comment") |
|
|
|
|
"c p" '(evilnc-comment-or-uncomment-paragraphs :which-key "Toggle comment paragraph") |
|
|
|
|
"c r" '(config-reload :which-key "Config reload") |
|
|
|
|
"c v" '(config-visit :which-key "Config visit") |
|
|
|
|
"c y" '(evilnc-comment-and-kill-ring-save :which-key "Comment and copy") |
|
|
|
|
|
|
|
|
|
;; LSP |
|
|
|
|
"d" '(:ignore t :which-key "lsp") |
|
|
|
|
"d c" '(lsp-describe-thing-at-point :which-key "LSP Describe under cursor") |
|
|
|
|
"d d" '(lsp-find-definition :which-key "LSP Find definition") |
|
|
|
|
"d e" '(lsp-execute-code-action :which-key "LSP Execute code action") |
|
|
|
|
"d f" '(lsp-format-region-or-buffer :which-key "LSP Format region/buffer") |
|
|
|
|
"d r" '(lsp-find-references :which-key "LSP Find references") |
|
|
|
|
"d R" '(lsp-rename :which-key "LSP Rename") |
|
|
|
|
"d s" '(lsp :which-key "Start LSP") |
|
|
|
|
|
|
|
|
|
;; Find file |
|
|
|
|
"f" '(:ignore t :which-key "file") |
|
|
|
|
"f f" '(find-file-in-project-root :which-key "Find file") |
|
|
|
|
"f r" '(rename-file-and-buffer :which-key "Rename file") |
|
|
|
|
"f s" '(basic-save-buffer :which-key "Save file") |
|
|
|
|
|
|
|
|
|
;; Tabs |
|
|
|
|
"h" '(centaur-tabs-backward-group :which-key "Tab backward group") |
|
|
|
|
"j" '(centaur-tabs-select-end-tab :which-key "Tab select first") |
|
|
|
|
"k" '(centaur-tabs-select-beg-tab :which-key "Tab select last") |
|
|
|
|
"l" '(centaur-tabs-forward-group :which-key "Tab forward group") |
|
|
|
|
|
|
|
|
|
;; Insert |
|
|
|
|
"i" '(:ignore t :which-key "insert") |
|
|
|
|
"i s" '(yas-insert-snippet :which-key "Snippet") |
|
|
|
|
|
|
|
|
|
;; Neotree |
|
|
|
|
"n" '(neotree-toggle-in-project-root :which-key "Toggle Neotree") |
|
|
|
|
|
|
|
|
|
;; Projectile |
|
|
|
|
"p" '(:keymap projectile-command-map :which-key "projectile") |
|
|
|
|
|
|
|
|
|
;; Quit |
|
|
|
|
"q" '(:ignore t :which-key "quit") |
|
|
|
|
"q q" '(save-buffers-kill-terminal :which-key "Quit Emacs") |
|
|
|
|
"q Q" '(save-buffers-kill-emacs :which-key "Quit Emacs (and daemon)") |
|
|
|
|
"q f" '(delete-frame :which-key "Close frame") |
|
|
|
|
"q o" '(delete-other-frames :which-key "Close other frames") |
|
|
|
|
|
|
|
|
|
;; Reformat region |
|
|
|
|
"r" '(:ignore t :which-key "region") |
|
|
|
|
"r r" '(indent-region :which-key "Indent region") |
|
|
|
|
|
|
|
|
|
;; Search |
|
|
|
|
"s" '(:ignore t :which-key "search") |
|
|
|
|
"s a" '(avy-goto-char-timer :which-key "Avy goto char") |
|
|
|
|
"s b" '(bookmark-jump-ido :which-key "Jump to bookmark") |
|
|
|
|
|
|
|
|
|
;; Tabs |
|
|
|
|
"t" '(:ignore t :which-key "tabs") |
|
|
|
|
"t b" '(centaur-tabs-group-buffer-groups :which-key "Group tabs by buffer") |
|
|
|
|
"t p" '(centaur-tabs-group-by-projectile-project :which-key "Group tabs by project") |
|
|
|
|
|
|
|
|
|
;; Update packages |
|
|
|
|
"u" '(auto-package-update-now :which-key "Update packages") |
|
|
|
|
|
|
|
|
|
;; Window |
|
|
|
|
;; "w" '(:keymap evil-window-map :which-key "window") |
|
|
|
|
"w" '(:ignore t :which-key "window") |
|
|
|
|
"w h" '(windmove-left :which-key "Focus window left") |
|
|
|
|
"w j" '(windmove-down :which-key "Focus window down") |
|
|
|
|
"w k" '(windmove-up :which-key "Focus window up") |
|
|
|
|
"w l" '(windmove-right :which-key "Focus window right") |
|
|
|
|
"w o" '(delete-other-windows :which-key "Close other windows") |
|
|
|
|
"w s" '(:ignore t :which-key "split") |
|
|
|
|
"w s h" '(split-follow-horizontally :which-key "Split horizontal") |
|
|
|
|
"w s v" '(split-follow-vertically :which-key "Split vertical") |
|
|
|
|
"w w" '(other-window :which-key "Focus other window") |
|
|
|
|
"w q" '(delete-window :which-key "Close window") |
|
|
|
|
"w <left>" '(windmove-left :which-key "Focus window left") |
|
|
|
|
"w <right>" '(windmove-right :which-key "Focus window right") |
|
|
|
|
"w <up>" '(windmove-up :which-key "Focus window up") |
|
|
|
|
"w <down>" '(windmove-down :which-key "Focus window down") |
|
|
|
|
;; winner-redo (built-in window history) |
|
|
|
|
;; winner-undo |
|
|
|
|
|
|
|
|
|
"x" '(smex-major-mode-commands :which-key "Smex major mode") |
|
|
|
|
)) |
|
|
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
|
Source: |
|
|
|
|
https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-evil.el#L712 |
|
|
|
|
https://github.com/suyashbire1/emacs.d/blob/master/init.el |
|
|
|
|
|
|
|
|
|
*** Major mode |
|
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(general-create-definer comma-leader |
|
|
|
|
:prefix "SPC ," |
|
|
|
|
:states '(normal visual)) |
|
|
|
|
|
|
|
|
|
(comma-leader elfeed-search-mode-map |
|
|
|
|
"" '(:ignore t :which-key "elfeed") |
|
|
|
|
"g" 'elfeed-search-update--force |
|
|
|
|
"G" 'elfeed-search-fetch |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
(comma-leader elfeed-show-mode-map |
|
|
|
|
"" '(:ignore t :which-key "elfeed") |
|
|
|
|
"g" 'elfeed-show-refresh |
|
|
|
|
) |
|
|
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
|
* Notes |
|
|
|
|
|
|
|
|
|
Org mode keybinds: |
|
|
|
|