- Introdução
- Configurações
- Dicas de Norminette
- Aliases e Funções Úteis
- Plugins Recomendados
- FAQ - Perguntas Frequentes
- Como Contribuir
- English Version
E aí, cadete! Cansado de perder tempo configurando seu ambiente de desenvolvimento a cada novo projeto? Este repositório foi criado para facilitar sua jornada pelo Common Core da 42, reunindo configurações, dicas e truques para otimizar seu fluxo de trabalho enquanto segue à risca a sagrada Norma.
"Tempo salvo em configuração é tempo ganho para debugar aquele segfault misterioso às 3 da manhã."
Este repositório contém:
- Configurações otimizadas para VSCode
- Setup de Fish Shell com aliases úteis
- Dicas para lidar com a Norminette
- Macetes para Git e outras ferramentas
- E muito mais!
O Visual Studio Code é um dos editores mais populares entre os cadetes da 42, oferecendo um equilíbrio perfeito entre funcionalidades e leveza. Nossa configuração personalizada já vem com:
- Régua na coluna 80 (limite da Norma)
- Visualização de espaços em branco
- Tema adaptado para longas sessões de código
- Indentação com tabs de 4 espaços (como exige a Norma)
- Configuração do Header da 42
- Fontes monoespaçadas optimizadas para código
Para usar, basta copiar o arquivo user_configs/vscode_settings.json para seu diretório de configurações do VSCode.
# Linux
cp user_configs/vscode_settings.json ~/.config/Code/User/settings.json
# macOS
cp user_configs/vscode_settings.json ~/Library/Application\ Support/Code/User/settings.jsonDica: Evite usar ferramentas como Copilot na 42! A configuração já desabilita esses recursos para manter seu código 100% seu.
O Fish Shell oferece uma experiência muito mais agradável que o bash padrão, com auto-completação inteligente, destacamento de sintaxe colorido e um histórico de comandos mais eficiente. Minha configuração inclui:
- Aliases para comandos Git comuns (
gsparagit status, etc.) - Atalhos para compilação com flags da Norma (
gccwparagcc -Wall -Wextra -Werror) - Funções personalizadas para otimizar seu workflow
- Remoção da mensagem de boas-vindas para um terminal mais limpo
Copie minhas configurações:
cp user_configs/config.fish ~/.config/fish/config.fish| Alias | Comando | Descrição |
|---|---|---|
g |
git |
Atalho para o comando git |
ga |
git add |
Adiciona arquivos ao stage |
gaa |
git add --all |
Adiciona todos os arquivos ao stage |
gb |
git branch |
Lista ou manipula branches |
gc |
git commit -v |
Commit com modo verbose (mostra diff) |
gcm |
git commit -m |
Commit com mensagem |
gca |
git commit -v --amend |
Altera o último commit |
gco |
git checkout |
Muda de branch ou restaura arquivos |
gd |
git diff |
Mostra mudanças entre commits/arquivos |
gf |
git fetch |
Baixa objetos e refs do repositório remoto |
gl |
git pull |
Puxa e integra mudanças de um repositório remoto |
gp |
git push |
Envia commits para um repositório remoto |
gs |
git status |
Mostra o status do repositório |
glog |
git log --oneline --decorate --graph |
Log compacto com gráfico de commits |
gloga |
git log --oneline --decorate --graph --all |
Log compacto com gráfico de todos os commits |
| Alias | Comando | Descrição |
|---|---|---|
gccw |
gcc -Wall -Wextra -Werror |
Compila com flags de aviso da Norma 42 |
normall |
find . -type f \( -name "*.c" -o -name "*.h" \) -exec norminette {} \; |
Executa norminette em todos arquivos .c e .h |
| Função | Descrição |
|---|---|
gac "mensagem" |
Adiciona todos os arquivos e faz commit com a mensagem fornecida |
gpush |
Faz push para o branch atual no repositório origin |
gpull |
Faz pull do branch atual do repositório origin |
- A mensagem de boas-vindas do Fish está desativada
A Norminette pode ser sua melhor amiga ou seu pior pesadelo. Aqui estão algumas dicas para evitar problemas comuns:
| Regra | O que fazer | O que não fazer |
|---|---|---|
| Indentação | Usar tabs de 4 espaços | Misturar tabs e espaços |
| Funções | Máximo 25 linhas por função | Usar funções aninhadas |
| Linhas | Máximo 80 colunas | Linhas que forçam rolagem horizontal |
| Variáveis | Declarar no início da função | Declarar no meio do código |
| Nomes | Snake case (exemplo: user_input) |
Camel case (exemplo: userInput) |
Comando para verificar todos os arquivos do projeto:
find . -type f \( -name "*.c" -o -name "*.h" \) -exec norminette {} \;Minha configuração do Fish inclui vários aliases úteis:
# Compila com as flags da Norma
alias gccw='gcc -Wall -Wextra -Werror'
# Executa norminette em todos os arquivos .c e .h
alias normall='find . -type f \( -name "*.c" -o -name "*.h" \) -exec norminette {} \;'
# Git simplificado
alias gs='git status'
alias gp='git push'
alias gaa='git add --all'
# Função para add+commit em um comando
function gac
git add .
git commit -m "$argv"
end- 42 Header: Adiciona automaticamente o header da 42 aos seus arquivos
- C/C++: Suporte a linguagem C com intellisense
- Bracket Pair Colorizer: Facilita a identificação de chaves/parênteses
- GitLens: Visualização avançada do histórico Git
- Material Icon Theme: Melhora a visualização de arquivos no explorador
Divida seu código em funções pequenas e bem definidas. Use estruturas para agrupar variáveis relacionadas e reduzir o número de parâmetros.
Sempre utilize Valgrind ou similar para verificar vazamentos. Estabeleça uma convenção clara para alocação/liberação de memória em seu código.
Contribuições são sempre bem-vindas! Sinta-se à vontade para:
- Fazer um fork do repositório
- Criar um branch para sua feature (
git checkout -b feature/nova-config) - Commit suas mudanças (
git commit -m 'feat: adiciona configuração X') - Push para o branch (
git push origin feature/nova-config) - Abrir um Pull Request
Welcome to 42Utils, a comprehensive repository of configurations, tips, and tools designed to optimize your development workflow at 42 School. This repository contains customized settings for VSCode, Fish Shell, and various utilities to help you comply with the Norm while improving your productivity.
- VSCode Configuration: Optimized settings with the 80-column ruler, whitespace visualization, and 42 header setup
- Fish Shell: Custom configuration with useful aliases and functions for Git and C development
- Norminette Tips: Common pitfalls and how to avoid them
Clone this repository and copy the configuration files to their respective locations:
# VSCode
cp user_configs/vscode_settings.json ~/.config/Code/User/settings.json
# Fish Shell
cp user_configs/config.fish ~/.config/fish/config.fishFor more detailed instructions and tips, please refer to the sections above in Portuguese.
Feito com ❤️ por nyx
Lembre-se: A Norma existe por um motivo. Mas isso não significa que não podemos facilitar o processo!