گشتی توی داتفایلهای فریک ون در هرتن
خلاصهٔ کاملتر
فریک ون در هرتن، از تیم Spatie، تو این پست کل ریپوی داتفایلهاش رو باز کرده و میگه با همین یک ریپو میتونه یه مک کاملاً نو رو در حدود پنج دقیقه دقیقاً شبیه ماشین قبلیش بالا بیاره. داتفایلها همون فایلهای تنظیماتی مثل .zshrc و .gitconfig هستن که با نقطه شروع میشن و روی مک و لینوکس پیشفرض مخفیان. ایدهش هم سادهست: همهشون رو بریز توی یه ریپوی گیت و بعد سیملینکشون کن به جایی که سیستم انتظار داره.
بخش زیادی از ابزارهای کلاسیک یونیکس تو این ستآپ با نسخههای مدرن و نوشتهشده با Rust عوض شدن: eza بهجای ls، bat بهجای cat، ripgrep بهجای grep، fd بهجای find و delta بهعنوان pager گیت. نویسنده میگه delta بیشتر از همه غافلگیرش کرده، چون بهجای قرمز و سبز کردن کل خط، دقیقاً همون تیکهای از خط رو که عوض شده هایلایت میکنه. اَلیاسها هم با یه شرط command -v بسته شدن، پس فقط وقتی فعال میشن که خود ابزار نصب باشه.
ولی چیزی که خودش بیشتر از همه دوستش داره zoxide هست: یه دستور z که هر دایرکتوریای رو که بهش سر زدی یادش میمونه و بعد با یه تیکه از اسمش میبردت همونجا، بدون مسیر و بدون بالا رفتن از زیرپوشهها. رتبهبندیش ترکیبی از «چقدر زیاد» و «چقدر تازه» سر زدی، پس پروژههای روزمره برنده میشن و دو سه حرف کافیه. راهاندازیش هم یک خط توی .zshrc بیشتر نیست.
اَلیاسها همون بردهای کوچیک روزمرهان؛ به گفتهٔ نویسنده ارزش اصلی جاییه که چیزی رو روزی دهها بار تایپ میکنی، نه جایی که پیچیدهست:
alias a="php artisan"
alias mfs="php artisan migrate:fresh --seed"
alias c="claude"
alias cy="claude-yolo"برای هر چیزی پیچیدهتر از یه اَلیاس هم فانکشن شل داره؛ مثلاً p خودش تشخیص میده پروژه Pest داره یا PHPUnit و همون رو صدا میزنه:
function p() {
if [ -f vendor/bin/pest ]; then
vendor/bin/pest "$@"
else
vendor/bin/phpunit "$@"
fi
}نصب همهچی با اسکریپت bin/install انجام میشه: Oh My Zsh، ساختن سیملینکها، اجرای Homebrew روی یک Brewfile که فهرست کانونی همهٔ ابزارهاست، تنظیم PHP و Node و پکیجهای گلوبال Composer. تنظیمات Claude Code — یعنی CLAUDE.md، اسکیلها و ایجنتهای سفارشی — هم داخل همین ریپو ورژنکنترل و سیملینک میشه. برای چیزهای مخصوص یک ماشین هم یه پوشهٔ ~/.dotfiles-custom هست که هیچوقت کامیت نمیشه.
نکات کلیدی:
- داتفایلها توی گیت + سیملینک یعنی هر تغییری خودکار بکاپ و ورژنکنترل میشه
- ابزارهای Rustای مثل eza، bat، ripgrep، fd و delta جایگزین سریعتر ابزارهای کلاسیک یونیکسان
- zoxide با دستور z پرش بین پروژهها رو به چند حرف کاهش میده
- فانکشنهای شل مثل p تفاوت Pest و PHPUnit رو خودشون تشخیص میدن
- یک Brewfile واحد، کل ابزارهای لازم روی یک مک تازه رو با یک دستور نصب میکنه
- ریپو عمومیه و نویسنده پیشنهاد میده فورکش کنی و مال خودت کنی




