171 lines
4.7 KiB
EmacsLisp
171 lines
4.7 KiB
EmacsLisp
;; Install straight.el
|
|
(defvar bootstrap-version)
|
|
(let ((bootstrap-file
|
|
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
|
|
(bootstrap-version 6))
|
|
(unless (file-exists-p bootstrap-file)
|
|
(with-current-buffer
|
|
(url-retrieve-synchronously
|
|
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
|
|
'silent 'inhibit-cookies)
|
|
(goto-char (point-max))
|
|
(eval-print-last-sexp)))
|
|
(load bootstrap-file nil 'nomessage))
|
|
|
|
(setq inhibit-startup-message t
|
|
use-dialog-box nil)
|
|
|
|
|
|
(setq custom-file (locate-user-emacs-file "custom-vars.el"))
|
|
(load custom-file 'noerror 'nomessage)
|
|
|
|
;; Revert buffers when the underlying file has changed
|
|
(global-auto-revert-mode 1)
|
|
(setq global-auto-revert-non-file-buffers t)
|
|
|
|
;; Remember recent files
|
|
(recentf-mode 1)
|
|
;; TODO - bind recentf-open-files
|
|
|
|
;; Save what you enter into minibuffer prompts
|
|
(setq history-length 25)
|
|
(savehist-mode 1)
|
|
|
|
|
|
(straight-use-package
|
|
'(nano-emacs :type git :host github :repo "rougier/nano-emacs"))
|
|
|
|
(require 'nano-layout)
|
|
(require 'nano-theme-dark)
|
|
(require 'nano-faces)
|
|
(require 'nano-theme)
|
|
(require 'nano-modeline)
|
|
(require 'nano-defaults)
|
|
|
|
(nano-faces)
|
|
(nano-theme)
|
|
|
|
(hl-line-mode 1)
|
|
|
|
|
|
(straight-use-package 'meow)
|
|
(defun meow-setup ()
|
|
(setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty)
|
|
(meow-motion-overwrite-define-key
|
|
'("j" . meow-next)
|
|
'("k" . meow-prev)
|
|
'("<escape>" . ignore))
|
|
(meow-leader-define-key
|
|
;; SPC j/k will run the original command in MOTION state.
|
|
'("j" . "H-j")
|
|
'("k" . "H-k")
|
|
;; Use SPC (0-9) for digit arguments.
|
|
'("1" . meow-digit-argument)
|
|
'("2" . meow-digit-argument)
|
|
'("3" . meow-digit-argument)
|
|
'("4" . meow-digit-argument)
|
|
'("5" . meow-digit-argument)
|
|
'("6" . meow-digit-argument)
|
|
'("7" . meow-digit-argument)
|
|
'("8" . meow-digit-argument)
|
|
'("9" . meow-digit-argument)
|
|
'("0" . meow-digit-argument)
|
|
'("/" . meow-keypad-describe-key)
|
|
'("?" . meow-cheatsheet))
|
|
(meow-define-keys 'insert
|
|
'("ESC" . meow-insert-exit))
|
|
(meow-normal-define-key
|
|
'("0" . meow-expand-0)
|
|
'("9" . meow-expand-9)
|
|
'("8" . meow-expand-8)
|
|
'("7" . meow-expand-7)
|
|
'("6" . meow-expand-6)
|
|
'("5" . meow-expand-5)
|
|
'("4" . meow-expand-4)
|
|
'("3" . meow-expand-3)
|
|
'("2" . meow-expand-2)
|
|
'("1" . meow-expand-1)
|
|
'("-" . negative-argument)
|
|
'(";" . meow-reverse)
|
|
'("," . meow-inner-of-thing)
|
|
'("." . meow-bounds-of-thing)
|
|
'("[" . meow-beginning-of-thing)
|
|
'("]" . meow-end-of-thing)
|
|
'("a" . meow-append)
|
|
'("A" . meow-open-below)
|
|
'("b" . meow-back-word)
|
|
'("B" . meow-back-symbol)
|
|
'("c" . meow-change)
|
|
'("d" . meow-delete)
|
|
'("D" . meow-backward-delete)
|
|
'("e" . meow-next-word)
|
|
'("E" . meow-next-symbol)
|
|
'("f" . meow-find)
|
|
'("g" . meow-cancel-selection)
|
|
'("G" . meow-grab)
|
|
'("h" . meow-left)
|
|
'("H" . meow-left-expand)
|
|
'("i" . meow-insert)
|
|
'("I" . meow-open-above)
|
|
'("j" . meow-next)
|
|
'("J" . meow-next-expand)
|
|
'("k" . meow-prev)
|
|
'("K" . meow-prev-expand)
|
|
'("l" . meow-right)
|
|
'("L" . meow-right-expand)
|
|
'("m" . meow-join)
|
|
'("n" . meow-search)
|
|
'("o" . meow-block)
|
|
'("O" . meow-to-block)
|
|
'("p" . meow-yank)
|
|
'("q" . meow-quit)
|
|
'("r" . meow-replace)
|
|
'("R" . meow-swap-grab)
|
|
'("s" . meow-kill)
|
|
'("t" . meow-till)
|
|
'("u" . meow-undo)
|
|
'("U" . meow-undo-in-selection)
|
|
'("v" . meow-visit)
|
|
'("w" . meow-mark-word)
|
|
'("W" . meow-mark-symbol)
|
|
'("x" . meow-line)
|
|
'("X" . meow-goto-line)
|
|
'("y" . meow-save)
|
|
'("Y" . meow-sync-grab)
|
|
'("z" . meow-pop-selection)
|
|
'("'" . repeat)
|
|
'("/" . meow-comment)
|
|
'("ESC" . ignore)))
|
|
(require 'meow)
|
|
(meow-setup)
|
|
(meow-global-mode 1)
|
|
|
|
;; Meow-tutor notes:
|
|
;; r replaces selection with yank buffer
|
|
|
|
;; When extending a selection by word with e/b, for the purpose of deleting some words,
|
|
;; it would normally be convenient to delete the trailing space as well. What is the meow way to do that? we{#}Ls?
|
|
|
|
;; Why does xy copy the newline but x;y doesn't?
|
|
|
|
;; Beacon mode
|
|
;; How does beacon mode decide whether a movement creates all possible cursors or just one?
|
|
;; How to express "insert before the second word of the line"?
|
|
;; Why doesn't visit work consistently in beacon mode?
|
|
|
|
;; TODO
|
|
;; make C-[ work as ESC for exiting insert mode
|
|
;; use ([{ instead of rsc for brackets and " instead of g for string?
|
|
;; equivalents of evil <, >, = for indentation
|
|
;; interactive/case insensitive visit?
|
|
;; equivalents of evil C-o, C-i
|
|
;; equivalent of gd/gu
|
|
;; equivalent of r
|
|
;; learn kmacros
|
|
;; bind page up/down, make them act more like vim: center new cursor position, go all the way to the end of file if possible
|
|
;; vim surround
|
|
;; system clipboard integration
|
|
;; cmd-z undo on mac
|
|
;; How the fuck does Emacs' default undo/redo work?
|
|
|