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.
You can start using my emacs setup by following these steps:
- 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).
- 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.
- 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 ofuser-emacs-directory
in<MY-EMACSD-DIR>/init.el
to<MY-EMACSD-DIR>
. - 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
. - Install Org Mode via GNU ELPA (built-in package is not used by
default, see
modi/org-version-select
local variable for more information):M-x package-install RET org RET
M-x list-packages RET
; openorg
; pushinstall
button
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 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 variableuser-personal-directory
. - You can also choose to override certain variables in the very
beginning of the
init.el
by customizing the variables in asetup-var-overrides.el
file placed inuser-personal-directory
. You can refer to an example of this file here. During the first time setup, copy thesetup-var-overrides-EXAMPLE.el
file tosetup-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.
- 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 disablemodi-mode
by doingM-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 doingM-x describe-personal-keybindings
. - Certain packages will be loaded only if you have the associated
applications installed.
rg
ctags
global
(gtags)git
matlab
aspell
orhunspell
ps2pdf
xelatex
ag
- Emacs
Download and unpack to c:\emacs
- Universal Ctags
Copy binary to PATH directory (download and unpack to c:\emacs\bin, overwrite default ctags.exe)
- ripgrep, GLOBAL, ag
Install with Scoop
scoop install ripgrep global ag shellcheck
or copy binary to PATH directory (download and unpack to c:\emacs\bin).
- DejaVu fonts
Download and install fonts.
- Hunspell
Install with Msys2
pacman -S mingw-w64-x86_64-hunspell mingw-w64-x86_64-hunspell-en
I am looking forward to suggestions, corrections.
Thanks!