Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



77 Commits

Repository files navigation

Emacs Bootstrap

Your on-the-fly Emacs development environment.

Emacs-bootstrap uses opinionated code templates which will be used to generate your emacs configurations. It enables you to select the programming languages you work with the most and will generate enough Emacs configs to get you started crunching code.


  1. Multiple programming languages available
  2. Theme selection
  3. Completion frontend installation


Head over to Emacs-bootstrap and generate your configs. Once you’ve download the configs, unzip the file and:

cp -R [CONFIG_DOWNLOAD_DIR] ~/.emacs.d

Then launch emacs and wait for a bit while Emacs packages are installed to prepare your environment.


Here are some basic shortcuts that Emacs provides along with configured shortcuts by Emacs-bootstrap:

Note that C- means pressing your Control key + some other key. For example, C-x means Control + X. Same goes for M which is your Meta key. That can be the Escape key on your keyboard or the ALT key.

C-x C-fOpen fileEmacs
C-x C-sSave fileEmacs
C-x C-bSwitch bufferEmacs
C-x C-kKill bufferEmacs
C-sSearch in fileEmacs
M-%Find and ReplaceEmacs
C-x 1Only show 1 bufferEmacs
C-x 2Split horizontallyEmacs
C-x 3Split VerticallyEmacs
C-x 0Remove current splitEmacs

One of the packages installed is called ‘which-key’ which displays the list of available keys after a certain prefix. Try it out, press C-x and which-key will display available shortcuts that you can use to invoke a certain functionality.

ShortcutFunctionProvider / Package
C-C SpaceAce-jump-mode (Code navigation)Bootstrap / Ace-Jump
C-=Expand Region (Smart code selection)Bootstrap / Expand-region
M-x or (C-x C-m)Ivy-counsel / Helm (Completion frontend)Bootstrap / Ivy / Helm
C-x c kEmacs kill ring (Emacs clipboard)Bootstrap / Ivy / Helm
C-x vOpen file in projectBootstrap / Projectile
C-x c pSearch in projectBootstrap / Projectile-ag
C-x sAdvanced search in fileBootstrap / Ivy-swiper / Helm-swoop
C-x UPGo to buffer above (In split)Bootstrap / Windmove
C-x DownGo to buffer below (In split)Bootstrap / Windmove
C-x LeftGo to buffer on the left (In split)Bootstrap / Windmove
C-x RightGo to buffer on the right (In split)Bootstrap / Windmove

Programming language specific shortcuts:

ShortcutFunctionProgramming LanguageProvider / Package
C-x p ePyenv activate in current projectPythonpython-mode, elpy, pyenv
M-.Go to definitionPythonpython-mode, elpy, pyenv
M-,Navigate back to previous positionPythonpython-mode, elpy, pyenv
C-c C-rRemove unused importsGolanggo-mode
C-c C-gGo to importsGolanggo-mode
M-.Go to defintionGolanggo-mode
C-c j rJavaScript refactor modeJavaScriptjs2-mode, js2-refactor
C-c C-bSend the buffer to the inferior JavaScript processJavaScriptjs2-mode, js-comint
C-c C-lLoad a file in the javaScript interpreterJavaScriptjs2-mode, js-comint
C-x C-eSend previous sexp to inferior JavaScript processJavaScriptjs2-mode, js-comint
C-M-xSend previous sexp to inferior JavaScript process and goJavaScriptjs2-mode, js-comint
C-jemmet-mode expand snippetHTMLweb-mode, emmet-mode
C-c [emmet-mode previous edit pointHTMLweb-mode, emmet-mode
C-c ]emmet-mode next edit pointHTMLweb-mode, emmet-mode
C-c o bOpen the current file in the browserHTMLweb-mode

Awesome Emacs Learning Resources

Reading content

Video Content:



I would love to extend Emacs-bootstrap to support other programming languages as well. If you think you’ve got your configuration of your favorite programming language perfectly, please don’t hesitate to submit a PR.

Please check the list of issues as i have created am issue for the missing language support Emacs-Bootstrap lacks.


Special thanks for Thiago Avelino for allowing the usage of Vim-Bootstrap’s template. And Faisal Al-Da’aja for customizing the look and feel.


This website is dedicated to my lovely Wife who became curious about Emacs after i bragged so much about it.


MIT License