My emacs configuration
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 [[https://www.gnu.org/software/emacs/download.html][latest available stable version]].
On the other hand, I keep my emacs updated to the [[http://git.savannah.gnu.org/cgit/emacs.git/log/][/latest Development version/]]. So my config will definitely work with that if you too are doing the same.
If you ran =./forceupdateemacsd.sh ~/.emacs.d= in Step 2 above, you will not need to change that variable. But if you did =./forceupdateemacsd.sh =, you will need to change the value of =user-emacs-directory= in =/init.el= to ==. 4. Start emacs as usual if you did not change the download location in Step 2. If you DID change the download location to ==, you will need to do =\emacs -Q -l /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 [[https://github.com/kaushalmodi/.emacs.d/blob/master/personal/setup-var-overrides-EXAMPLE.el][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!