(defun a/eshell-setup ()
(make-local-variable 'company-idle-delay)
- (defvar company-idle-delay nil)
+ (defvar company-idle-delay)
+ (setq company-idle-delay nil)
(bind-keys :map eshell-mode-map
("C-d" . a/eshell-quit-or-delete-char)
("C-S-l" . a/eshell-clear)
(global-diff-hl-mode)
(add-hook 'magit-post-refresh-hook 'diff-hl-magit-post-refresh t))
+(use-package ls-lisp
+ :custom (ls-lisp-dirs-first t))
+
(use-package dired
:defer t
:config
- (setq dired-listing-switches "-alh")
+ (setq dired-listing-switches "-alh"
+ ls-lisp-use-insert-directory-program nil)
;; easily diff 2 marked files
;; https://oremacs.com/2017/03/18/dired-ediff/
(defun dired-ediff-files ()
(interactive)
- (require 'ediff)
+ (defvar ediff-after-quit-hook-internal)
(let ((files (dired-get-marked-files))
(wnd (current-window-configuration)))
(if (<= (length files) 2)
(set-window-configuration wnd))))
(error "no more than 2 files should be marked"))))
:bind (:map dired-mode-map
- ("e" . dired-ediff-files)
- ("E" . dired-toggle-read-only)
- ("z" . (lambda ()
- (interactive)
- (a/dired-start-process "zathura")))))
+ ("e" . dired-ediff-files)
+ ("E" . dired-toggle-read-only)
+ ("\\" . dired-hide-details-mode)
+ ("z" . (lambda ()
+ (interactive)
+ (a/dired-start-process "zathura"))))
+ :hook (dired-mode . dired-hide-details-mode))
(use-package eldoc
:when (version< "25" emacs-version)
#+begin_src emacs-lisp
(use-package which-key
:defer 1
- :config (which-key-mode))
+ :config
+ (which-key-add-key-based-replacements
+ ;; prefixes for global prefixes and minor modes
+ "C-c @" "outline"
+ "C-c !" "flycheck"
+ "C-c 8" "typo"
+ "C-c 8 -" "typo/dashes"
+ "C-c 8 <" "typo/left-brackets"
+ "C-c 8 >" "typo/right-brackets"
+ "C-x 8" "unicode"
+ "C-x a" "abbrev/expand"
+ "C-x r" "rectangle/register/bookmark"
+ "C-x v" "version control"
+ ;; prefixes for my personal bindings
+ "C-c a" "applications"
+ "C-c a s" "shells"
+ "C-c b" "borg"
+ "C-c c" "compile-and-comments"
+ "C-c e" "eval"
+ "C-c f" "files"
+ "C-c F" "frames"
+ "C-S-h" "help(ful)"
+ "C-c m" "multiple-cursors"
+ "C-c p" "projectile"
+ "C-c p s" "projectile/search"
+ "C-c p x" "projectile/execute"
+ "C-c p 4" "projectile/other-window"
+ "C-c q" "boxquote"
+ "s-g" "magit"
+ "s-o" "outline"
+ "s-t" "themes")
+
+ ;; prefixes for major modes
+ (which-key-add-major-mode-key-based-replacements 'message-mode
+ "C-c f" "footnote")
+ (which-key-add-major-mode-key-based-replacements 'org-mode
+ "C-c C-v" "org-babel")
+ (which-key-add-major-mode-key-based-replacements 'web-mode
+ "C-c C-a" "web/attributes"
+ "C-c C-b" "web/blocks"
+ "C-c C-d" "web/dom"
+ "C-c C-e" "web/element"
+ "C-c C-t" "web/tags")
+
+ (which-key-mode))
#+end_src
** theme
#+begin_src emacs-lisp
(use-package multi-term
:defer 1
- :bind (("C-c a s m m" . multi-term)
- ("C-c a s m p" . multi-term-dedicated-toggle)
+ :bind (("C-c a s m" . multi-term-dedicated-toggle)
:map term-mode-map
("C-c C-j" . term-char-mode)
:map term-raw-map
:bind ("C-=" . er/expand-region))
#+end_src
+** multiple-cursors
+
+#+begin_src emacs-lisp
+(use-package multiple-cursors
+ :bind
+ (("C-S-<mouse-1>" . mc/add-cursor-on-click)
+ (:prefix-map a/mc-prefix-map
+ :prefix "C-c m"
+ ("c" . mc/edit-lines)
+ ("n" . mc/mark-next-like-this)
+ ("p" . mc/mark-previous-like-this)
+ ("a" . mc/mark-all-like-this))))
+#+end_src
+
* Email
:PROPERTIES:
:CUSTOM_ID: email
read-mail-command 'gnus)
(use-package gnus
- :bind (("C-c m" . gnus)
- ("C-c M" . gnus-unplugged)
- ("s-m" . gnus)
+ :bind (("s-m" . gnus)
("s-M" . gnus-unplugged))
:init
(setq