From 55866467be786c4f613946f9d94aabc5f9707970 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Thu, 2 Feb 2023 08:38:56 -0500 Subject: Add multiple-cursor config --- emacs/.config/emacs-kj/development.el | 1 + emacs/.config/emacs-kj/init.el | 118 +++++++++++++++++++++++----------- 2 files changed, 80 insertions(+), 39 deletions(-) (limited to 'emacs/.config/emacs-kj') diff --git a/emacs/.config/emacs-kj/development.el b/emacs/.config/emacs-kj/development.el index 6d231e4..8e02091 100644 --- a/emacs/.config/emacs-kj/development.el +++ b/emacs/.config/emacs-kj/development.el @@ -69,3 +69,4 @@ (use-package graphviz-dot-mode :ensure t) + diff --git a/emacs/.config/emacs-kj/init.el b/emacs/.config/emacs-kj/init.el index 41ed048..40f170b 100644 --- a/emacs/.config/emacs-kj/init.el +++ b/emacs/.config/emacs-kj/init.el @@ -56,7 +56,7 @@ (use-package emacs :init ;; Add all your customizations prior to loading the themes - (setq modus-themes-region '(bg-only)) + (setq modus-themes-region '(accented)) :config ;; Load the theme of your choice: (load-theme 'modus-operandi) ;; OR (load-theme 'modus-vivendi) @@ -187,6 +187,8 @@ ;; For editing grep buffers. (use-package wgrep) +(use-package deadgrep + :bind ("M-s g" . deadgrep)) ;; For recent files. (recentf-mode 1) @@ -490,17 +492,17 @@ (add-hook 'git-commit-mode-hook #'meow-insert)) -(use-package meow - :bind - :config - (meow-setup) - (meow-global-mode 1) - ;; (meow-setup-indicator) ; Not needed with doom-modeline. - (setq meow-use-clipboard t) - ;; (add-to-list 'meow-keypad-start-keys '(?t . ?x)) - ;; (add-to-list 'meow-keypad-start-keys '(?x . ?t)) - (define-key meow-insert-state-keymap "\C-[" #'meow-insert-exit) - ) +;; (use-package meow +;; :bind +;; :config +;; (meow-setup) +;; (meow-global-mode 1) +;; ;; (meow-setup-indicator) ; Not needed with doom-modeline. +;; (setq meow-use-clipboard t) +;; ;; (add-to-list 'meow-keypad-start-keys '(?t . ?x)) +;; ;; (add-to-list 'meow-keypad-start-keys '(?x . ?t)) +;; (define-key meow-insert-state-keymap "\C-[" #'meow-insert-exit) +;; ) (use-package emacs :hook (dired-mode . dired-omit-mode) @@ -658,9 +660,21 @@ (setenv "EDITOR" "emacsclient")) (use-package idle-highlight-mode - :config (setq idle-highlight-idle-time 0.2) + :config + (setq idle-highlight-idle-time 0.2) + (set-face-attribute 'idle-highlight nil :inherit 'underline) :hook ((prog-mode text-mode) . idle-highlight-mode)) +(use-package paredit + :hook ((lisp-mode emacs-lisp-mode) . paredit-mode) + :bind (:map paredit-mode-map + ("M-k" . paredit-raise-sexp) + ("M-I" . paredit-splice-sexp)) + :hook (paredit-mode + . (lambda () + (unbind-key "M-r" paredit-mode-map) + (unbind-key "M-s" paredit-mode-map)))) + (use-package emacs :bind (("C-c C-b C-r" . revert-buffer) @@ -695,47 +709,73 @@ (use-package multiple-cursors) +(use-package ace-mc + :bind (:map kj/leader-map + ("h" . ace-mc-add-multiple-cursors) + ("M-h" . ace-mc-add-single-cursor))) + ;; Disable VC over tramp. (defun kj/vc-off-if-remote () (if (file-remote-p (buffer-file-name)) (setq-local vc-handled-backends nil))) (add-hook 'find-file-hook 'kj/vc-off-if-remote) -(defvar kj/leader-repeat-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd "@") 'er/expand-region) - (define-key map (kbd "!") (defun kj/contract-region () - (er/expand-region -1))) - map) - "kj/leader-map keymap.") - -(defun repeatize (keymap) - "Add `repeat-mode' support to a KEYMAP." - (map-keymap - (lambda (_key cmd) - (when (symbolp cmd) - (put cmd 'repeat-map keymap))) - (symbol-value keymap))) -(repeatize 'kj/leader-repeat-map) - -(defvar kj/leader-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd "b") 'consult-buffer) - (set-keymap-parent map kj/leader-repeat-map) - map) - "kj/leader-map keymap.") +(use-package selected + :demand t + :diminish selected-minor-mode + :bind (:map selected-keymap + ("[" . align-code) + ("f" . fill-region) + ("U" . unfill-region) + ("d" . downcase-region) + ("r" . reverse-region) + ("S" . sort-lines)) + :config + (selected-global-mode 1)) + +(use-package emacs + :init + (defvar kj/leader-map + (make-sparse-keymap) + "Keymap for leader key") + :bind (:repeat-map kj/leader-map + ("." . mc/mark-next-like-this) + ("," . mc/mark-previous-like-this) + ("w" . mc/mark-next-like-this-word) + ("W" . mc/mark-all-words-like-this) + ("s" . set-rectangular-region-anchor) + ("y" . mc/mark-next-like-this-symbol) + ("Y" . mc/mark-all-like-this-symbol) + ("C-SPC" . mc/mark-pop) + ("(" . mc/mark-all-symbols-like-this-in-defun) + ("C-(" . mc/mark-all-words-like-this-in-defun) + ("M-(" . mc/mark-all-like-this-in-defun) + :exit + ("b" . consult-buffer)) + + :bind (("S-") + ("S-" . mc/add-cursor-on-click)) + + :bind (:map selected-keymap + ("C->" . mc/skip-to-next-like-this) + ("C-<" . mc/skip-to-previous-like-this) + ("." . mc/mark-next-like-this) + ("," . mc/mark-previous-like-this) + ("w" . mc/mark-next-like-this-word) + ("W" . mc/mark-all-words-like-this) + ("s" . set-rectangular-region-anchor) + ("y" . mc/mark-next-like-this-symbol) + ("Y" . mc/mark-all-like-this-symbol))) (defvar kj/keys-minor-mode-map (let ((map (make-sparse-keymap))) (define-key map (kbd "C-t") kj/leader-map) map) - "kj/keys-minor-mode keymap.") - + "Keymap for kj/keys-minor-mode") (define-minor-mode kj/keys-minor-mode "A minor mode so that my key settings override annoying major modes." :init-value t :lighter " kj-keys") - (kj/keys-minor-mode 1) ;; Repeat commands (e.g., C-x o o o) -- cgit v1.2.3