This is my Emacs configuration. It supports various config formats and adds advanced support for several languages through lsp-mode . PR's are welcome!
DISCLAIMER: This is very opinionated and made to suit my needs, so it may not fit yours. Most options are commented though, so you should be able to adapt the config to what suits you best.
Make sure you've access to the internet the first time you start Emacs after installing this config, as on startup emacs will ensure that all required packages are installed.
$ git clone https://github.com/lukapeschke/emacs-config ~/.emacs.d
I highly recommend to run emacs in daemon mode (I'm running it with a systemd user service, but it is not mandatory) in order to benefit from instant start times and shared clipboards, among others.
$ cd ~/.emacs.d
$ git pull
- Python. Depends on pylint, mypy and ms-pyls . You can optionally install black , which will format your python code on save.
- Rust. Depends on rls .
- Go. Depends on gopls and
goimports
. - Elixir. Depends on ElixirLS .
- Scala. Depends on MetaLS .
- JavaScript/TypeScript. Depends either on deno or any other JS/TS language server.
- Kotlin. Depends on kotlin-language-server.
The config includes dumb-jump , which allows to jump to function definitions
and is bound to M-.
(alt key plus dot key) by default.
For better performance, it is recommended to use The silver searcher
(ag
) or ripgrep (rg
).
The string-inflection package is also included. It allows to cycle between string cases for the current term.
By default, it is enabled for JS/TS and Scala (java cycle), Python and Rust (python cycle). The cycle command is
bound to C-c C-u
.
Of course, the config includes `multiple-cursors`_. Following bindings are set:
C-c C-c
->mc/edit-lines
C-c >
->mc/mark-next-like-this
C-c <
->mc/mark-previous-like-this
C-c a
->mc/mark-all-like-this