Dotfiles Repository
Definição curta: Estrutura de repositório de dotfiles para versionar configurações do Neovim e outros programas. Inclui script de instalação.
Antes de começar
- Ter lido Init.lua básico
- Um gerenciador de plugins configurado
O que você vai aprender
- Explicar Estrutura do repositório com suas palavras
- Explicar script/install.sh com suas palavras
- Explicar .gitignore do repositório com suas palavras
- Localizar o assunto desta página no
:helpdo seu próprio Neovim
O que é
Dotfiles são arquivos de configuração que começam com . (como .bashrc, init.lua). Versionar dotfiles permite sincronizar configurações entre máquinas.
Estrutura do repositório
dotfiles/
├── git/
│ └── .gitconfig
├── nvim/
│ ├── init.lua
│ └── lua/
│ └── user/
│ └── *.lua
├── bash/
│ └── .bashrc
├── script/
│ └── install.sh
├── Makefile
└── README.mdscript/install.sh
#!/usr/bin/env bash
set -e
DOTFILES_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
echo "Installing dotfiles from $DOTFILES_DIR"
# Create symlinks
ln -sf "$DOTFILES_DIR/nvim" ~/.config/nvim
ln -sf "$DOTFILES_DIR/git/.gitconfig" ~/.gitconfig
ln -sf "$DOTFILES_DIR/bash/.bashrc" ~/.bashrc
echo "Done!".gitignore do repositório
# Ignore sensitive data
*.local
*.local.lua
# Swap files
*.swp
*.swo
# Session files
Session.vim
# Plugin data
*.local/Makefile
.PHONY: install update
install:
./script/install.sh
update:
git pull origin main
./script/install.sh
sync:
git add -A
git commit -m "Update dotfiles"
git pushGit bare repository approach
Alternativa usando git bare:
# Configurar
alias df='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
echo ".dotfiles" >> .gitignore
# Clone
git clone --bare https://github.com/user/dotfiles.git $HOME/.dotfiles
# Checkout
df checkout
# Configurar
df config status.showUntrackedFiles noFluxo de trabalho
flowchart TD
A["Editar configs"] --> B["git add"]
B --> C["git commit"]
C --> D["git push"]
D --> E["Outra máquina"]
E --> F["git pull"]
F --> G["configs atualizados"]Você aprendeu
- Estrutura do repositório
- script/install.sh
- .gitignore do repositório
- Makefile
- Git bare repository approach
Perguntas para reflexão
- O que Estrutura do repositório resolve, e o que se perde sem isso?
- O que script/install.sh resolve, e o que se perde sem isso?
- O que .gitignore do repositório resolve, e o que se perde sem isso?
- Qual parte desta página você conseguiria reproduzir sem consultar, direto no editor?
Artigos relacionados
Veja também
- Fugitive Git Integration — Git no Neovim
- init.lua Fullstack — Config Neovim
Referências
- dotfiles.github.io — Guia de dotfiles
- Atlassian Dotfiles — Tutorial git bare