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.
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
cargo-subcommands Subcommands for cargo that are provided as crates
bob Installs bob and nvim
macos Configures MacOS
tools Various command line tools (atuin, delta, rg, uv, z)
atuin Atuin for fuzzy finding shell completion
zoxide z, a smart cd
completions Generate the shell completions for many installed tools
help Shows this help message
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.
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
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.
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 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
Debugger using the Debug Adapter Protocol (DAP).
150% font size for better visibility in the screenshot