This is my current emacs configuration, updated as it goes. I use emacs for nearly everything in my work as a reasearcher, which entails a lot of software development :).
# download latest emacs https://ftp.gnu.org/gnu/emacs/
# Debian packets
apt install -y build-essential texinfo libx11-dev libxpm-dev libjpeg-dev libpng-dev libgif-dev libtiff-dev libgtk2.0-dev libncurses-dev
apt install -y libgnutls
apt install -y libjansson-dev
apt install -y librsvg2-dev
apt install -y libtree-sitter-dev
apt install -y libgccjit0
apt install -y libgccjit-12-dev
#emacs compilation (with native compilation and libtreesitter
./configure --with-native-compilation=aot --with-ltree-sitter
Make -j 12
Make install
./install.sh
M-x install-all-the-icons-fonts
Tested in CI to run on all emacs versions between 24.4 and 26.3 (how to install latest emacs: linux, macos).
- run
link_this_config.sh
or replace your~/.emacs
file with the file in this repo (in this case, make sure your~/.emacs.d
is empty). - All the packages will install by themselves. :)
- Finalize by:
- M-x all-the-icons-install-fonts
- M-x company-tabnine-install-binary
- For elpy to work properly:
pip install jedi rope autopep8 yapf black flake8
`
- IDE: treemacs, icons, centaur tabs (all enabled by default in display-graphic)
- default themes: gui/display-graphic:
doom-one
, terminal:zenburn
- modeline: doom
- company, (company-tabnine)
- swiper for anything + avy-posframe
- avy
- Editing: autopair, undo-tree, highlight-parentheses
- Python: elpy, ein, company enabled
- CEDET support, cmake, cmake-font-lock
- Latex: auctex, latex-preview-pane, gscholar-bibtex
- Other modes: gnuplot-mode, yaml-mode, markdown-mode
- M-x:
swiper-m-x
- C-o:
occur
- f5:
compile
- f7/C-f7:
winner-undo
/winner-redo
- C-S-arrows: resize window
- C-x t: opens or moves to terminal
- M-":
avy-goto-char-2
- f8:
treemacs
- S-f8:
centaur-tabs
- C-=/C-M-=:
previous-multiframe-window
(cycles between both frames and windows) - more...