My personal configuration files for macOS/Linux development environment.
- 🚀 Neovim - Modern config with LSP, Treesitter, and useful plugins
- 🐚 Zsh - Clean configuration with Oh My Zsh
- 🔧 Language Support - Go, Python, TypeScript, Rust, and more
- 🎨 Syntax Highlighting - Full Treesitter support for modern highlighting
- 🔍 Code Navigation - Jump to definition, find references, and more
- 🖱️ Mouse Support - Full mouse support in Neovim
- 🗂️ Organized - Secrets separated from public configs
git clone https://github.com/matthewrsj/dotfiles.git ~/dotfiles# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install required tools
brew install neovim git zsh ripgrepsudo apt update
sudo apt install neovim git zsh ripgrepsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"# Backup existing configs
[ -f ~/.zshrc ] && mv ~/.zshrc ~/.zshrc.backup
[ -f ~/.gitconfig ] && mv ~/.gitconfig ~/.gitconfig.backup
[ -d ~/.config/nvim ] && mv ~/.config/nvim ~/.config/nvim.backup
# Create symlinks
ln -s ~/dotfiles/.zshrc ~/.zshrc
ln -s ~/dotfiles/.gitconfig ~/.gitconfig
ln -s ~/dotfiles/.config/nvim ~/.config/nvim
ln -s ~/dotfiles/bin ~/bin# Copy the example file
cp ~/dotfiles/.zshrc.local.example ~/.zshrc.local
# Edit it to add your personal settings and secrets
vim ~/.zshrc.local
# Add your git user info
vim ~/.gitconfig.local
# Add:
# [user]
# email = your.email@example.com
# name = Your Namesource ~/.zshrcThe first time you open Neovim, it will automatically install all plugins and language servers:
nvimWait for the installation to complete (you'll see progress in the status line).
jj- Exit insert mode (alternative to Esc)Space- Leader key
gd- Go to definitiongr- Find referencesK- Show hover documentation[d/]d- Navigate diagnostics
Space + ff- Find filesSpace + fg- Live grepSpace + e- File explorer
Type vimhelp or nvimhelp in your terminal to see the full cheat sheet.
- Machine-specific settings: Add to
~/.zshrc.local - Neovim plugins: Edit
~/dotfiles/.config/nvim/init.lua - Shell aliases: Add to
~/dotfiles/.zshrc(for public) or~/.zshrc.local(for private)
cd ~/dotfiles
git pulldotfiles/
├── .config/
│ └── nvim/ # Neovim configuration
│ └── init.lua # Main config file
├── bin/ # Personal scripts
│ └── nvim-cheat # Neovim cheat sheet
├── .gitconfig # Git configuration (without personal info)
├── .zshrc # Zsh configuration (public)
├── .zshrc.local.example # Template for local settings
├── .bashrc.old # Legacy bash config (archived)
├── i3/ # i3 window manager config
└── README.md # This file
- Open Neovim and run
:Lazyto open the plugin manager - Press
Uto update plugins - Press
Ito install missing plugins
- Open Neovim and run
:Mason - Install the language server you need
- Restart Neovim
- Open Neovim and run
:TSInstall <language> - For example:
:TSInstall python
Feel free to use and modify these dotfiles as you like!