add vi keys for emacs docview
This commit is contained in:
parent
5b47a4d827
commit
5821d4204f
88
emacs/.emacs
88
emacs/.emacs
|
@ -2,6 +2,29 @@
|
|||
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
|
||||
(package-initialize)
|
||||
|
||||
(defun setup-vi-keys-for-splits (mode-map)
|
||||
; https://www.gnu.org/software/emacs/manual/html_node/elisp/Conditionals.html
|
||||
(unless (eq 'mode-map 'eww-mode-map)
|
||||
(define-key mode-map (kbd "C-w H") 'evil-window-move-far-left)
|
||||
(define-key mode-map (kbd "C-w L") 'evil-window-move-far-right))
|
||||
(define-key mode-map (kbd "C-w K") 'evil-window-move-very-top)
|
||||
(define-key mode-map (kbd "C-w J") 'evil-window-move-very-bottom)
|
||||
|
||||
(define-key mode-map (kbd "C-w v") 'evil-window-vsplit)
|
||||
(define-key mode-map (kbd "C-w s") 'evil-window-split)
|
||||
(define-key mode-map (kbd "C-w w") 'evil-window-next)
|
||||
|
||||
(define-key mode-map (kbd "C-w k") 'evil-window-up)
|
||||
(define-key mode-map (kbd "C-w h") 'evil-window-left)
|
||||
(define-key mode-map (kbd "C-w l") 'evil-window-right)
|
||||
(define-key mode-map (kbd "C-w j") 'evil-window-down)
|
||||
|
||||
(define-key mode-map (kbd "C-w <") 'evil-window-decrease-width)
|
||||
(define-key mode-map (kbd "C-w >") 'evil-window-increase-width)
|
||||
(define-key mode-map (kbd "C-w -") 'evil-window-decrease-height)
|
||||
(define-key mode-map (kbd "C-w +") 'evil-window-increase-height)
|
||||
(define-key mode-map (kbd "C-w =") 'balance-windows)
|
||||
(define-key mode-map (kbd "C-w |") 'evil-window-set-width))
|
||||
|
||||
;;; General
|
||||
;
|
||||
|
@ -15,11 +38,27 @@
|
|||
;; Enable word wrap
|
||||
;(setq-default word-wrap t)
|
||||
;
|
||||
;; Set default evil-mode state
|
||||
(setq evil-default-state 'normal)
|
||||
;
|
||||
;; Wrap long lines
|
||||
; https://www.gnu.org/software/emacs/manual/html_node/emacs/Visual-Line-Mode.html
|
||||
; http://ergoemacs.org/emacs/emacs_long_line_wrap.html
|
||||
(global-visual-line-mode 1)
|
||||
;
|
||||
;; Make pdfs continuous in doc-view
|
||||
; C-n and C-p gives continuous scrolling anyway?
|
||||
;(setq doc-view-continuous t)
|
||||
;
|
||||
;; Stop crashing when loading Kannada text files in older emacs
|
||||
;(push "Noto Serif Kannada" face-ignored-fonts)
|
||||
;
|
||||
;; Split vertically by default instead of horizontally
|
||||
; https://www.gnu.org/software/emacs/manual/html_node/elisp/Choosing-Window-Options.html
|
||||
; https://stackoverflow.com/questions/2081577/setting-emacs-to-split-buffers-side-by-side
|
||||
;(setq split-height-threshold nil)
|
||||
;(setq split-width-threshold 0)
|
||||
;
|
||||
;; Scroll buffer without moving cursor
|
||||
; https://www.emacswiki.org/emacs/Scrolling#h5o-2
|
||||
(defun gcm-scroll-down ()
|
||||
|
@ -87,6 +126,11 @@
|
|||
(load-file "~/.config/emacs/digraphs.el")
|
||||
|
||||
|
||||
;; Themes
|
||||
; https://github.com/bbatsov/zenburn-emacs
|
||||
;(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/")
|
||||
;(load-theme 'gruvbox t)
|
||||
|
||||
;;; Org mode
|
||||
;
|
||||
;; Enable org mode
|
||||
|
@ -143,27 +187,6 @@
|
|||
(define-key org-agenda-mode-map (kbd "C-e") 'evil-scroll-line-down)
|
||||
(define-key org-agenda-mode-map (kbd "C-y") 'evil-scroll-line-up)
|
||||
|
||||
; Split navigation
|
||||
(define-key org-agenda-mode-map (kbd "C-w H") 'evil-window-move-far-left)
|
||||
(define-key org-agenda-mode-map (kbd "C-w L") 'evil-window-move-far-right)
|
||||
(define-key org-agenda-mode-map (kbd "C-w K") 'evil-window-move-very-top)
|
||||
(define-key org-agenda-mode-map (kbd "C-w J") 'evil-window-move-very-bottom)
|
||||
|
||||
(define-key org-agenda-mode-map (kbd "C-w v") 'evil-window-vsplit)
|
||||
(define-key org-agenda-mode-map (kbd "C-w s") 'evil-window-split)
|
||||
(define-key org-agenda-mode-map (kbd "C-w w") 'evil-window-next)
|
||||
|
||||
(define-key org-agenda-mode-map (kbd "C-w k") 'evil-window-up)
|
||||
(define-key org-agenda-mode-map (kbd "C-w h") 'evil-window-left)
|
||||
(define-key org-agenda-mode-map (kbd "C-w l") 'evil-window-right)
|
||||
(define-key org-agenda-mode-map (kbd "C-w j") 'evil-window-down)
|
||||
|
||||
; Split resizing
|
||||
(define-key org-agenda-mode-map (kbd "C-w <") 'evil-window-decrease-width)
|
||||
(define-key org-agenda-mode-map (kbd "C-w >") 'evil-window-increase-width)
|
||||
(define-key org-agenda-mode-map (kbd "C-w -") 'evil-window-decrease-height)
|
||||
(define-key org-agenda-mode-map (kbd "C-w +") 'evil-window-increase-height)
|
||||
|
||||
; Misc
|
||||
(define-key org-agenda-mode-map (kbd "C-c C-g") 'org-agenda-redo-all)
|
||||
; (define-key org-agenda-mode-map (kbd "g g") 'evil-goto-first-line)
|
||||
|
@ -173,7 +196,26 @@
|
|||
(define-key org-agenda-mode-map (kbd "C-c C-l") 'org-agenda-holidays)
|
||||
|
||||
(define-key org-agenda-mode-map (kbd "l") 'evil-forward-char)
|
||||
(define-key org-agenda-mode-map (kbd "C-c C-l") 'org-agenda-log-mode))
|
||||
(define-key org-agenda-mode-map (kbd "C-c C-l") 'org-agenda-log-mode)
|
||||
|
||||
(setup-vi-keys-for-splits org-agenda-mode-map))
|
||||
;
|
||||
;; vi keys for docview
|
||||
; https://github.com/emacs-evil/evil-collection
|
||||
; https://emacs.stackexchange.com/questions/7540/doc-view-mode-hook
|
||||
(with-eval-after-load 'doc-view
|
||||
(define-key doc-view-mode-map "j" 'doc-view-next-line-or-next-page)
|
||||
(define-key doc-view-mode-map "k" 'doc-view-previous-line-or-previous-page)
|
||||
(define-key doc-view-mode-map "l" 'image-forward-hscroll)
|
||||
(define-key doc-view-mode-map "h" 'image-backward-hscroll)
|
||||
(define-key doc-view-mode-map (kbd "C-f") 'image-scroll-up)
|
||||
(define-key doc-view-mode-map (kbd "C-b") 'image-scroll-down)
|
||||
(define-key doc-view-mode-map "J" 'doc-view-next-page)
|
||||
(define-key doc-view-mode-map "K" 'doc-view-previous-page)
|
||||
(define-key doc-view-mode-map (kbd "C-c C-k") 'doc-view-kill-proc)
|
||||
|
||||
(setup-vi-keys-for-splits doc-view-mode-map))
|
||||
|
||||
|
||||
;
|
||||
;; Set agenda files for org-agenda
|
||||
|
@ -182,7 +224,7 @@
|
|||
;; Open pdf in external pdf-viewer
|
||||
; https://emacs.stackexchange.com/questions/28037/org-mode-file-hyperlinks-always-use-doc-view-cant-force-it-to-use-external-pdf
|
||||
; Now C-c C-o will open evince and C-u C-u C-c C-o will open docview
|
||||
(add-to-list 'org-file-apps '("pdf" . "evince %s"))
|
||||
(add-to-list 'org-file-apps '("pdf" . "zathura %s"))
|
||||
|
||||
|
||||
;;; Added with Custom
|
||||
|
|
Loading…
Reference in New Issue