Browse Source

Add elfeed, leader major mode, fix latex tabs

master
Riyyi 4 years ago
parent
commit
00699ccb74
  1. 441
      .emacs.d/config.org

441
.emacs.d/config.org

@ -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:

Loading…
Cancel
Save