https://github.com/tuanle03/dotfiles
A well-organized collection of my personal dotfiles for Neovim, Vim, Tmux, and Zsh โ designed to provide a fast, minimal, and consistent development environment across machines.
https://github.com/tuanle03/dotfiles
neovim tmux vim vim-plugin zsh
Last synced: 5 months ago
JSON representation
A well-organized collection of my personal dotfiles for Neovim, Vim, Tmux, and Zsh โ designed to provide a fast, minimal, and consistent development environment across machines.
- Host: GitHub
- URL: https://github.com/tuanle03/dotfiles
- Owner: tuanle03
- Created: 2024-05-17T19:25:16.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-10-17T18:43:01.000Z (8 months ago)
- Last Synced: 2025-10-18T20:52:07.029Z (8 months ago)
- Topics: neovim, tmux, vim, vim-plugin, zsh
- Language: Lua
- Homepage:
- Size: 67.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ ๏ธ Dotfiles by Tuan Le
Welcome to my personal `dotfiles` repository โ a carefully curated setup to boost developer productivity with an opinionated configuration of **Neovim**, **Vim**, **Tmux**, and **Zsh**.
This setup is optimized for daily use in software engineering, with support for modern plugins, key mappings, aesthetics, and system compatibility.
---
## โจ Features
- ๐ง **Neovim** configured with modular `init.lua`, plugin bundles, and local overrides.
- ๐งโโ๏ธ **Vim** setup for legacy workflows, mirroring Neovim's key plugins and shortcuts.
- ๐ฆ **Tmux** custom configuration for split panes, session handling, and vim-like navigation.
- ๐ **Zsh** with sensible defaults, aliases, and improved usability.
- โก Lightning-fast and minimal.
---
## ๐ Directory Structure
```bash
dotfiles/
โโโ config/
โ โโโ tmuxinator/ # Tmuxinator project configuration
โ โโโ lixicrm.yml
โ โโโ lixiadmin.yml
โโโ nvim/ # Neovim config (Lua + Vimscript)
โ โโโ init.lua
โ โโโ local.vim
โ โโโ plugin/
โ โโโ bundles.lua
โโโ vim/ # Vim config (legacy support)
โ โโโ .vimrc
โ โโโ .vimrc.bundles
โ โโโ .vimrc.local
โโโ tmux/ # Tmux config and styles
โ โโโ .tmux.conf
โ โโโ .tmux.conf.local
โ โโโ .tmux.conf.vim
โ โโโ .tmux.conf.backup
โโโ .zshrc # Zsh shell config
โโโ README.md # You are here
```
## ๐ Installation
1. **Clone the repository**:
You can clone the repository using either SSH or HTTPS:
- **SSH** (requires SSH keys set up):
```bash
git clone git@github.com:tuanle03/dotfiles.git ~/.dotfiles
```
- **HTTPS** (no SSH keys required):
```bash
git clone https://github.com/tuanle03/dotfiles.git ~/.dotfiles
```
After cloning, navigate to the repository:
```bash
cd ~/.dotfiles
```
2. Backup your existing configuration files (optional but recommended):
```bash
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.vimrc ~/.vimrc.bak
mv ~/.tmux.conf ~/.tmux.conf.bak
mv ~/.zshrc ~/.zshrc.bak
```
3. **Create symlinks**:
You can create symbolic links to the configuration files in your home directory. This allows you to keep your dotfiles organized in one place while still using them in your shell.
```bash
mkdir -p ~/.config/nvim
ln -sf ~/dotfiles/nvim ~/.config/nvim
ln -s ~/dotfiles/vim/.vimrc ~/.vimrc
ln -s ~/dotfiles/vim/.vimrc.bundles ~/.vimrc.bundles
ln -s ~/dotfiles/vim/.vimrc.local ~/.vimrc.local
ln -s ~/dotfiles/tmux/.tmux.conf ~/.tmux.conf
ln -s ~/dotfiles/tmux/.tmux.conf.local ~/.tmux.conf.local
ln -s ~/dotfiles/tmux/.tmux.conf.vim ~/.tmux.conf.vim
ln -s ~/dotfiles/tmux/.tmux.conf.backup ~/.tmux.conf.backup
ln -s ~/dotfiles/.zshrc ~/.zshrc
```
4. **Install Neovim plugins**:
Open Neovim and run:
```vim
:PackerSync
```
This will install all the plugins defined in your `init.lua`.
5. **Restart your shell**:
Close and reopen your terminal or run:
```bash
exec zsh
```
6. **Reload Tmux configuration**:
Start a new Tmux session or reload your Tmux configuration:
```bash
tmux source-file ~/.tmux.conf
```
## โ๏ธ Requirements
- **Neovim**: Version 0.8 or higher
- **Tmux**: Version 3.0 or higher
- **Zsh**: Version 5.0 or higher
- **Git**: For cloning the repository
- Plugins managed by **Packer.nvim** for Neovim
- Font: [Nerd Fonts](https://www.nerdfonts.com/) for icons and glyphs
## ๐ ๏ธ Customization
You can customize the configuration by editing the respective files in the `nvim`, `vim`, `tmux`, and `.zshrc` directories. For example:
- **Neovim**: Modify `nvim/init.lua` for core settings, `nvim/plugin/bundles.lua` for plugins, and `nvim/local.vim` for local overrides.
- **Vim**: Edit `.vimrc`, `.vimrc.bundles`, and `.vimrc.local` for Vim-specific settings.
- **Tmux**: Adjust `.tmux.conf`, `.tmux.conf.local`, and `.tmux.conf.vim` for Tmux settings.
- **Zsh**: Modify `.zshrc` for shell settings, aliases, and functions.
## ๐งช Optional: Automatic Setup Script
If you prefer an automated setup, you can use the provided `setup.sh` script. This script will create symlinks for all configuration files and install Neovim plugins.
```bash
chmod +x install.sh
./install.sh
```
## ๐ผ๏ธ Screenshots

## ๐งผ Uninstall
To uninstall the dotfiles, you can remove the symlinks created in your home directory:
```bash
rm ~/.config/nvim
rm ~/.vimrc
rm ~/.vimrc.bundles
rm ~/.vimrc.local
rm ~/.tmux.conf
rm ~/.tmux.conf.local
rm ~/.tmux.conf.vim
rm ~/.tmux.conf.backup
rm ~/.zshrc
```
## ๐ง Philosophy
This dotfiles setup is designed with the following principles in mind:
- **Simplicity**: Keep configurations minimal and easy to understand.
- **Modularity**: Use Lua for Neovim to allow for easy plugin management and configuration.
- **Consistency**: Ensure a consistent experience across Neovim, Vim, Tmux, and Zsh.
- **Performance**: Optimize for speed and responsiveness, avoiding unnecessary bloat.
## ๐ License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
## ๐ค Contributing
Contributions are welcome! If you have suggestions or improvements, feel free to open an issue or submit a pull request.
## ๐ซ Contact
For any questions or feedback, you can reach me at [Tuan Le](https://fb.com/tuanle03) or [Email](mailto:letuanvl03@gmail.com).
## ๐ Acknowledgements
Thanks to the open-source community for providing the tools and plugins that make this setup possible. Special thanks to the maintainers of Neovim, Tmux, and Zsh for their incredible work.