GithubHelp home page GithubHelp logo

wiltaylor / doom-emacs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from doomemacs/doomemacs

0.0 2.0 0.0 19.76 MB

An Emacs configuration for the stubborn martian vimmer

License: MIT License

Emacs Lisp 94.46% JavaScript 0.03% PHP 0.01% Ruby 0.01% HTML 0.05% Go 0.01% Rust 0.01% Shell 0.07% Batchfile 0.02% YASnippet 5.25% Nix 0.12%

doom-emacs's Introduction

Made with Doom Emacs Supports Emacs 26.x - 27.0.50 Build status: develop Join our discord server

Doom Emacs Screenshot

Screenshots | Get started | Contribute | Documentation | FAQ


Quick start

  1. Install Emacs 26.1+. 27 is recommended. 28+ is not supported.

  2. Install ripgrep 11.0+.

  3. Windows and BSD users will need GNU Find.

  4. Clone Doom and run its installer:

    git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
    ~/.emacs.d/bin/doom install

Find more detailed install instructions in the documentation.

Table of Contents

What is Doom Emacs

It is a story as old as time. A stubborn, shell-dwelling, and melodramatic vimmer -- envious of the features of modern text editors -- spirals into despair before succumbing to the dark side. This is his config.

Doom is a configuration framework for GNU Emacs tailored for Emacs bankruptcy veterans who want less framework in their frameworks and the performance of a hand rolled config (or better). It can be a foundation for your own config or a resource for Emacs enthusiasts to learn more about our favorite OS.

Doom's mantras

  • Gotta go fast. Startup and run-time performance are priorities. Doom goes beyond lazy loading packages by modifying them to be snappier and load lazier!
  • Close to metal. There's less between you and vanilla Emacs by design. There's less to grok, on top of Emacs.
  • Readability counts. Internals ought to be written as if reading them were part of the user experience, and it is! Modules should be syntactically sweet. Backend logic should be functional (as much as elisp permits), abstraction light and (hopefully) documented.
  • Opinionated, but not stubborn. Doom is a bundle of reasonable defaults and curated opinions, but all of it should be optional. Use as little or as much of it as you like.
  • Your system, your rules. There are more ways to set up your development environment than there are dislikes on Youtube Rewind '18, so Doom leaves it to you. Doom will not automatically install system dependencies (and will coerce its plugins not to do so either). Use doom doctor to figure out what's missing.

Features

  • Minimalistic good looks inspired by modern editors.
  • A modular architecture that can be extended to your own configs.
  • A standard library suited to simplifying your config.
  • A declarative package management system (powered by straight.el) with a command line interface. Install packages from anywhere, not just (M)ELPA.
  • (Optional) Vim-emulation powered by evil-mode, including ports of popular vim plugins and functionality.
  • Curated and sane defaults for many packages, (major) OSes, and Emacs itself.
  • Support for many programming languages. Includes syntax highlighting, linters/checker integration, inline code evaluation, code completion (where possible), REPLs, documentation lookups, snippets, and more!
  • Support for many tools, like docker, pass, ansible, terraform, and more.
  • A Spacemacs-esque keybinding scheme, centered around leader and localleader prefix keys (SPC and SPCm, by default).
  • A rule-based popup management system to control how temporary or disposable buffers are displayed (and disposed of).
  • Automatic indentation detection and editorconfig integration. Let someone else argue about tabs vs _*spaces*_.
  • Project-management tools and framework-specific minor modes with their own snippets libraries.
  • Project search (and replace) utilities, powered by ripgrep.
  • Isolated and persistent workspaces (also substitutes for vim tabs).
  • An envvar file generator that captures a snapshot of your shell environment for Doom to load at startup. No more struggling to get Emacs to inherit your PATH, among other things.

Getting Help

Community

We have a Discord server! Hop on and say hi!

Troubleshooting

Encountered a problem? Here are some things to try before shooting off that bug report:

  • Run bin/doom sync. This ensures Doom is properly set up and its autoloads files are up-to-date.
  • Folks who have byte-compiled their config (with bin/doom compile) should run bin/doom clean to rule out stale bytecode. Never debug with a byte-compiled config. It makes your job harder.
  • Run bin/doom doctor to detect common issues in your development environment and missing third party dependencies.
  • Search Doom's issue tracker in case your issue was already reported.
  • Visit our FAQ to see if your issue is listed.

If all else fails, file that bug report! Please do not ignore the issue template! It's a great help if you can include a backtrace with errors.

Contributing

Doom (and my Emacs work in general) is a labor of love and incurable madness, done on my spare time. If you'd like to support my work, there are many things you can do to help. I welcome contributions!

  • I love pull requests and bug reports. Check out the Contributing Guidelines to find out how you can help out.
  • I welcome Elisp pointers! Don't hesitate to tell me my Elisp-fu sucks (but please tell me why).
  • Hop on our Discord server and say hi! Help others out, hang out or talk to me about Emacs, or gamedev, or programming, machine learning, physics, pixel art, anime, gaming -- anything you like. Nourish this lonely soul!
  • If you'd like to support my work financially, consider buying me a drink through liberapay or paypal. Donations are a great help. My work here contends with studies, ventures in indie gamedev, and my freelance work.

doom-emacs's People

Contributors

amosbird avatar ar1a avatar bennyandresen avatar br1ght0ne avatar danlamanna avatar darth10 avatar dsdshcym avatar edmundmiller avatar edwintorok avatar flatwhatson avatar fuxialexander avatar gagbo avatar gilbertw1 avatar hlissner avatar jakdar avatar jsravn avatar jwintz avatar mnick avatar patrl avatar rgrinberg avatar seanfarley avatar sei40kr avatar steamedfish avatar teesloane avatar undeadkernel avatar vikigenius avatar ymarco avatar zakkak avatar zenlor avatar ztlevi avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.