I couldn't be bothered with making a README. Here's what Cursor thinks:
A curated collection of my development environment configuration files, featuring a powerful Neovim setup optimized for LaTeX, Python, and general development.
- Plugin Manager: Lazy.nvim for fast and efficient plugin management
- Theme: Kanagawa Dragon theme for a beautiful, eye-friendly experience
- LSP: Full Language Server Protocol support with Mason
- Completion: nvim-cmp with UltiSnips integration
- File Explorer: NvimTree with git integration
- UI Enhancements: Noice.nvim for better UI, Trouble for diagnostics
- Code Formatting: Conform.nvim with auto-format on save
- Productivity: Hardtime.nvim to improve vim habits
- VimTeX: Comprehensive LaTeX support with live compilation
- UltiSnips: Extensive snippet collection for LaTeX
- SymPy Integration: Python math evaluation to LaTeX
- Auto-cleanup: Automatic cleanup of auxiliary files
- Beamer Support: Presentation templates and shortcuts
- Doom Emacs: Complete Doom Emacs configuration with custom modules
- Custom Config: Personalized Emacs setup with custom functions and keybindings
- Package Management: Straight.el for package management
- Themes and UI: Custom themes and UI enhancements
<leader>e/<leader>E: Toggle file explorer<leader>f: Format buffer<leader>xx: Toggle diagnostics<leader>ht: Toggle Hardtime<C-s>: Save file (works in insert and normal mode)<C-l>: Insert LaTeX line break (in .tex files)
- Neovim (0.9.0 or higher)
- Git
- A C compiler (for tree-sitter)
- Python 3 (for UltiSnips)
# Clone the repository
git clone https://github.com/pratyaypandey/dotfiles.git ~/Code/dotfiles
# Run the install script
cd ~/Code/dotfiles
./install.sh# Create necessary directories
mkdir -p ~/.config/nvim
# Copy nvim configuration
cp -r ~/Code/dotfiles/nvim/* ~/.config/nvim/
# Install plugins (first time you open nvim)
nvim --headless -c "Lazy! sync" -c "qa"# macOS (using Homebrew)
brew install neovim git ripgrep fd
# Ubuntu/Debian
sudo apt install neovim git ripgrep fd-find
# Arch Linux
sudo pacman -S neovim git ripgrep fd- pyright (Python)
- clangd (C/C++)
- texlab (LaTeX)
- dockerls (Docker)
- black (Python)
- isort (Python)
- prettier (JavaScript/TypeScript/Web)
- stylua (Lua)
- latexindent (LaTeX)
- shfmt (Shell)
- clang_format (C/C++)
- gofmt (Go)
- rustfmt (Rust)
Edit nvim/lua/plugins.lua and add your plugin to the appropriate module or as a standalone plugin.
Key bindings are defined in their respective module files:
- General bindings:
nvim/init.lua - UI bindings:
nvim/lua/ui.lua - LSP bindings:
nvim/lua/lsp.lua
Customize LaTeX snippets in nvim/UltiSnips/tex.snippets. The file includes:
- Smart bracket snippets
- Color text shortcuts
- Document templates
- Beamer presentation templates
- SymPy integration for math
The install script creates symlinks from ~/.config/ to ~/Code/dotfiles/ for one-way synchronization:
~/.config/nvimβ~/Code/dotfiles/nvim~/.config/doomβ~/Code/dotfiles/doom~/.config/emacsβ~/Code/dotfiles/emacs
# Edit in .config (changes automatically sync to dotfiles)
nvim ~/.config/nvim/init.lua
nvim ~/.config/doom/config.el
nvim ~/.config/emacs/early-init.el
# Changes are immediately reflected in dotfiles!
# Then commit and push
cd ~/Code/dotfiles
git add .
git commit -m "Update configuration"
git push# Clone and install
git clone https://github.com/pratyaypandey/dotfiles.git ~/Code/dotfiles
cd ~/Code/dotfiles
./install.sh # Creates symlinks for one-way syncdotfiles/
βββ nvim/
β βββ init.lua # Main configuration
β βββ lua/
β β βββ plugins.lua # Plugin management
β β βββ lsp.lua # LSP configuration
β β βββ completion.lua # Completion setup
β β βββ ui.lua # UI plugins
β β βββ latex.lua # LaTeX support
β βββ UltiSnips/
β βββ tex.snippets # LaTeX snippets
βββ doom/ # Doom Emacs configuration
β βββ config.el # Custom configuration
β βββ init.el # Module initialization
β βββ packages.el # Package declarations
βββ emacs/ # Emacs configuration
β βββ early-init.el # Early initialization
β βββ .doomrc # Doom configuration
β βββ lisp/ # Custom Lisp functions
βββ install.sh # Installation script
βββ README.md # This file
- Plugins not loading: Run
:Lazy syncin Neovim - LSP not working: Run
:Masonand install required language servers - Formatters not working: Install system dependencies (see above)
- UltiSnips not working: Ensure Python 3 is installed and accessible
# Remove current nvim config
rm -rf ~/.config/nvim
# Reinstall from dotfiles
./install.shSince your configurations are symlinked from .config to the dotfiles directory, you can edit files in their natural location:
# Edit any configuration file in .config
nvim ~/.config/nvim/init.lua
nvim ~/.config/doom/config.el
nvim ~/.config/emacs/early-init.el
# Changes are immediately active and automatically synced to dotfilesFeel free to submit issues and enhancement requests!
This project is licensed under the MIT License - see the LICENSE file for details.
- Lazy.nvim - Fast plugin manager
- Kanagawa - Beautiful theme
- VimTeX - LaTeX support
- UltiSnips - Snippet engine
Happy coding! π