In order to have the same Emacs configuration, quickly setup across all the different or new work computers, I created a Git repo for my Emacs configuration. I am using a Emacs plugin named, use-package to auto install and auto configure all the other required packages.
Visit the repository at:
My personalized configuration files for Gnu Emacs.
What will it setup?
- Farmhouse Dark Theme with few customization.
- Project Management with Projectile.
- Ruby syntax highlighting, code navigation and other IDE features.
- Python syntax highlighting and other IDE features.
- Ruby on Rails Integration.
- GIT interface for Emacs using Magit.
- Color Code highlighting with rainbow mode.
- Show full file path and major mode of current buffer on title bar.
- Multiple Cursor edit support.
- Default Fira Code (FiraCode Regular) Font along with Ligatures.
- Various status info related to current buffer and system on mode line.
- Show vertical thin light bar to mark fill column.
- Highlight charatects with red background color if they are placed beyond 80th column in a line.
- and many more…
Installation and Setup
Current configuration is tested on Ubuntu 20.04 LTS 64 bit and Emacs 26.3.
- Linux/Apple MAC OS.
- Modern Computer.
- Internet Connection.
- Free disk space.
- Latest stable version of Gnu Emacs.
- Optionally install Ruby, Ruby on Rails, rbenv, Python 2/3 and any other required software.
- Install all prerequisites.
- Download the repository and place
emacsfolder in your home directory.
- Backup existing emacs config file
mv ~/.emacs ~/emacs_original.
cd ~/emacs/lisp/and run
lisp/folder to download latest ICICLES package. It is already included.
- Create a new symlink for emacs config file from downloaded repository
ln -s ~/emacs/emacs ~/.emacs.
- Start Emacs! It will take some time to install all packages for the first time.
TODO add for windows
Custom Key Combinations
C-x kclose current buffer/file.
C-c lcopy current buffer/file full path.
M-move current line above previous line.
M-move current line below next line.
C-c salphabetically sort selected words. Can be multiple words on same line OR can be multiple lines.
[F5]refresh current buffer/file to load new changes.
[F8]to show/hide file browser.
C-c iincrement number under cursor.
C-c rReduce (decrement) number under cursor.
C-c fopen file by fuzzy matching name from current project. Uses Helm projectile find.
C-c gfind occurrence of a string/word by fuzzy matching in any of the file from current project. Uses helm projectile with silversearcher.
C-c C-eadd cursors to all occurances.
C-c nMark next one occurance like this.
C-c pMark previous one occurance like this.
C-c aMark all occurances like this.
Copyright (c) 2017-2020 Abhijit Navale
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE