Dotfiles
This is a collection of my configuration files.
Initially, I tried having a config that can be used for both Vim and NeoVim but with the release of NeoVim 0.5, which added Lua support and a native LSP client, I decided to drop the old Vim compatibility and create a NeoVim config based on Lua. Wherever possible, I tried to use as many Lua plugins as possible over VimScript ones, because those either try to support old versions of Vim or potentially not use newer features.
Installation
git clone https://github.com/jungomi/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
make
make
creates symbolic links of every directory in the .config/
directory to ~/.config/
.
If the target of the linking already exists, it is overwritten.
make safe
provides a safer version, which creates a backup of all existing targets, that can then
be restored with make restore
.
$ make [targets]
targets:
default # Installs all dotfiles and configures bash
safe # Runs backup before installing
envs # Installs all environments
link # Creates symbolic links
backup # Makes a backup of the existing dotfiles
restore # Restores the backup files
clean # Removes the backup files
bash # Configures Bash
node # Installs n and Node.js
ruby # Installs rvm and Ruby
rust # Installs rustup and Rust
macos # Configures MacOS
help # Shows this help message
Patched Font
A font patched with Nerd Fonts is required to display icons properly.
On Linux the patched version of JetBrains Mono is used, and on macOS a patched version of SF Mono.
Integrated Tools
The following tools are either frequently used at the command line or integrated into NeoVim for a better and more efficient workflow:
- Fzf - Fuzzy finder (used a lot for fuzzy file navigation in NeoVim)
- ripgrep (rg) - Faster and more intuitive grep, which respects .gitignore
- fd - Faster and more intuitive find, which also respects .gitignore
- bat - A cat(1) clone with syntax highlighting and Git integration.
- delta - Viewer for (git) diffs with syntax highlighting and side-by-side views
Screenshots
Shell + Tmux + Git
The git diff is displayed using Delta
Tmux icons:
- 🔎 = A pane is maximized (zoomed) in that window.
- 🔗 = Panes are synchronised, i.e. all are focused and receive the same inputs.
NeoVim
Language Server Protocol (LSP)
Language Server Protocol (LSP) integration for diagnostics and other language actions, such as formatting, signature help, type hints etc.
150% font size for better visibility in the screenshot
Completion
Completion with suggestions from Language Server Protocol (LSP), open buffers, file paths and more, including support for snippets.
150% font size for better visibility in the screenshot
Debug Adapter Protocol (DAP)
Debugger using the Debug Adapter Protocol (DAP).
150% font size for better visibility in the screenshot