Doom Emacs Setup
Doom Emacs is for people who like Vim but in reality want to get things done. Emacs, but with extra Vim keybindings, oh and configured to work out of the box.
Some people may want to show and compare versions of Emacs or Doom Emacs and I've given a way that's pretty simple. Below I've listed my configs for Doom Emacs so others can see what some people choose, I'll even explain why.
I have not gotten around to writing my own elisp extensions for emacs yet, but I would really like to create one for the Crystal REPL or for the Amber Framework + Slang.
If you want to see what setup I use this on check this out.
If you want to learn more about Emacs then check checkout my emacs wiki entry.
config.el
I have my config setup to reflect my workflow and such. I keep notes in a certain place as well as my code and LaTeX projects.
;;Load other config files (load! "+bindings.el") ;Load my custom key bindings ;;Other Projectile packages outside (projectile-add-known-project "~/writings") ;My LaTeX Writings (projectile-add-known-project "~/.notes") ;My Org and Markdown Notes ;;Setq stuff defined by Doom and such (setq projectile-project-search-path '( ;All the code related stuff that I work on "~/Code/crystal" ;All Crystal Projects "~/Code/_sites/" ;All SSG Sites "~/Code/C") ;All C Projects projectile-sort-order 'recentf ;Sort projects by recently opened and worked on ;;doom-theme "doom-one" ;Customize theme here, I just leave as default doom-font (font-spec :family "monospace" :size 13) ;How I like my fonts org-directory "~/.notes/org/") ;Org Directory, in the .notes dir where I like all my notes ;; Activate Packages defined in packages.el (def-package! rtags) ;For C stuff and clang
init.el
For my init, I setup just what I need and I try to disable what I don't utilize. For a full list refer to the repository.
(doom! :input ;;japanese :completion company ; the ultimate code completion backend (ivy +fuzzy +icons) ; a search engine for love and life :ui doom ; what makes DOOM look the way it does doom-dashboard ; a nifty splash screen for Emacs doom-quit ; DOOM quit-message prompts when you quit Emacs hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW modeline ; snazzy, Atom-inspired modeline, plus API nav-flash ; blink the current line after jumping neotree ; a project drawer, like NERDTree for vim ophints ; highlight the region an operation acts on (popup ; tame sudden yet inevitable temporary windows +all ; catch all popups that start with an asterix +defaults) ; default popup rules vc-gutter ; vcs diff in the fringe vi-tilde-fringe ; fringe tildes to mark beyond EOB window-select ; visually switch windows workspaces ; tab emulation, persistence & separate workspaces :editor (evil +everywhere) ; come to the dark side, we have cookies file-templates ; auto-snippets for empty files fold ; (nigh) universal code folding multiple-cursors ; editing in many places at once rotate-text ; cycle region at point between text candidates snippets ; my elves. They type so I don't have to word-wrap ; soft wrapping with language-aware indent :emacs (dired +ranger +icons) ; making dired pretty [functional] electric ; smarter, keyword-based electric-indent ibuffer ; interactive buffer management vc ; version-control and Emacs, sitting in a tree :term term ; terminals in Emacs :checkers syntax ; tasing you for every semicolon you forget spell ; tasing you for misspelling mispelling grammar ; tasing grammar mistake every you make :tools editorconfig ; let someone else argue about tabs vs spaces (eval +overlay) ; run code, run (also, repls) (lookup ; helps you navigate your code and documentation +dictionary +docsets) ; ...or in Dash docsets locally lsp magit ; a git porcelain for Emacs make ; run make tasks from Emacs pdf ; pdf enhancements :lang cc ; C/C++/Obj-C madness crystal ; ruby at the speed of c data ; config/data formats emacs-lisp ; drown in parentheses javascript ; all(hope(abandon(ye(who(enter(here)))))) latex ; writing papers in Emacs has never been so fun markdown ; writing docs for people to ignore (org ; organize your plain life in plain text +dragndrop ; drag & drop files/images into org buffers +hugo ; use Emacs for hugo blogging +pandoc ; export-with-pandoc support +present) ; using org-mode for presentations php ; perl's insecure younger brother sh ; she sells {ba,z,fi}sh shells on the C xor :config ;;literate (default +bindings +smartparens) )