General refactor + cleanup; update TODO.org
This commit is contained in:
parent
b86634e79f
commit
200846ee35
7 changed files with 63 additions and 47 deletions
42
README.md
42
README.md
|
@ -1,4 +1,4 @@
|
||||||
[][sc]
|
[][sc]
|
||||||
|
|
||||||
[](./LICENSE)
|
[](./LICENSE)
|
||||||
[](./init.el)
|
[](./init.el)
|
||||||
|
@ -11,13 +11,13 @@
|
||||||
This is an Emacs configuration for a stubborn, melodramatic and shell-dwelling
|
This is an Emacs configuration for a stubborn, melodramatic and shell-dwelling
|
||||||
vimmer disappointed with the text-editor status quo.
|
vimmer disappointed with the text-editor status quo.
|
||||||
|
|
||||||
Doom tries to look and act like modern editors (whatever that means to me on any
|
Doom tries to: look and act like modern editors (whatever that means to me on
|
||||||
given day), espouse vim's modal philosophy as best it can, and strive to surpass
|
any given day), espouse vim's modal philosophy as best it can and strive to
|
||||||
vim in any way possible. It fits my needs as a software developer, indie game
|
surpass vim in any way possible. It fits my needs as a software developer, indie
|
||||||
developer, scientist and doom enthusiast.
|
game developer, scientist and doom enthusiast.
|
||||||
|
|
||||||
It was tailored for **MacOS 10.11+** and **Arch Linux 4.7+**, and
|
It was tailored for **Emacs 25.1+** on **MacOS 10.11+** and **Arch Linux 4.7+**.
|
||||||
**exclusively** for Emacs 25.1+. I use [vim] everywhere else.
|
I use [vim] everywhere else.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
@ -54,26 +54,30 @@ To get a picture of what's in here, check out:
|
||||||
|
|
||||||
### Highlights
|
### Highlights
|
||||||
|
|
||||||
* A [popup management system](core/core-popups.el) using **[shackle]** for
|
* A [popup window management system](core/core-popups.el) using **[shackle]** to
|
||||||
temporary or disposable buffers.
|
minimize mental context switching while dealing with temporary or disposable
|
||||||
* Per-project code-style settings with **[editorconfig]**.
|
buffers.
|
||||||
* Workspaces, tab emulation & session persistence with **[persp-mode]**.
|
* Per-project code-style settings with **[editorconfig]**. Let someone else
|
||||||
* Project and workspace-restricted buffer navigation and functions.
|
argue about tabs versus spaces (spaces > tabs, btw).
|
||||||
|
* Workspaces & session persistence with **[persp-mode]**. This provides tab
|
||||||
|
emulation that vaguely resembles vim tabs.
|
||||||
|
* Project & workspace-aware buffer navigation and functions.
|
||||||
* A vim-centric environment with **[evil-mode]**
|
* A vim-centric environment with **[evil-mode]**
|
||||||
* 2-character motions (ala vim-seek/vim-sneak) with **[evil-snipe]**
|
* 2-character motions (ala vim-seek/vim-sneak) with **[evil-snipe]**
|
||||||
* Sublime Text-esque [multiple cursors][sc-multiedit] with
|
* Sublime Text-esque [multiple cursors][sc-multiedit] with
|
||||||
**[evil-multiedit]**
|
**[evil-mc]** and **[evil-multiedit]**
|
||||||
* Repeat (most) motions with <kbd>SPC</kbd> and
|
* Repeat (most) motions with <kbd>SPC</kbd> and
|
||||||
<kbd>shift</kbd>+<kbd>SPC</kbd> (backwards)
|
<kbd>shift</kbd>+<kbd>SPC</kbd> (backwards)
|
||||||
* Global <kbd>C-x</kbd> omnicompletion
|
* <kbd>C-x</kbd> omnicompletion in insert mode
|
||||||
* Fast search utilities:
|
* Fast search utilities:
|
||||||
* Project and buffer navigation with **[ivy]**
|
* Project and buffer navigation with **[ivy]**
|
||||||
* File browser sidebar with **[neotree]**
|
* File browser sidebar with **[neotree]**
|
||||||
* Project search (& replace) with **[counsel-ag]** (and **[wgrep]**)
|
* Project text search powered by [the silver searcher][ag] and [ripgrep][rg]
|
||||||
|
(see `:ag` and `:rg`)
|
||||||
|
* Project search & replace with **[wgrep]**
|
||||||
* Interactive buffer search with **[swiper]**
|
* Interactive buffer search with **[swiper]**
|
||||||
* REPLs & inline/live code evaluation (using **[quickrun]** and
|
* REPLs & inline/live code evaluation (using **[quickrun]**) with languages
|
||||||
**[repl-toggle]**) for many languages including Ruby, Python, PHP, JS, Elisp,
|
support for Ruby, Python, PHP, JS, Elisp, Haskell, Lua and more.
|
||||||
Haskell and Lua.
|
|
||||||
* [Minimalistic diffs in the fringe][sc-diffs] with **[git-gutter-fringe]**.
|
* [Minimalistic diffs in the fringe][sc-diffs] with **[git-gutter-fringe]**.
|
||||||
* A do-what-I-mean jump-to-definition implementation that tries its darnest to
|
* A do-what-I-mean jump-to-definition implementation that tries its darnest to
|
||||||
find the definition of what you're looking at. It tries major-mode commands,
|
find the definition of what you're looking at. It tries major-mode commands,
|
||||||
|
@ -105,6 +109,7 @@ even elisp tips.
|
||||||
[doom-theme]: https://github.com/hlissner/emacs-doom-theme
|
[doom-theme]: https://github.com/hlissner/emacs-doom-theme
|
||||||
[dumb-jump]: https://melpa.org/#/dumb-jump
|
[dumb-jump]: https://melpa.org/#/dumb-jump
|
||||||
[editorconfig]: http://editorconfig.org/
|
[editorconfig]: http://editorconfig.org/
|
||||||
|
[evil-mc]: https://github.com/gabesoft/evil-mc
|
||||||
[evil-mode]: https://melpa.org/#/evil
|
[evil-mode]: https://melpa.org/#/evil
|
||||||
[evil-multiedit]: https://melpa.org/#/evil-multiedit
|
[evil-multiedit]: https://melpa.org/#/evil-multiedit
|
||||||
[evil-snipe]: https://melpa.org/#/evil-snipe
|
[evil-snipe]: https://melpa.org/#/evil-snipe
|
||||||
|
@ -113,7 +118,6 @@ even elisp tips.
|
||||||
[neotree]: https://melpa.org/#/neotree
|
[neotree]: https://melpa.org/#/neotree
|
||||||
[persp-mode]: https://melpa.org/#/persp-mode
|
[persp-mode]: https://melpa.org/#/persp-mode
|
||||||
[quickrun]: https://melpa.org/#/quickrun
|
[quickrun]: https://melpa.org/#/quickrun
|
||||||
[repl-toggle]: https://melpa.org/#/repl-toggle
|
|
||||||
[sc-diffs]: https://github.com/hlissner/.emacs.d/blob/screenshots/git-gutter.png?raw=true
|
[sc-diffs]: https://github.com/hlissner/.emacs.d/blob/screenshots/git-gutter.png?raw=true
|
||||||
[sc-multiedit]: https://raw.githubusercontent.com/hlissner/evil-multiedit/screenshots/main.gif?raw=true
|
[sc-multiedit]: https://raw.githubusercontent.com/hlissner/evil-multiedit/screenshots/main.gif?raw=true
|
||||||
[sc]: https://github.com/hlissner/.emacs.d/tree/screenshots
|
[sc]: https://github.com/hlissner/.emacs.d/tree/screenshots
|
||||||
|
|
40
TODO.org
40
TODO.org
|
@ -5,10 +5,10 @@
|
||||||
+ [-] Work-in-progress
|
+ [-] Work-in-progress
|
||||||
+ [X] Complete
|
+ [X] Complete
|
||||||
|
|
||||||
** Planned [6/87]
|
** Planned [6/73]
|
||||||
+ [0/11] Potential plugins
|
+ [0/11] Potential plugins
|
||||||
+ [-] [[https://github.com/syl20bnr/vi-tilde-fringe][vi-tilde-fringe]]: subtle, vim-ish empty-line indicator
|
|
||||||
+ [ ] [[https://github.com/emacs-lsp/lsp-mode][lsp-mode]]: client for MS Language Server Protocol, keep an eye on this
|
+ [ ] [[https://github.com/emacs-lsp/lsp-mode][lsp-mode]]: client for MS Language Server Protocol, keep an eye on this
|
||||||
|
+ [ ] lang/javascript: [[https://github.com/NicolasPetton/Indium][indium]] (IDE), keep an eye on this
|
||||||
+ [ ] lang/javascript: [[https://github.com/codesuki/add-node-modules-path][add-node-modules-path]] (adds node_modules to ~exec-path~)
|
+ [ ] lang/javascript: [[https://github.com/codesuki/add-node-modules-path][add-node-modules-path]] (adds node_modules to ~exec-path~)
|
||||||
+ [ ] lang/org: [[https://github.com/Malabarba/latex-extra][orgit]] (org links to magit buffers)
|
+ [ ] lang/org: [[https://github.com/Malabarba/latex-extra][orgit]] (org links to magit buffers)
|
||||||
+ [ ] lang/org: [[https://github.com/jkitchin/org-ref][org-ref]] (bibtex/citation helper)
|
+ [ ] lang/org: [[https://github.com/jkitchin/org-ref][org-ref]] (bibtex/citation helper)
|
||||||
|
@ -17,10 +17,8 @@
|
||||||
+ [ ] lang/latex: [[**https://github.com/jsinglet/latex-preview-pane][latex-preview-pane]]
|
+ [ ] lang/latex: [[**https://github.com/jsinglet/latex-preview-pane][latex-preview-pane]]
|
||||||
+ [ ] lang/julia: [[ https://github.com/dennisog/julia-shell-mode][julia-shell]] (unsure if better than inferior-julia in julia-mode)
|
+ [ ] lang/julia: [[ https://github.com/dennisog/julia-shell-mode][julia-shell]] (unsure if better than inferior-julia in julia-mode)
|
||||||
+ [ ] lang/python: [[https://github.com/Wilfred/pyimport][pyimport]]
|
+ [ ] lang/python: [[https://github.com/Wilfred/pyimport][pyimport]]
|
||||||
+ [ ] An image plugin for zooming images at point
|
+ [ ] An image plugin for zooming images at point (maybe [[https://github.com/mhayashi1120/Emacs-imagex][emacs-imagex]])
|
||||||
+ https://github.com/mhayashi1120/Emacs-imagex ?
|
+ [0/4] New modules
|
||||||
+ [0/5] New modules
|
|
||||||
+ [ ] tools/regex (PCRE regex editor, perhaps use ~re-builder~ & ~pcre2el~?)
|
|
||||||
+ [ ] app/finance (maybe settle for org-mode tables?)
|
+ [ ] app/finance (maybe settle for org-mode tables?)
|
||||||
+ [ ] app/irc
|
+ [ ] app/irc
|
||||||
+ [-] app/crm
|
+ [-] app/crm
|
||||||
|
@ -90,23 +88,33 @@
|
||||||
+ [ ] rss
|
+ [ ] rss
|
||||||
+ [ ] twitter
|
+ [ ] twitter
|
||||||
+ [ ] present
|
+ [ ] present
|
||||||
+ [-] core-ui: switch from nlinum => linum
|
|
||||||
+ [-] ui/doom-modeline: different faces for buffer path and file name
|
** 2.0.3 [4/18]
|
||||||
|
+ [ ] lang/org: fix janky visual line motions (~evil-next-visual-line~, etc)
|
||||||
|
+ [ ] lang/org: fix janky cursor positioning when manipulating org-table cells
|
||||||
|
+ [ ] lang/org: don't move cursor when realigning org tables
|
||||||
|
+ [ ] lang/org: certain characters/keys--when typed in a table--cause the cell
|
||||||
|
to shrink (smartparens pairs & non-self-insert-command, likely)
|
||||||
|
+ [ ] core-ui: replace ~winner-mode~ (too unreliable)
|
||||||
|
+ [ ] Generalize ~doom-visual-bell~ by basing its background off a face
|
||||||
+ [ ] ui/doom-modeline: extend ~media-info~ segment for other media
|
+ [ ] ui/doom-modeline: extend ~media-info~ segment for other media
|
||||||
+ [ ] completion/ivy: flexible column width for ~+ivy/tasks~
|
+ [ ] completion/ivy: flexible column width for ~+ivy/tasks~
|
||||||
+ [ ] Extend ~evil-escape~ to ~evil-multiedit-insert-state~
|
+ [ ] features/evil: extend ~evil-escape~ to ~evil-multiedit-insert-state~
|
||||||
+ [ ] ui/doom (nav-flash): don't flash when activating evil-multiedit or in eshell/term buffers
|
+ [ ] ui/doom: fix nav-flash on evil-multiedit or in eshell/term buffers
|
||||||
+ [ ] Write ~describe-setting~ for ~def-setting!~ definitions.
|
+ [ ] Write ~describe-setting~ for ~def-setting!~ definitions.
|
||||||
+ [ ] lang/org: fix janky cursor positioning when manipulating table cells
|
|
||||||
+ [ ] lang/org: don't move cursor when realigning tables
|
|
||||||
+ [ ] lang/org: certain characters/keys, when typed in a table, cause the cell to shrink (smartparens pairs & non-self-insert-command, likely)
|
|
||||||
+ [ ] Fix invisible buffer-info segment in modeline for terminal Emacs
|
+ [ ] Fix invisible buffer-info segment in modeline for terminal Emacs
|
||||||
+ [ ] tools/upload: add ~+upload/open-remote-file~ command to open current file on the remote (with TRAMP)
|
+ [ ] tools/upload: add ~+upload/open-remote-file~ command to open current file
|
||||||
+ [ ] Generalize ~doom-visual-bell~ by basing its background off a face
|
on the remote (with TRAMP)
|
||||||
|
+ [ ] tools/regex: PCRE regex editor, maybe ~re-builder~ & ~pcre2el~?
|
||||||
|
+ [X] Fix help-mode links opening new popups #ui
|
||||||
|
Added ~:noclone~ property to popup rules
|
||||||
|
+ [X] Different faces for buffer path and file name #ui
|
||||||
|
+ [X] Switch from nlinum => linum #ui
|
||||||
|
+ [X] [[https://github.com/syl20bnr/vi-tilde-fringe][vi-tilde-fringe]]: subtle, vim-ish empty-line indicator #ui
|
||||||
|
|
||||||
** 2.0.2 [67/67]
|
** 2.0.2 [67/67]
|
||||||
+ [X] Update screenshots
|
+ [X] Update screenshots
|
||||||
+ [X] ui/doom: polish git-gutter fringe bitmaps (deleted appears truncated)
|
+ [X] ui/doom: polish git-gutter fringe bitmaps (deleted bitmap appears truncated)
|
||||||
+ [X] ui/doom-modeline: fix ~0/0~ display in modeline (leftover anzu state)
|
+ [X] ui/doom-modeline: fix ~0/0~ display in modeline (leftover anzu state)
|
||||||
+ [X] send-to-REPL workflow: does it still work? (see ~:repl~ & ~+eval/repl-send-region~)
|
+ [X] send-to-REPL workflow: does it still work? (see ~:repl~ & ~+eval/repl-send-region~)
|
||||||
+ [X] completion/ivy: restore ag searching (for compressed files)
|
+ [X] completion/ivy: restore ag searching (for compressed files)
|
||||||
|
|
|
@ -224,7 +224,7 @@ file."
|
||||||
;; For a distractions-free-like UI, that dynamically resizes margets and can
|
;; For a distractions-free-like UI, that dynamically resizes margets and can
|
||||||
;; center a buffer.
|
;; center a buffer.
|
||||||
(def-package! visual-fill-column
|
(def-package! visual-fill-column
|
||||||
:commands (visual-fill-column-mode)
|
:commands visual-fill-column-mode
|
||||||
:config
|
:config
|
||||||
(setq-default visual-fill-column-center-text nil
|
(setq-default visual-fill-column-center-text nil
|
||||||
visual-fill-column-width fill-column))
|
visual-fill-column-width fill-column))
|
||||||
|
|
|
@ -95,6 +95,7 @@ there are problems.")
|
||||||
create-lockfiles nil
|
create-lockfiles nil
|
||||||
history-length 1000
|
history-length 1000
|
||||||
make-backup-files nil
|
make-backup-files nil
|
||||||
|
undo-tree-auto-save-history t
|
||||||
;; files
|
;; files
|
||||||
abbrev-file-name (concat doom-local-dir "abbrev.el")
|
abbrev-file-name (concat doom-local-dir "abbrev.el")
|
||||||
auto-save-list-file-name (concat doom-cache-dir "autosave")
|
auto-save-list-file-name (concat doom-cache-dir "autosave")
|
||||||
|
|
|
@ -204,6 +204,7 @@
|
||||||
;; and separators/dividers
|
;; and separators/dividers
|
||||||
("^ *\\(-----+\\)$" 1 'org-meta-line)
|
("^ *\\(-----+\\)$" 1 'org-meta-line)
|
||||||
;; custom #hashtags & @at-tags for another level of organization
|
;; custom #hashtags & @at-tags for another level of organization
|
||||||
|
;; TODO refactor this into a single rule
|
||||||
("\\s-\\(#[^ \n]+\\)" 1 'org-tag)
|
("\\s-\\(#[^ \n]+\\)" 1 'org-tag)
|
||||||
("\\s-\\(@[^ \n]+\\)" 1 'org-special-keyword))))
|
("\\s-\\(@[^ \n]+\\)" 1 'org-special-keyword))))
|
||||||
|
|
||||||
|
@ -224,20 +225,18 @@
|
||||||
(sp-local-pair "{" nil))
|
(sp-local-pair "{" nil))
|
||||||
|
|
||||||
;; The standard unicode characters are usually misaligned depending on the
|
;; The standard unicode characters are usually misaligned depending on the
|
||||||
;; font. This bugs me. Personally, the markdown #-marks for headlines are more
|
;; font. This bugs me. Personally, markdown #-marks for headlines are more
|
||||||
;; elegant, so use those.
|
;; elegant, so we use those.
|
||||||
(def-package! org-bullets
|
(def-package! org-bullets
|
||||||
:commands org-bullets-mode
|
:commands org-bullets-mode
|
||||||
:init (add-hook 'org-mode-hook 'org-bullets-mode)
|
:init (add-hook 'org-mode-hook #'org-bullets-mode)
|
||||||
:config (setq org-bullets-bullet-list '("#")))
|
:config (setq org-bullets-bullet-list '("#")))
|
||||||
|
|
||||||
;; Keybinds
|
;; Keybinds
|
||||||
(map! (:map org-mode-map
|
(map! (:map org-mode-map
|
||||||
"RET" nil
|
"RET" #'org-return-indent
|
||||||
"C-j" nil
|
"C-j" nil
|
||||||
"C-k" nil
|
"C-k" nil)
|
||||||
:i [remap doom/inflate-space-maybe] #'org-self-insert-command
|
|
||||||
:i "RET" #'org-return-indent)
|
|
||||||
|
|
||||||
(:map evil-org-mode-map
|
(:map evil-org-mode-map
|
||||||
:n "RET" #'+org/dwim-at-point
|
:n "RET" #'+org/dwim-at-point
|
||||||
|
@ -266,10 +265,10 @@
|
||||||
:i [backtab] #'+org/dedent-or-prev-field
|
:i [backtab] #'+org/dedent-or-prev-field
|
||||||
|
|
||||||
:n "<tab>" #'+org/toggle-fold
|
:n "<tab>" #'+org/toggle-fold
|
||||||
|
:v "<S-tab>" #'+snippets/expand-on-region
|
||||||
|
|
||||||
:nv "j" #'evil-next-visual-line
|
:nv "j" #'evil-next-visual-line
|
||||||
:nv "k" #'evil-previous-visual-line
|
:nv "k" #'evil-previous-visual-line
|
||||||
:v "<S-tab>" #'+snippets/expand-on-region
|
|
||||||
|
|
||||||
:i "M-a" (λ! (evil-visual-state) (org-mark-element))
|
:i "M-a" (λ! (evil-visual-state) (org-mark-element))
|
||||||
:n "M-a" #'org-mark-element
|
:n "M-a" #'org-mark-element
|
||||||
|
|
|
@ -355,6 +355,10 @@
|
||||||
:i [remap delete-backward-char] #'doom/deflate-space-maybe
|
:i [remap delete-backward-char] #'doom/deflate-space-maybe
|
||||||
:i [remap newline] #'doom/newline-and-indent
|
:i [remap newline] #'doom/newline-and-indent
|
||||||
|
|
||||||
|
(:after org-mode
|
||||||
|
(:map org-mode-map
|
||||||
|
:i [remap doom/inflate-space-maybe] #'org-self-insert-command))
|
||||||
|
|
||||||
;; Make ESC quit all the things
|
;; Make ESC quit all the things
|
||||||
(:map (minibuffer-local-map
|
(:map (minibuffer-local-map
|
||||||
minibuffer-local-ns-map
|
minibuffer-local-ns-map
|
||||||
|
@ -381,6 +385,7 @@
|
||||||
|
|
||||||
(:map help-map
|
(:map help-map
|
||||||
"l" #'find-library
|
"l" #'find-library
|
||||||
|
"L" #'view-lossage
|
||||||
"h" #'describe-face ; overwrite `view-hello-file'
|
"h" #'describe-face ; overwrite `view-hello-file'
|
||||||
"g" nil))
|
"g" nil))
|
||||||
|
|
||||||
|
|
|
@ -41,8 +41,6 @@
|
||||||
;; <https://github.com/hlissner/emacs-doom-theme>
|
;; <https://github.com/hlissner/emacs-doom-theme>
|
||||||
(def-package! doom-themes :demand t
|
(def-package! doom-themes :demand t
|
||||||
:config
|
:config
|
||||||
(setq doom-one-linum-height 0.9)
|
|
||||||
|
|
||||||
(load-theme +doom-theme t)
|
(load-theme +doom-theme t)
|
||||||
|
|
||||||
;; Since Fira Mono doesn't have an italicized variant, highlight it instead
|
;; Since Fira Mono doesn't have an italicized variant, highlight it instead
|
||||||
|
@ -137,4 +135,5 @@
|
||||||
(fringe-helper-define 'git-gutter-fr:deleted 'bottom
|
(fringe-helper-define 'git-gutter-fr:deleted 'bottom
|
||||||
"X......."
|
"X......."
|
||||||
"XX......"
|
"XX......"
|
||||||
"XXX....."))
|
"XXX....."
|
||||||
|
"XXXX...."))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue