emacs: use vundo instead of undo-tree, .bashrc: cleanup.

This commit is contained in:
2024-03-24 19:47:07 +01:00
parent cc5ae859a0
commit 6aed1cfbfd
4 changed files with 129 additions and 66 deletions

View File

@@ -158,8 +158,7 @@ else # ... or clones, vim/vi, etc..
fi
export EDITOR=$VISUAL
for _pdfviewer in qpdfview atril; do # look for a pdf viewer
for _pdfviewer in atril qpdfview; do # look for a pdf viewer
if hash "$_pdfviewer" 2>/dev/null; then
# shellcheck disable=SC2139
alias acroread="$_pdfviewer"

View File

@@ -65,13 +65,14 @@ _vardir() {
# shellcheck disable=SC2139
alias "$_a"="$_x"
}
_vardir AOC aoc + ~/dev/advent-of-code # Advent of code
_vardir WCHESS wchess - ~/dev/www/crd/chess # raoult.com chess
_vardir CHESS chess + ~/dev/brchess # brchess
_vardir TOOLS tools - ~/dev/tools # tools
_vardir BRLIB brlib - ~/dev/brlib # brlib
_vardir EUD eud + ~/dev/eudyptula # eudyptula
_vardir DEV dev - ~/dev # dev
_vardir AOC aoc + ~/dev/advent-of-code # Advent of code
_vardir WCHESS wchess - ~/dev/www/crd/chess # raoult.com chess
_vardir CHESS chess + ~/dev/brchess # brchess
_vardir CHESS brchess + ~/dev/brchess # brchess
_vardir TOOLS tools - ~/dev/tools # tools
_vardir BRLIB brlib - ~/dev/brlib # brlib
_vardir EUD eud + ~/dev/eudyptula # eudyptula
_vardir DEV dev - ~/dev # dev
# Indent style for emacs
# Local Variables:

View File

@@ -15,6 +15,7 @@
;; (require 'use-package)
(package-initialize)
(setq use-package-always-ensure t)
(use-package delight :ensure t)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
;;(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/"))
@@ -255,23 +256,33 @@ Return new LIST-VAR value."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ggtags
(use-package ggtags
:ensure t
:diminish ggtags-mode
:diminish "gg"
:disabled t
:defer t
;; :defer t
:after cc-mode
:init
(setq ggtags-global-window-height 28
ggtags-enable-navigation-keys nil)
(after cc-mode (add-hook 'c-mode-common-hook #'ggtags-mode))
(add-hook 'c-mode-common-hook
(lambda ()
(when (derived-mode-p 'c-mode 'c++-mode 'java-mode)
(ggtags-mode 1))))
;;(after cc-mode (add-hook 'c-mode-common-hook #'ggtags-mode))
:config
(bind-keys :map ggtags-mode-map
("C-c g s" . ggtags-find-other-symbol)
("C-c g h" . ggtags-view-tag-history)
("C-c g r" . ggtags-find-reference)
("C-c g f" . ggtags-find-file)
("C-c g c" . ggtags-create-tags)
("C-c g u" . ggtags-update-tags)
;;("C-c g s" . ggtags-find-other-symbol)
;;("C-c g h" . ggtags-view-tag-history)
;;("C-c g r" . ggtags-find-reference)
;;("C-c g f" . ggtags-find-file)
;;("C-c g c" . ggtags-create-tags)
;;("C-c g u" . ggtags-update-tags)
("H-g s" . ggtags-find-other-symbol)
("H-g h" . ggtags-view-tag-history)
("H-g r" . ggtags-find-reference)
("H-g f" . ggtags-find-file)
("H-g c" . ggtags-create-tags)
("H-g u" . ggtags-update-tags)
("M-," 'pop-tag-mark)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; projectile
@@ -279,6 +290,7 @@ Return new LIST-VAR value."
(use-package projectile
;;:diminish projectile-mode
:diminish " prj"
;; :delight
:ensure t
:config
;;(define-key projectile-mode-map (kbd "s-p") 'projectile-command-map)
@@ -288,7 +300,9 @@ Return new LIST-VAR value."
;;projectile-indexing-method 'alien ;; does not use ".projectile"
projectile-indexing-method 'hybrid
;;projectile-indexing-method 'native
projectile-completion-system 'default)
projectile-completion-system 'auto
projectile-tags-backend 'ggtags)
(add-to-list 'projectile-globally-ignored-files "*.png")
(projectile-mode +1))
@@ -440,7 +454,8 @@ Return new LIST-VAR value."
(global-set-key (kbd "C-h c") 'describe-char)
(global-set-key (kbd "C-x 4 C-b") 'switch-to-buffer-other-window)
(global-unset-key [mode-line mouse-3]) ; unset awful modeline mouse-3
(global-unset-key [mode-line mouse-3]) ; so disturbing mouse-3 there !
;; next example maps C-x C-x to the same as C-c
;; (global-set-key (kbd "C-x C-x") (lookup-key global-map (kbd "C-c")))
@@ -868,31 +883,34 @@ in whole buffer. With neither, delete comments on current line."
(global-set-key (kbd "C-x w") 'compare-windows)
;; as dot-mode uses <insert>, we allow overwrite-mode with S-<insert>
(global-set-key (kbd "S-<insert>") 'overwrite-mode)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; define my own keymap (s-c)
;; first, define a keymap, with Super-c as prefix.
(defvar my/keys-mode-map (make-sparse-keymap)
"Keymap for my/keys-mode.")
;; (defvar my/keys-mode-map (make-sparse-keymap)
;; "Keymap for my/keys-mode.")
(defvar my/keys-mode-prefix-map (lookup-key global-map (kbd "s-c"))
"Keymap for custom key bindings starting with s-c prefix.")
;; (defvar my/keys-mode-prefix-map (lookup-key global-map (kbd "s-c"))
;; "Keymap for custom key bindings starting with s-c prefix.")
;; (define-key my/keys-mode-map (kbd "s-c") my/keys-mode-prefix-map)
;; ;; (define-key my/keys-mode-map (kbd "s-c") my/keys-mode-prefix-map)
(define-minor-mode my/keys-mode
"A minor mode for custom key bindings."
:lighter "s-c"
:keymap 'my/keys-mode-map
:global t)
;; (define-minor-mode my/keys-mode
;; "A minor mode for custom key bindings."
;; :lighter "s-c"
;; :keymap 'my/keys-mode-map
;; :global t)
(defun my/prioritize-keys
(file &optional noerror nomessage nosuffix must-suffix)
"Try to ensure that custom key bindings always have priority."
(unless (eq (caar minor-mode-map-alist) 'my/keys-mode)
(let ((my/keys-mode-map (assq 'my/keys-mode minor-mode-map-alist)))
(assq-delete-all 'my/keys-mode minor-mode-map-alist)
(add-to-list 'minor-mode-map-alist my/keys-mode-map))))
;; (defun my/prioritize-keys
;; (file &optional noerror nomessage nosuffix must-suffix)
;; "Try to ensure that custom key bindings always have priority."
;; (unless (eq (caar minor-mode-map-alist) 'my/keys-mode)
;; (let ((my/keys-mode-map (assq 'my/keys-mode minor-mode-map-alist)))
;; (assq-delete-all 'my/keys-mode minor-mode-map-alist)
;; (add-to-list 'minor-mode-map-alist my/keys-mode-map))))
(advice-add 'load :after #'my/prioritize-keys)
;; (advice-add 'load :after #'my/prioritize-keys)
;;(global-set-key (kbd "C-c t") #'make-temp-buffer)
;;(define-key my/keys-mode-prefix-map (kbd "r b") #'revert-buffer)
@@ -1012,27 +1030,59 @@ in whole buffer. With neither, delete comments on current line."
;;(define-key whole-line-or-region-local-mode-map [remap uncomment-region] nil)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; undo tree
(use-package undo-tree
:diminish undo-tree-mode
:defer t
:init
(progn
(defalias 'redo 'undo-tree-redo)
(defalias 'undo 'undo-tree-undo)
(global-undo-tree-mode 1))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; vundo / undo-tree / winner
;; vundo config from :
;; https://www.reddit.com/r/emacs/comments/txwwfi/vundo_is_great_visual_undotree_for_emacs28/
(use-package vundo
:commands (vundo)
:config
(progn
(setq undo-tree-visualizer-timestamps t
undo-tree-visualizer-diff t
undo-tree-enable-undo-in-region t
;;undo-tree-auto-save-history t
)
(let ((undo-dir (concat my/emacs-tmpdir "/undo-tree/")))
(setq undo-tree-history-directory-alist
`(("." . ,undo-dir)))
(unless (file-exists-p undo-dir)
(make-directory undo-dir t)))))
;; Take less on-screen space.
(setq vundo-compact-display t)
;; Better contrasting highlight.
(custom-set-faces
'(vundo-node ((t (:foreground "#808080"))))
'(vundo-stem ((t (:foreground "#808080"))))
'(vundo-highlight ((t (:foreground "#FFFF00")))))
;; Use `HJKL` VIM-like motion, also Home/End to jump around.
;; (define-key vundo-mode-map (kbd "l") #'vundo-forward)
(define-key vundo-mode-map (kbd "<right>") #'vundo-forward)
;; (define-key vundo-mode-map (kbd "h") #'vundo-backward)
(define-key vundo-mode-map (kbd "<left>") #'vundo-backward)
;; (define-key vundo-mode-map (kbd "j") #'vundo-next)
(define-key vundo-mode-map (kbd "<down>") #'vundo-next)
;; (define-key vundo-mode-map (kbd "k") #'vundo-previous)
(define-key vundo-mode-map (kbd "<up>") #'vundo-previous)
(define-key vundo-mode-map (kbd "<home>") #'vundo-stem-root)
(define-key vundo-mode-map (kbd "<end>") #'vundo-stem-end)
(define-key vundo-mode-map (kbd "q") #'vundo-quit)
(define-key vundo-mode-map (kbd "C-g") #'vundo-quit)
(define-key vundo-mode-map (kbd "RET") #'vundo-confirm))
(global-set-key (kbd "C-x u") 'vundo)
;; (use-package undo-tree
;; :diminish undo-tree-mode
;; :defer t
;; :init
;; (progn
;; (defalias 'redo 'undo-tree-redo)
;; (defalias 'undo 'undo-tree-undo)
;; (global-undo-tree-mode 1))
;; :config
;; (progn
;; (setq undo-tree-visualizer-timestamps t
;; undo-tree-visualizer-diff t
;; undo-tree-enable-undo-in-region t
;; ;;undo-tree-auto-save-history t
;; )
;; (let ((undo-dir (concat my/emacs-tmpdir "/undo-tree/")))
;; (setq undo-tree-history-directory-alist
;; `(("." . ,undo-dir)))
;; (unless (file-exists-p undo-dir)
;; (make-directory undo-dir t)))))
;; useful to come back to working window after a buffer has popped up
;; C-c <left> to come back
@@ -1356,7 +1406,15 @@ in whole buffer. With neither, delete comments on current line."
comment-auto-fill-only-comments nil
comment-style 'extra-line))
(add-hook 'c-mode-hook 'my/c-style)
(use-package cc-mode
:ensure nil
:config
(add-hook 'c-mode-common-hook
(lambda ()
;;(when (derived-mode-p 'c-mode 'c++-mode 'java-mode 'asm-mode)
(when (derived-mode-p 'c-mode)
(ggtags-mode 1))))
(add-hook 'c-mode-hook 'my/c-style))
;;;;;;;;;;;;; linux kernel style
(defun c-lineup-arglist-tabs-only (ignored)
@@ -2194,7 +2252,7 @@ The output will appear in the buffer *PHP*."
;;lsp-enable-on-type-formatting nil
lsp-enable-snippet nil
lsp-enable-symbol-highlighting t
lsp-lens-enable t
lsp-lens-enable nil
lsp-headerline-breadcrumb-enable t
lsp-enable-indentation nil
lsp-enable-on-type-formatting nil
@@ -2203,6 +2261,8 @@ The output will appear in the buffer *PHP*."
lsp-modeline-code-actions-enable t
lsp-modeline-code-actions-segments '(count icon name)
lsp-signature-render-documentation t)
;;(define-key lsp-mode-map (kbd "<mouse-3>") nil)
;;(define-key lsp-mode-map (kbd "C-S-<mouse-3>") 'lsp-mouse-click)
:hook
((sh-mode . lsp-deferred)
;;(c-mode-common . lsp-deferred)
@@ -2213,9 +2273,9 @@ The output will appear in the buffer *PHP*."
;;:diminish
:config
(setq lsp-ui-doc-show-with-cursor t
lsp-ui-doc-show-with-mouse nil
lsp-ui-doc-show-with-mouse nil ; breaks isearch
lsp-ui-sideline-enable nil
lsp-ui-sideline-enable nil ; too messy
lsp-ui-sideline-show-hover t
lsp-ui-sideline-show-symbol t
lsp-ui-sideline-show-code-actions t
@@ -2225,7 +2285,9 @@ The output will appear in the buffer *PHP*."
lsp-ui-doc-max-width 80
lsp-ui-doc-max-height 20
lsp-ui-doc-include-signature t ; type signature in doc
lsp-ui-doc-position 'top)
lsp-ui-doc-enhanced-markdown t ; looks b0rken (lists...)
lsp-ui-doc-position 'top ; top/bottom/at-point
lsp-ui-doc-alignment 'window)
:commands
(lsp-ui-mode)

View File

@@ -35,14 +35,15 @@
(defconst my/loaded-files-at-startup
(list
"~/dev/brlib/Makefile"
"~/dev/brchess/Makefile"
"~/dev/brlib/Makefile"
;;"~/org/boot-disk.org"
;;"~/org/beaglebone-buster-setup.org"
;;"~/dev/www/cf.bodi/sql/coc.sql"
;;"~/dev/www/cf.bodi/sql/coc-sql.org"
user-init-file
"~/dev/tools/bash/Makefile"
;; "~/dev/tools/bash/Makefile"
"~/dev/brchess/src/board.c"
"~/org/emacs-cheatsheet.org")
;;"~/dev/g910/g910-gkey-macro-support/lib/data_mappers/char_uinput_mapper.py"
;;"~/dev/advent-of-code/2022/Makefile"