Skip to content

lukapeschke/emacs-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Emacs config

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.

Installation

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

Running

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.

Updating

$ cd ~/.emacs.d
$ git pull

Supported languages

  • 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.

Notes

Jump to definiton

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).

String cases

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.

Multiple cursors

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

About

My emacs config

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published