Giter VIP home page Giter VIP logo

.emacs.d's Introduction

Velocity's Emacs Config

Yes, it’s another bloody Emacs config.

Because two wasn’t enough.

Disclaimer! This is not a community framework or distribution or starter kit or what have you. It’s a private configuration and an ongoing experiment to feel out Emacs from scratch. I make no guarantees that it’ll work out of the box for anyone that isn’t me. It might even just change entirely out of nowhere.

Yes, I did steal this disclaimer (and part of this README) from hlissner/dotfiles.

Package Management

My config uses use-package, and all the packages are defined in packages.el.

Try not to use M-x package-install - use :ensure t inside the use-package blocks instead.

Of course, that implies you, the reader, will use this config. And you probably shouldn't.

Specified Packages

This is (probably) every package that's specified in packages.el.

Editing

  • yasnippet: Enables snippet support.
  • company: Provides auto-completion using company-mode.
  • affe: A fuzzy finder for quick navigation and file selection. I'm not sure how it works though.

Languages

  • markdown-mode: Enhances Markdown editing.
  • rust-mode: Configures Rust-specific settings.

LSP

  • lsp-mode: Provides Language Server Protocol support. Right now only Rust is configured.
  • lsp-ui: Enhances the Language Server Protocol experience.
  • company-lsp: Integrates company with Language Server Protocol.

User interface

  • vertico: Enhances minibuffer completion.
  • savehist: Saves minibuffer history.
  • which-key: Helps discover keybindings.
  • switch-window: More powerful window switching with C-x o.

Visual enhancements

  • adaptive-wrap: Enables adaptive wrapping for visual-line-mode.
  • writeroom-mode: Creates a distraction-free writing environment.
  • mixed-pitch: Variable pitch mode, that keeps fixed pitch where needed.
  • doom-themes: Provides a selection of themes from Doom Emacs.
  • marginalia: Provides descriptions in the minibuffer margin.
  • ligature: Enables ligature support for specified symbols.

Infrequently Asked Questions

  • Why Emacs?

    Yes.

  • How do I learn Emacs?

    Short answer: You just do.

    Long (i32) answer: No, really. You just do.

    i64 answer: I'm serious. You just learn it.

    u64 answer: Alright, fine. Here's how:

    • Use a starter kit like Doom Emacs or Spacemacs if it makes it easier.
    • Watch YouTube tutorials - I recommend System Crafters and DistroTube.
    • Read some Emacs Lisp tutorials - learning Elisp is paramount for a good Emacs config.
    • If you know Vim, try evil-mode. (Don't use viper-mode, it's outdated as hell and isn't as nice as evil.)

    u128 answer: To get Emacs, first go to the Emacs website. Click whatever OS is there. Follow the instructions. Once Emacs is installed, open it up. It'll be in your Start Menu/Applications folder/just run it in the terminal.

    Emacs will then be open. Once Emacs is open, you can do C-x C-f to open find-file in the minibuffer.

    By the way, the minibuffer is that bit at the bottom of the Emacs frame. By the way, the frame is what lesser beings refer to as a "window". By the way, a "window" is something completely different in Emacs- oh god, I've gone cross-eyed.

    Once you've C-x C-f'd, type in ~/.emacs.d/init.el. ~ means your home directory. On Windows that's usually C:\Users\<username\. On macOS that's /Users/<username>/. On Linux it's usually /home/<username>/.

    Then hit RET. RET is Enter/Return.

    Once you hit RET you will be editing your Emacs init-file. You can enter something, like this:

    (setq some-variable "some-value")

    Congratulations, you just made an Emacs variable! Now you can use that somewhere else, like so:

    (message some-variable) ;; will print "some-value" in the minibuffer

    Okay, I'm bored of teaching you, and this has gone on u128 enough.

    u256 answer: Okay COME ON, that's NOT EVEN A VALID RUST DATA TYPE

.emacs.d's People

Contributors

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