README.md 3.95 KB
Newer Older
Abhijit's avatar
Abhijit committed
1 2
# GNU EMACS
My personalized configuration files for Gnu Emacs.
Abhijit Navale's avatar
readme  
Abhijit Navale committed
3

Abhijit's avatar
Abhijit committed
4
## What will it setup?
Abhijit's avatar
Abhijit committed
5
  1. Farmhouse Dark Theme with few customization.  
Abhijit's avatar
Abhijit committed
6 7 8
  2. Project Management with Projectile.  
  3. Ruby syntax highlighting, code navigation and other IDE features.  
  4. Python syntax highlighting and other IDE features.  
Abhijit's avatar
Abhijit committed
9 10 11 12 13 14
  5. Ruby on Rails Integration.  
  6. GIT interface for Emacs using Magit.  
  7. Color Code highlighting with rainbow mode.  
  8. Show full file path and major mode of current buffer on title bar.  
  9. Multiple Cursor edit support.  
  10. Default Fira Code (FiraCode Regular) Font along with Ligatures.  
Abhijit's avatar
Abhijit committed
15
  11. Various status info related to current buffer and system on mode line.  
Abhijit's avatar
Abhijit committed
16 17 18 19 20 21 22 23 24
  12. Show vertical thin light bar to mark fill column.  
  13. Highlight charatects with red background color if they are placed beyond 80th column in a line.  
  14. and many more...

## Installation and Setup
Current configuration is tested on Ubuntu 20.04 LTS 64 bit and Emacs 26.3.  

### Prerequisites
  1. Linux/Apple MAC OS.  
Abhijit's avatar
Abhijit committed
25 26 27
  2. Modern Computer.  
  3. Internet Connection.  
  4. Free disk space.  
Abhijit's avatar
Abhijit committed
28 29
  5. Latest stable version of Gnu Emacs.
  6. Optionally install Ruby, Ruby on Rails, rbenv, Python 2/3 and any other required software.
Abhijit Navale's avatar
Abhijit Navale committed
30
  
Abhijit's avatar
Abhijit committed
31
### Manual Setup
32
  1. Install all prerequisites.  
Abhijit Navale's avatar
readme  
Abhijit Navale committed
33
  2. Download the repository and place `emacs` folder in your home directory.  
Abhijit's avatar
Abhijit committed
34 35 36
  3. Backup existing emacs config file `mv ~/.emacs ~/emacs_original`.
  4. `cd ~/emacs/lisp/` and run `get_icicles.sh` script from `lisp/` folder to download latest ICICLES package. It is already included.
  5. Create a new symlink for emacs config file from downloaded repository `ln -s ~/emacs/emacs ~/.emacs`.  
Abhijit's avatar
Abhijit committed
37
  6. Start Emacs! It will take some time to install all packages for the first time.  
Abhijit's avatar
Abhijit committed
38
  TODO add for windows
Abhijit's avatar
Abhijit committed
39
  7. Enjoy!  
Abhijit's avatar
Abhijit committed
40 41 42 43 44 45 46 47

## Custom Key Combinations
  1. `C-x k` close current buffer/file.  
  2. `C-c l` copy current buffer/file full path.  
  3. `M-<up>` move current line above previous line.  
  4. `M-<down>` move current line below next line.  
  5. `C-c s` alphabetically sort selected words. Can be multiple words on same line OR can be multiple lines.  
  6. `[F5]` refresh current buffer/file to load new changes.  
Abhijit's avatar
Abhijit committed
48 49 50
  7. `[F8]` to show/hide file browser.  
  8. `C-c i` increment number under cursor.  
  9. `C-c r` Reduce (decrement) number under cursor.  
51
  10. `M-x` Helm M-x.  
Abhijit's avatar
Abhijit committed
52 53
  11. `C-c f` open file by fuzzy matching name from current project. Uses Helm projectile find.  
  12. `C-c g` find occurence of a string/word by fuzzy matching in any of the file from current project. Uses helm projectile with silversearcher.  
Abhijit's avatar
Abhijit committed
54 55 56 57 58 59

#### Multiple Cursors
  1. `C-c C-e` add cursors to all occurances.  
  2. `C-c n` Mark next one occurance like this.  
  3. `C-c p` Mark previous one occurance like this.  
  4. `C-c a` Mark all occurances like this.  
60

Abhijit Navale's avatar
readme  
Abhijit Navale committed
61 62
# License

Abhijit Navale's avatar
readme  
Abhijit Navale committed
63
## MIT License
Abhijit Navale's avatar
readme  
Abhijit Navale committed
64

Abhijit's avatar
Abhijit committed
65
Copyright (c) 2017-2020 Abhijit Navale
Abhijit Navale's avatar
readme  
Abhijit Navale committed
66

Abhijit Navale's avatar
readme  
Abhijit Navale committed
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
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
Abhijit Navale's avatar
readme  
Abhijit Navale committed
83

Abhijit's avatar
Abhijit committed
84 85
## Fira Code Ligature Support
https://github.com/tonsky/FiraCode/issues/211#issuecomment-239058632