• Stars
    star
    258
  • Rank 158,189 (Top 4 %)
  • Language
    Emacs Lisp
  • License
    MIT License
  • Created almost 11 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

My emacs configuration

modi .emacs.d

My emacs setup is tested to work only with emacs 25.1 and newer versions. If you are on older versions, I would recommend that you upgrade to the latest available stable version.

On the other hand, I keep my emacs updated to the /latest Development version/. So my config will definitely work with that if you too are doing the same.

Using my emacs setup

You can start using my emacs setup by following these steps:

  1. Download the latest update script for this config
    curl -o force_update_emacsd.sh https://raw.githubusercontent.com/kaushalmodi/.emacs.d/master/force_update_emacsd.sh
    chmod 744 force_update_emacsd.sh
        

    This script git clones my config and all sub-modules that I rely on (mine + others).

  2. Run the script (review it first if you like) using below if you want to download this config to your ~/.emacs.d/ directory.
    ./force_update_emacsd.sh ~/.emacs.d
        

    If the download location you specify already exists, a backup of it is created first.

  3. Edit the =user-emacs-directory= var in the just downloaded =init.el= if needed BEFORE starting emacs using this config.

    If you ran ./force_update_emacsd.sh ~/.emacs.d in Step 2 above, you will not need to change that variable. But if you did ./force_update_emacsd.sh <MY-EMACSD-DIR>, you will need to change the value of user-emacs-directory in <MY-EMACSD-DIR>/init.el to <MY-EMACSD-DIR>.

  4. Start emacs as usual if you did not change the download location in Step 2. If you DID change the download location to <MY-EMACSD-DIR>, you will need to do \emacs -Q -l <MY-EMACSD-DIR>/init.el.

That’s it!

The first start will take a couple of minutes as it auto-installs all packages in the my-packages list defined in the init.el.

Few notes

  • Few setup files have setup done as per my personal tastes and needs:
    • setup-files/setup-misc.el
    • setup-files/setup-mode-line.el
    • setup-files/setup-registers.el
  • If you want to change the default theme, font size, etc, you would want to edit setup-files/setup-visual.el
  • Any of the variables or global minor modes set in my config can be overridden in setup-personal.el which you need to create in the directory pointed by the variable user-personal-directory.
  • You can also choose to override certain variables in the very beginning of the init.el by customizing the variables in a setup-var-overrides.el file placed in user-personal-directory. You can refer to an example of this file here. During the first time setup, copy the setup-var-overrides-EXAMPLE.el file to setup-var-overrides.el in the same directory.
  • setup-editing.el has interesting elisp snippets that I created + borrowed over time for functions related to general editing.

Key points

  • Use of my minor mode modi-mode to enable my custom key-bindings. Doing so allows me to force override my bindings in all major and minor modes. If I ever need to try out the default emacs bindings, I can simply disable modi-mode by doing M-x modi-mode. It is enabled globally by default.
  • Use of use-package in load all packages for faster load times.
  • Use of bind-keys allows me to review my custom bindings in a single buffer by doing M-x describe-personal-keybindings.
  • Certain packages will be loaded only if you have the associated applications installed.
    • rg
    • ctags
    • global (gtags)
    • git
    • matlab
    • aspell or hunspell
    • ps2pdf
    • xelatex
    • ag

Feedback

I am looking forward to suggestions, corrections.

Thanks!

More Repositories

1

ox-hugo

A carefully crafted Org exporter back-end for Hugo
Emacs Lisp
826
star
2

eless

A Better 'less' - A bash script that loads emacs with minimal view-mode config - Created with Org mode
Shell
119
star
3

hugo-bare-min-theme

A bare minimum theme for Hugo (https://gohugo.io) to help develop and debug Hugo sites -- https://hugo-bare-min.netlify.com/,
HTML
78
star
4

hello_musl

NimScript (config.nims) for building a static binary using Nim + musl + pcre + libressl/openssl
Nim
77
star
5

hugo-search-fuse-js

Hugo theme component for implementing static site search using Fuse.js
HTML
65
star
6

nim_config

Global project-agnostic config.nims
Nim
58
star
7

hugo-debugprint

Hugo "debugprint.html" partial
HTML
47
star
8

dotfiles

Python
44
star
9

hugo-atom-feed

Hugo theme component for ATOM feed custom Output Format
33
star
10

custom_uvm_report_server

Customized UVM Report Server
SystemVerilog
29
star
11

hugo-onyx-theme

A Hugo theme built using the Hugo Alabaster theme as base
CSS
28
star
12

nim-systemverilog-dpic

Using Nim to interface with SystemVerilog test benches via DPI-C
SystemVerilog
21
star
13

ptr_math

Pointer arithmetic in Nim
Nim
11
star
14

ntodo

CLI app for Todoist written in Nim (REST API v8)
Nim
10
star
15

std_vector

Nim wrapper for C++ std::vector
Nim
10
star
16

ox-minutes

Plain text backend for Org for meeting minutes
Emacs Lisp
9
star
17

tomelr

Emacs-Lisp Library for converting S-expressions to TOML
Emacs Lisp
6
star
18

version

Fetch and parse the version number of most CLI apps
Nim
5
star
19

elnim

Collection of Nim procs/templates/macros which can serve as "phew! I am glad Nim has this!" for Emacs/Emacs-Lisp/Lisp enthusiasts.
Nim
5
star
20

strfmt

A string formatting module for Nim, inspired by Python's .format
Nim
4
star
21

nim-systemverilog-vpi

Using Nim to interface with Verilog and SystemVerilog test benches via VPI
C
3
star
22

hugo-micro-json

Hugo theme component for a custom JSON Output Format
2
star
23

p4ztag_to_json

Convert Perforce P4 Ztag data format to JSON
Nim
2
star
24

hugo-jf2

Hugo theme component for JF2 custom Output Format
2
star
25

nim-svdpi

Small wrapper for SystemVerilog DPI-C header svdpi.h
Nim
2
star
26

jenkins-minimal

Minimal Jenkins config repo
Shell
2
star
27

nim-eggx

Nim wrapper for EGGX / ProCALL X11 Graphics library
C
1
star
28

scripts

Bunch of scripts
Shell
1
star
29

iosevka-mirror

Repo to host Iosevka woff and woff2 for my sites (Credit: https://github.com/be5invis/Iosevka)
Shell
1
star
30

noxhugo

Utility to build Hugo sites using ox-hugo (Emacs + Org mode)
Nim
1
star
31

parse_c_header

Library to parse C header files
Nim
1
star
32

baser

Emacs-Lisp Library for converting to and from Decimal, Hexadecimal and Binary numbers
Emacs Lisp
1
star
33

nim-nightly-docs

Unofficial repo to host nightly builds of Nim docs from devel branch
HTML
1
star