Ved hjelp av Dotfiles for å Administrere Utvikling og Mange Andre Magiske Ting

0
17

Howdy folkens! 🎉 Jeg er Simon Owen, og gjennom årene, har jeg elsket å være en del av og lære fra de dotfiles samfunnet. Jeg bruker mye tid på å undervise utviklere og kjører workshops. I disse øktene, og viser hvordan setter jeg opp min utvikling miljø er ofte en av tingene som folk satte pris på det meste.

Dotfiles er en viktig del av min utvikling miljø. Har ikke hørt om dem? Vel, selv om du har, er det en god idé å gå gjennom hva de er og fordelene av å bruke dem.

Siste år, har jeg satt meg som mål å lage en screencast-serien. Hvis du liker denne artikkelen, og ønsker å finne ut mer, kan du abonnere på mailingliste og få på last ned-koblingen. Hvis du virkelig liker det, du kan også 🦄 donere her! 🦄

En dot-hva-fil?

Hvis du høre om dotfiles for første gang, det er helt greit å være forvirret om hva de er og hva de gjør. Jeg husker at det tok meg lang tid før jeg skjønte dotfile er rett og slett en fil som har et punktum foran fil!

Det er to vanlige eksempler på dotfiles. Først, de som du kanskje allerede være kjent med er de ofte finnes i roten av mange åpen kildekode-prosjekter, for eksempel .editorconfig inneholder kode editor preferanser for å bidra til å opprettholde konsistent koding stiler for et prosjekt. Du kan også ha sett .stylelintrc og .eslintrc flytende rundt, som satt CSS og JavaScript regler, henholdsvis.

Andre (og de vi ser på i dag), er dotfiles som kan leve på rotnivå på en bruker-katalogen (dvs. /Brukere/<brukernavn> ). En slik dotfile er .aliaser, som inneholder egendefinerte heter kommandoer som kan fremskynde arbeidet i Terminalen. En annen er .bash_prompt, som brukes til å endre $ i Terminal til noe litt mer moro. I mitt tilfelle, har jeg sett det slik at denne dude dukker opp for å få meg til å smile når ting blir tøffe:

༼ つ ◕_◕ ༽つ

Forhåpentligvis, du er allerede begynt å få en god følelse av hvor nyttig dotfiles kan være. De er liksom som skjulte perler (bokstavelig talt, siden de er skjult utsikt standard) som låser opp supermaktene for din maskin for å hjelpe til med utviklingen. Vi snakker om automation, optimaliseringer, og effektiv arbeidsflyt, blant andre ting.

Først og fremst ønsker jeg å gi props til dotfiles samfunnet

Før vi grave i dotfiles, er det verdt å rope ut hvor stor fellesskapet bak dem er. Når jeg først delte Paul ‘ s Irish dotfile repo, det var mye å gå på i det jeg ikke forstår. Mathias Bynens og Paul Irsk hjulpet meg utrolig med å svare på spørsmål om etiske og det var deres vilje til å bidra til at serveres som en av grunnene til at jeg ble trukket til både konseptet og samfunnet.

Noen ganger, vil jeg legge ut noe til det samfunnet som jeg ønsker å automatisere, men kan ikke finne det ut for livet av meg. Og, uten å lykkes, vil jeg få en nyttig svar. Sak: Eric Czarny skrev en app for meg å automatisere mitt Syn innstillinger og Mathias har også bidratt til en kodebit. Hvor kult er ikke det?!

Så det er ting som macOS oppdateringer. Den dotfiles samfunnet er ofte på toppen av dette og gi nyttige råd på GitHub kommentarer om noe som ikke lenger fungerer, eller annen nyttig informasjon. Du kan deretter endre dine dotfiles tilsvarende, for eksempel legge til følgende kode som øker lydkvaliteten for Bluetooth-hodetelefoner/headset:

standarder skrive com.apple.BluetoothAudioAgent “Apple Bitpool Min (redigeres)” -int 40

Å grave i dotfiles

Koden eksempelet ovenfor kan se litt kjent ut for deg. Det er langs de samme linjer som denne ofte brukt for å vise skjulte filer:

standarder skrive com.apple.finder AppleShowAllFiles -bool true

…eller denne for å legge til områder til dock:

standarder skrive com.apple.dock-vedvarende-apps -array-legg til ‘{“tile-type”=”avstandsstykke for overflatemontering-tile”;}’; killall Dock

Disse kommandoene kan limes direkte inn i Terminalen. Som du kanskje forventer, noe som -bool true vil endre en boolske verdien false, true, og reset-kommando for senere bruk.

Hvis du ‘ e som meg og har mye av disse kommandoene, så dette er der .macos (tidligere .osx) dotfile blir spesielt nyttig. I stedet for å kopiere og lime inn hver kommando individuelt, vi kan automatisere og kjøre dem alle i ett.

La oss gå gjennom noen eksempler

Det er så mange fantastiske ting vi kan gjøre i dotfiles. Her er noen praktiske tilfeller som jeg stole på min dag-til-dag arbeid.

Innstillingen aliaser for standard kommandoer (.aliaser)

Navigere mellom kataloger i Terminalen kan være tungvint, og det er lett å gå seg vill i cd-galskap.

Vi kan erstatte den standard “change directory” (cd) kommando med en tilpasset kommando i den .aliaser dotfile. Du kan For eksempel bruke denne alias å droppe cd-prefiks helt når du bruker kommandoen cd .. å flytte opp en katalog i favør av .. av seg selv.

alias ..=”cd ..”

Jada, det er bare å slippe to bokstaver, men hvor mye lettere er det å huske?

Vi kan gjøre det samme for å lage snarveier til enkelte kataloger:

alias dl=”cd ~/Downloads”

Eller, opprette aliaser for stenografi-kommandoen oppgaver:

alias hs=”hexo tjene”

Oh, her er en annen en! Listen bare kataloger:

alias lsd=”ls -lF ${colorflag} | grep –color=aldri ‘^d'”
Lage en egendefinert bash be om en personlig touch til Terminal (.bash_prompt)

Jeg nevnte dette litt tidligere, men her er hvordan jeg snudde min bash-ledeteksten ($) i en liten fyr som er måten mer moro å se på det. Dette er gjort direkte i det .bash_prompt dotfile.

PS1=”༼ つ ◕_◕ ༽つ”
Opprette Git snarveier til speed opp begår (.gitconfig)

Vi kan gjøre det litt mer effektiv til å begå alle endringer på gang i den .gitconfig dotfile. Ved hjelp av ca er en mye mer konsis enn det !git add-A && git commit -av .

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

En annen nyttig snarvei: finn begår ved å begå en melding.

fm = “!f() { git log-ganske=format:’%C(gule)%h %Cblue%annonsen %Creset%s%Cgreen [%cn] %Kred%d’ –dekorere –date=kort –grep=$1; }; f”
Automatiser vanlige Homebrew oppgaver (brew.sh)

Bruk Homebrew for pakken ledelse? Selv om det ikke strengt tatt et dotfile (det har ikke en prikk før fil), Homebrew gir oss brew.sh shell script-fil. Denne filen automatiserer installasjon og administrasjon av Programmer og Verktøy:

brygge installere git
brygge installere treet
brygge cask installer google chrome
brygge cask installere iterm2
brygge cask installere sublime-tekst
Beskytte din Git legitimasjon (.ekstra)

Skjule informasjon som du ikke ønsker å dele offentlig i én fil i en privat repo og bringe den inn for deg alene. For eksempel, en god idé for denne filen er ikke noe som er spesifikt for deg, for eksempel din Git legitimasjon. Dette vil hindre folk fra kloning, kjører din dotfiles, for så å begå som deg!

# Git legitimasjon
# Ikke i depotet for å hindre folk fra ved et uhell å begå under mitt navn
GIT_AUTHOR_NAME=”Simon Owen”
GIT_COMMITTER_NAME=”$GIT_AUTHOR_NAME”
git config –global brukeren.navnet “$GIT_AUTHOR_NAME”
GIT_AUTHOR_EMAIL=”<ADD-DIN-E-POST-HER>”
GIT_COMMITTER_EMAIL=”$GIT_AUTHOR_EMAIL”
git config –global brukeren.e “$GIT_AUTHOR_EMAIL”
Skriv egendefinerte funksjoner for oppgaver (.funksjoner)

Dotfiles er mer enn snarveier og aliaser. Vi kan også lage egendefinerte funksjoner .funksjoner som gjør mer avanserte løfte. Du kan For eksempel opprette en ny mappe og endre mappe til det:

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

Eller, vi kan åpne et gitt sted i Finder med et en-brev-kommandoen (o):

funksjonen u() {
om [ $#-eq 0 ]; then
åpne .;
annet
åpne “$@”;
fi;
}
Angi dine $PATH og holde privat (.banen)

$PATH tillater kjøring av kjørbare filer. I stedet for å navigere til hver bane manuelt i Terminal, her kan vi sette fil stier, slik at de kan kjøre kjørbare filer direkte. Det kan være tilfelle at denne filen inneholder sensitiv informasjon. Som sådan, er denne filen er ofte holdt i en privat repo.

Her er et eksempel legge til ~/utils til $PATH:

export PATH=”$HOME/utils:$PATH”
Force Vim til å bruke et bestemt tema (.vimrc)

Redaktør config-filer er stor for å sikre konsekvent formatering på tvers av prosjekter, men vi kan også fortelle en Vim-editoren til å bruke et bestemt tema .vimrc-fil:

“Bruk Solarized Mørkt tema
angi bakgrunn=mørk
colorscheme solarized
la g:solarized_termtrans=1
Bonus: Nyttig Terminal oppskrifter for macOS

OK, så her er en liten bit av en bonus for Mac-brukere som ikke er i slekt å dotfiles, men er ting vi kan gjøre i Terminalen for å gi macOS supermaktene til å gjøre ganske fantastisk ting som utgjør dag-til-dag bruk en litt enklere og mer behagelig.

First off, kan vi vise skjulte filer som standard i Finder så dotfiles er synlig hele tiden ved å skrive dette inn i Terminalen:

standarder skrive com.apple.finder AppleShowAllFiles -bool true

Finn den måten som rullefelt slå på og av i Finder risting? La oss gjøre dem synlige til enhver tid:

standarder skrive NSGlobalDomain AppleShowScrollBars -string “Alltid”

Som standard, macOS ser etter oppdateringer en gang per uke. Men kanskje vi ønsker å sjekke en gang om dagen, eller på noen andre intervall:

standarder skrive com.apple.SoftwareUpdate ScheduleFrequency -int 1

Vet du hvordan du holder ned på en tast på tastaturet gjentar at karakter? Vel, det gjentar på en bestemt hastighet som vi kan gjør for å skyhøy:

standarder skrive NSGlobalDomain KeyRepeat -int 0

Noen mennesker elsker måten macOS inkluderer en safe skygge når du tar et skjermbilde av et vindu. Andre ikke. Her er hvordan du slår den av:

standarder skrive com.apple.screen capture deaktiver-shadow -bool true

Og, i dette eksemplet, vi kan automatisere størrelse på ikoner i docken:

standarder skrive com.apple.dock tilesize -int 36

Dette er bare toppen av isfjellet! I min screencast-serien jeg går over mer enn ett hundre av dem.

Konklusjon

Web-utvikling er en stadig mer komplisert etter hvert som tiden går. Vi har alle måter å gjøre vår utvikling arbeidsflyt litt enklere og komfortabel basert på personlige preferanser.

Du kan være en erfaren utvikler og oppmerksom på slike ting som Node, npm, og Git, men fortsatt finne deg selv sittende fast i et Terminal-vindu med en haug av feil. Eller, du kan være i ferd med ut og finne disse, og andre verktøy, komplekse og vanskelige å forstå.

Uansett, forhåpentligvis vite mer om dotfiles og hva de er i stand til å gjøre gir deg et nytt våpen i arsenalet ditt er å gjøre din utvikling-miljø som er skreddersydd til deg, raskere arbeidsflyt og gi din maskin lagt superkrefter!

Som en påminnelse, min screencast-serien vil gi deg flere tips og triks, pluss en god idé om hvordan å få din utviklingsmiljø satt opp. Dette er den første i serien. Går fremover, jeg kommer til å se på utvider på det, så vennligst gi meg beskjed hvis det er noe annet du ønsker meg dekselet!