oikonang / .doom.d

Doom Emacs Configuration

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

“I’m rarely happier than when spending an entire day programming my computer to perform automatically a task that would otherwise take me a good ten seconds to do by hand.” - Douglas Adams

This respository contains my doom-emacs configuration.

API reference: https://github.com/hlissner/doom-emacs/blob/develop/docs/api.org

Themes: https://github.com/hlissner/emacs-doom-themes/tree/screenshots

Installation

git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
git clone git@github.com:kkholst/.doom.d ~/.doom.d
~/.emacs.d/bin/doom install

Alter the section ‘Variable definitions’ in config.org to your needs or add a custom .doom.d/init.el file to override definitions (for example doom-theme, doom-font variables)

VIM users should enable evil mode by uncommenting the relevant lines in init.el

:editor
(evil +everywhere)

make sure that relevant directory structures exists (e.g., ~/Projects/notes and ~/Projects/org unless altered in the above step).

Afterwards the doom configuration needs to be synchronized (will also expose your shell environment variables to emacs)

~/.emacs.d/bin/doom sync

Configuration

This configuration depends on the following components

  • emacs (>= 27.1)
  • git
  • R
  • python3
  • clang++
  • texlive
  • ripgrep

plus recommendations: zsh, tmux, ImageMagick (and probably a lot of other dependencies I forgot here).

To try out the newest features of Emacs checkout the source code from git://git.sv.gnu.org/emacs.git and build your own binaries (for example with support for ligatures using harfbuzz). In Fedora you will need the following packages:

sudo dnf install -y libXpm-devel Xaw3d-devel openjpeg-devel libpng-devel librsvg2-devel giflib-devel cairo-devel gpm-devel gnutls-devel libxml2-devel libXft-devel libotf zlib-devel harfbuzz-devel ImageMagick-devel libtiff-devel wxGTK3 git R python3 llvm texlive ripgrep

On Mac OS X via homebrew (here the native-comp branch, i.e. gccemacs):

brew tap d12frosted/emacs-plus 
brew install emacs-plus@28 --with-modern-doom3-icon --with-native-comp

Other dependencies

For the Python envionment you may need to install pyenv (here assuming you are using zsh)

git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc

Language Server Protocol (lsp)

  • Python:
    pip3 install pip setuptools wheel --upgrade --user
    pip3 install "python-language-server[all]" pylint nose pytest --user
        
  • R:
    R -e 'install.packages(c("languageserver")'
        
  • C++:

Can be based on either ccls (from PyPi) or clangd. On Mac OS X this can be installed with homebrew

brew install llvm

For debugging (C++) with dap-debug, I recommend LLDB’s machine interface driver https://github.com/lldb-tools/lldb-mi. On Fedora this can be compiled with

dnf install llvm-devel -y
git clone https://github.com/lldb-tools/lldb-mi
cd lldb-mi
cmake -Bbuild -GNinja

About

Doom Emacs Configuration


Languages

Language:Emacs Lisp 67.5%Language:YASnippet 32.5%