Giter Site home page Giter Site logo

.emacs.d-1's Introduction

ONO Emacs - A Modern, Sustainable Approach to Emacs Configuration

ono-screenshot.png

https://forthebadge.com/images/badges/compatibility-emacs.svg https://forthebadge.com/images/badges/contains-technical-debt.svg https://forthebadge.com/images/badges/you-didnt-ask-for-this.svg

About

This repository contains the full contents of my day-to-day Emacs configuration. Inspired by vim, spacemacs, EOS (writequit.org/eos), DOOM (hlissner/doom) and cyberpunk (overtone/emacs-live). It attempts to provide an ergonomic and modern development and writing environment with consistent behavior. Targeting Arch Linux on kernel 4.10+, Emacs version 25+. It is always a work in progress and currently undergoing major improvements and refactoring.

Why Emacs?

If you stumbled onto this repository from one of my personal pages and you’re not familiar with Emacs, you might be wondering why someone would put so much work into a single application. At its core, Emacs is an application for editing text efficiently. But, Emacs is more than just a text editor - It is a fully featured and extensible lisp machine. Essentially, it is an application that you can rewrite on the fly to do whatever you want. Writing, programming? Absolutely. Email, news, web-browsing, and more? Of course! And since Emacs has been around since the 1980’s, it is here to stay.

Goals

The big things I try to implement with this configuration are:

  • Better integration of evil-mode. VIM’s modal editing paradigm is strange and wonderful, and anything else just feels wrong. To do this, I include a large number of extended plugins that extend or fix functionality to be more in-line with my expectations.
  • Ergonomic keybindings that are largely mnemonic. VIM sets an excellent precedent here. I use a leader key (SPC) with bindings mapped to the homerow and repeated positions as much as possible.
  • Fast development. By using the many packages with first-class REPL support along with other tools like quickrun, the rate of prototyping and production can be significantly accelerated.
  • Smarter defaults. From hot-plugging better alternatives for things like just-one-space and zap-to-char, to extended tools like swiper and imenu-anywhere, plus management packages like use-package and shackle, there are a ton of places where a little bit of work to clean up the defaults makes Emacs that much more of a joy to use.
  • An internal module system that avoids circular dependency trees and ensures that modules are loaded in the proper order every single time. This is still very much a work in progress, but is getting there. I hope that by doing this I can keep this configuration from ever getting out of hand.

Languages

The primary languages I work on using Emacs are:

  • Python for shell scripting
  • R for certain projects
  • C++ for where performance is necessary
  • Common Lisp for fun
  • LaTeX for all of my writing
  • Orgmode for task management and remembering things

Other languages that have some level of support are:

  • Haskell, functional programming like math
  • JS which is unavoidable these days
  • Racket and other schemes, same as above
  • Java, since I work with clojure sometimes
  • Various markdown languages
  • More to come!

Other Apps

  • mu4e for Email
  • IRC using CIRCE
  • Elfeed for feed-reading
  • Some games here and there

.emacs.d-1's People

Contributors

zmaas avatar

Watchers

 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.