Med hjälp av Dotfiles för att Hantera Utveckling och Många Andra Magiska Saker

0
103

Tjena gott folk! 🎉 Jag är Simon, Owen, och under åren, jag har älskat att vara en del av och lära av dotfiles gemenskapen. Jag tillbringar mycket tid med att lära utvecklare och kör workshops. I dessa sessioner, som visar hur jag satt upp min utveckling miljö är ofta en av de saker som folk uppskattat mest.

Dotfiles är en viktig del av min utveckling miljö. Har inte hört talas om dem? Tja, även om du har, är det en bra idé att gå igenom vad de är och fördelarna med att använda dem.

Förra året satte jag upp ett mål att skapa en screencast-serien. Om du gillar denna artikel och vill veta mer, vänligen prenumerera på sändlistan och få en nedladdningslänk. Om du verkligen gillar det kan du också 🦄 donera här! 🦄

En dot-vad-fil?

Om du får höra om dotfiles för första gången, det är helt bra att vara förvirrad över vad de är och vad de gör. Jag minns att det tog för mig en ansenlig tid innan jag insåg att en dotfile är helt enkelt en fil som har en prick framför filnamnet!

Det är två exempel på vanliga typer av dotfiles. För det första, de som du kanske redan är bekant med är de som ofta finns vid roten av många open source-projekt, till exempel .editorconfig innehåller kod-editor inställningar för att hjälpa till att upprätthålla enhetlig kodning stilar för ett projekt. Du kanske också har sett .stylelintrc och .eslintrc flyter runt, som ligger CSS och JavaScript regler, respektive.

Andra (och de som vi tittar på i dag), är dotfiles som kan leva på grundnivån av en användare i katalogen (dvs /Användare/<användarnamn> ). En sådan dotfile är .alias, som innehåller anpassade heter kommandon som kan påskynda arbetet i Terminalen. En annan är .bash_prompt, som används för att ändra $ i Terminal till något lite roligare. I mitt fall, jag ställer in den så att den här killen dyker upp och får mig att le när det går tungt:

༼ つ ◕_◕ ༽つ

Förhoppningsvis har du redan börjat få en bra känsla av hur användbara dotfiles kan vara. De är ungefär som gömda pärlor (bokstavligen, eftersom de är dolda från åsikter som standard) för att låsa upp superkrafter till din maskin för att hjälpa till med utvecklingen. Vi pratar om automation, optimeringar, och ett effektivt arbetsflöde, bland andra saker.

Först vill jag ge props till dotfiles gemenskapen

Innan vi gräva i dotfiles, det är värt att syna reda på hur stor samhället bakom dem är. När jag först kluven Paul Irish ‘ s dotfile repo, det var en hel del som händer i det jag inte förstår. Mathias Bynens och Paul Irish hjälpt mig oerhört genom att svara på frågor om koden och det var deras vilja att hjälpa som fungerade som en av anledningarna till att jag blev dragen till både koncept och gemenskapen.

Ibland kommer jag att skicka något till det samhälle som jag vill att automatisera, men kan inte räkna ut det för livet av mig. Och, utan att misslyckas, jag kommer att få ett bra svar. Typexempel: Eric Czarny skrev en app för mig att automatisera mitt Skådespel inställningar och Mathias också bidragit med ett kodavsnitt. Hur coolt är inte det?!

Sedan finns det saker som macOS uppdateringar. Den dotfiles gemenskapen är ofta på toppen av detta och ge råd på GitHub kommentarer om något som inte längre fungerar eller annan användbar information. Du kan sedan ändra din dotfiles därför, såsom att lägga till följande kod som ökar ljudkvaliteten för Bluetooth hörlurar/headset:

defaults write com.apple.BluetoothAudioAgent “Apple Bitpool Min (redigerbara)” -int 40

Gräva i dotfiles

Kodexemplet ovan kanske ser lite bekant för dig. Det är längs samma linjer som detta används ofta en för att visa dolda filer:

defaults write com.apple.finder AppleShowAllFiles -bool true

…eller här för att lägga till mellanslag i dockan:

defaults write com.apple.dock persistent-apps -array-lägg till ” för{“bricka-typ”=”spacer-brickan”;}’; killall Dock

Dessa kommandon kan klistras in direkt i Terminalen. Som man kan förvänta sig, något som -bool true kommer att ändra ett booleskt värde från false till true och reset kommandot för senare användning.

Om du ‘ e som mig och har en hel del av dessa kommandon, då det är där .macos (tidigare .osx) dotfile blir särskilt användbart. I stället för att kopiera och klistra in varje individuellt kommando, kan vi automatisera och köra dem alla på en gång.

Låt oss gå igenom några exempel

Det finns så många grymma saker som vi kan göra i dotfiles. Här är några praktiska användningen fall som jag litar på för min dagliga arbete.

Inställning alias för standard kommandon (.alias)

Navigera mellan kataloger i Terminalen kan vara besvärligt och det är lätt att gå vilse i cd galenskap.

Vi kan ersätta den vanliga “change directory” (cd) kommando med ett eget kommando i den .alias dotfile. Till exempel, använd detta alias för att slopa cd-prefix helt och hållet när du använder kommandot cd .. för att gå upp en katalog i förmån för .. av sig själv.

alias ..=”cd ..”

Visst, det är bara att släppa två bokstäver, men hur mycket lättare är det att komma ihåg?

Vi kan göra samma sak för att göra genvägar till vissa kataloger:

alias dl=”cd ~/Downloads”

Eller, skapa alias för shorthand kommandot uppgifter:

alias hs=”hexo tjäna”

Åh, här är en till! Listan bara kataloger:

alias lsd=”ls -lF ${colorflag} | grep –color=aldrig ‘^d'”
Att göra en anpassad bash-prompten för en personlig touch till Terminalen (.bash_prompt)

Jag nämnde det lite tidigare, men här är hur jag vände mitt bash-prompten ($) till en liten kille som är så mycket roligare att titta på det. Detta görs direkt i den .bash_prompt dotfile.

PS1=”༼ つ ◕_◕ ༽つ”
Skapa Git genvägar för att påskynda begår (.gitconfig)

Vi kan göra det lite mer effektivt att begå alla ändringar på en gång i den .gitconfig dotfile. Med hjälp av ca är en mycket mer kortfattad än !git add-A && git commit -av .

ca = !git add-A && git commit-av –

En annan praktisk genväg: hitta förbinder sig genom att begå meddelande.

fm = “!f() { git logga –ganska= – format: “%C(gul)%h %Cblue%ad %Creset%s%Cgreen [%kn] %Cred%d “–dekorera –date=korta, grep=$1; }; f”
Automatisera vanliga Homebrew uppgifter (brew.sh)

Använd Homebrew för pakethantering? Även om det inte är absolut en dotfile (det har inte en prick framför filnamnet), och Homebrew ger oss brew.sh skript-fil. Den här filen automatiserar installation och hantering av program och Verktyg:

brew install git
brygga installera träd
brygga cask installera google chrome
brygga cask installera iterm2
brygga cask installera sublima-text
Skydda din Git-referenser (.extra)

Dölja information som du inte vill dela med sig offentligt i en fil i en egen repo och ta i för du är ensam. Till exempel, en bra idé för den här filen är något som är specifika för dig, såsom ditt Git referenser. Detta kommer att hindra människor från att kloning, kör din dotfiles, då begår du!

# Git referenser
# Inte i förrådet, för att hindra människor från att begå misstag under mitt namn
GIT_AUTHOR_NAME=”Simon, Owen”
GIT_COMMITTER_NAME=”$GIT_AUTHOR_NAME”
git-config –globala användare.namnet “$GIT_AUTHOR_NAME”
GIT_AUTHOR_EMAIL=”<LÄGG TILL-DIN-E-POST-HÄR>”
GIT_COMMITTER_EMAIL=”$GIT_AUTHOR_EMAIL”
git-config –globala användare.e “$GIT_AUTHOR_EMAIL”
Skriva egna funktioner för uppgifter (.funktioner)

Dotfiles är mer än genvägar och alias. Vi kan även göra egna funktioner .funktioner som gör mer avancerade lyft. Till exempel, skapa en ny katalog och ändra katalog till:

funktion mkd() {
mkdir -p “$@” && cd “$_”;
}

Eller så kan vi öppna en given plats i Finder med en bokstav-kommandot (o):

funktion o() {
if [ $#-eq 0 ]; sedan
öppna .;
annat
öppna “$@”;
fi;
}
Ange din $PATH och hålla privat (.sökväg)

$PATH gör att den kör av körbara filer. Istället för att navigera till varje bana manuellt i Terminalen, här kan vi ange sökvägar så att de kan köra körbara filer direkt. Kan det vara så att den här filen innehåller känslig information. Som sådan, denna fil är ofta förvaras i en egen repo.

Här är ett exempel lägga till ~/utils till $PATH:

export PATH=”$HOME/utils:$PATH”
Kraft Vim för att använda ett särskilt tema.vimrc)

Redaktör config-filer är stora för att säkerställa en konsekvent formatering mellan projekt, men vi kan också tala om ett Vim-editor för att använda ett särskilt tema i en .vimrc fil:

“Använd den värmts upp av solen Mörkt tema
set background=mörk
färgskala värmts upp av solen
låt g:solarized_termtrans=1
Bonus: Hjälp Terminal recept för macOS

OK, så här är lite av en bonus för Mac-användare som inte är relaterad till dotfiles, men det finns saker vi kan göra i Terminalen för att ge macOS supermakter att göra ganska roliga saker att göra dag-till-dag lite enklare och mer behaglig.

Först ut, vi kan visa dolda filer som standard i Finder så dotfiles är synliga hela tiden genom att skriva detta i Terminalen:

defaults write com.apple.finder AppleShowAllFiles -bool true

Hitta sätt att rullningslister växla mellan på och av i Finder skärande? Låt oss göra dem synliga i alla tider:

defaults write NSGlobalDomain AppleShowScrollBars -string “Alltid”

Som standard, macOS söker efter uppdateringar en gång per vecka. Men vi kanske vill kolla en gång om dagen eller på något annat intervall:

defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1

Du vet hur du håller ner en tangent upprepar som karaktär? Tja, upprepar den vid en bestämd hastighet som vi kan överladda till blixtrande snabbt:

defaults write NSGlobalDomain KeyRepeat -int 0

Vissa människor älskar sätt macOS har en box shadow när du tar en skärmdump av ett fönster. Andra inte. Här är hur man stänger av den:

defaults write com.apple.screencapture inaktivera-shadow-bool true

Och, i detta exempel, vi kan automatisera storlek på ikoner i Dockan:

defaults write com.apple.dock tilesize -int 36

Detta är bara toppen av isberget! I min screencast-serien jag gå över mer än hundra av dem.

Slutsats

Webbutveckling är allt mer komplicerade med tiden. Vi har alla olika sätt att göra vår utveckling arbetsflöde lite enklare och bekvämare baserat på personliga preferenser.

Du kan vara en erfaren utvecklare och medveten om sådana saker som Nod, npm, och Git men fortfarande hittar dig själv fastnat i ett terminalfönster med en massa fel. Eller, du kanske har börjat och hitta dessa, och andra verktyg, komplexa och svåra att förstå.

Antingen sätt, förhoppningsvis veta mer om dotfiles och vad de är kapabla till att göra ger dig ett nytt vapen i din arsenal för att göra din utveckling miljö anpassade till dig, snabba upp ditt arbetsflöde och ge din maskin extra superkrafter!

Som en påminnelse, min screencast-serien kommer att ge dig fler tips och tricks, plus en bra idé om hur man ska få din utveckling miljö inrättas. Detta är den första i serien. Går framåt, jag kommer att titta på att utöka den, så snälla låt mig veta om det är något annat du vill att jag ska täcka!