Skip to content

otype/emacs.d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

148 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

emacs.d

An opinionated Emacs configuration.

GitHub last commit GitHub issues GitHub pull requests LICENSE

Emacs.d is an opinionated Emacs configuration based on use-package, helm (& various addons), projectile, flycheck and smartparens. For the looks, it uses dashboard, centaur-tabs, doom-modeline, kaolin-themes and all-the-icons.

For coding, it provides magit (with forge), lsp-mode with lsp-ui, and org-mode with org-modern and org-roam. Language support is configured per file — active languages are Elixir, Go, JavaScript, Lisp, Python, Rust and Terraform. Additional configurations for Haskell, Java, Ruby and Vala are available but disabled by default.

All language layers use lsp-mode as the unified backend for completions, diagnostics, code actions, and navigation — with company for the completion frontend. Python uses lsp-pyright with blacken for formatting.

Preview

Here are some sample screenshots:

Emacs Dashboard Coding in Rust Using Helm

Getting started

Requirements

Installation

  1. Clone this repo. This will go to your $HOME directory.
$ git clone https://github.com/otype/emacs.d.git ~/.emacs.d
  1. Enable your desired language support configurations. This happens in init.el.

Please check each language configuration file (see /elisp/) for related dependencies.

$ nano -w ~/.emacs.d/init.el
  1. Add your personal email and name. Modify user.el.

  2. Start Emacs. Emacs will auto-install all dependencies.

$ emacs

Once finished, you have a working Emacs configuration.

Key bindings reference

Helm (C-c h …)

Binding Command
M-x helm-M-x
C-x C-f helm-find-files
C-x b helm-mini (buffer switcher)
M-y helm-show-kill-ring
C-c h a helm-projectile-ag
C-c h b helm-filtered-bookmarks
C-c h d helm-do-ag
C-c h g helm-browse-project
C-c h i helm-semantic-or-imenu
C-c h k helm-show-kill-ring
C-c h m helm-mini
C-c h o helm-occur
C-c h r helm-resume
C-c h v helm-projectile

LSP (C-c l …)

Binding Command
C-c l r lsp-rename
C-c l a lsp-execute-code-action
C-c l f lsp-format-buffer
C-c l d lsp-describe-thing-at-point
C-c l l lsp-ui-flycheck-list

Magit (C-c m …)

Binding Command
C-c m b magit-branch-and-checkout
C-c m c magit-commit
C-c m d magit-diff-unstaged
C-c m e magit-ediff-resolve
C-c m f magit-fetch
C-c m l magit-log-current
C-c m p magit-push
C-c m r magit-rebase-interactive
C-c m s magit-status
C-c m u magit-pull
C-c m x magit-checkout

Org (C-c o …)

Binding Command
C-c o a org-agenda
C-c o c org-capture
C-c o s org-store-link

Org-roam (C-c r …)

Binding Command
C-c r f org-roam-node-find
C-c r g org-roam-graph
C-c r l org-roam-buffer-toggle
C-c r r org-roam-node-random
C-c r i org-roam-node-insert (org buffers)
C-c r d org-roam-dailies-capture-today (org buffers)

About

An opinionated Emacs configuration

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors