Skip to content
This repository has been archived by the owner on Mar 7, 2023. It is now read-only.

Optimiser son terminal sous Mac

Jérémy Buget edited this page Mar 15, 2017 · 4 revisions

Instructions

Installer Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Définir des variables globales & aliases dans un fichier ~/.bash_aliases

Une bonne pratique consiste à créer un fichier ~/.bash_aliases pour y déclarer les variables globales (ex : code couleurs) ou alias utiles (ex : alias Git ou NPM) :

# Exemple de variables globales pour les codes couleur
RED=`tput setaf 1`
GREEN=`tput setaf 2`
NORMAL=`tput sgr0`

# Exemple d'aliases de commandes Git
alias gc="git commit -v"
alias gf="git pull --rebase"
alias gp="git push"

Importer le script dans le fichier ~/.bash_profile :

# Aliases
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

Installer Bash Completion

brew install bash-completion

Dans le fichier ~/.bash_profile, ajouter le code suivant :

# Bash completion script
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi

Si l'erreur __git_ps1: command not found apparaît, cela signifie que vous devez réinstaller Git via Homebrew, puis réinstaller bash-completion.

$ brew uninstall bash-completion
$ brew install git
$ brew link --overwrite git
$ brew install bash-completion

Redéfinir le Prompt Bash

Dans le fichier ~/.bash_profile, ajouter le code suivant :

# Git prompt
source /usr/local/git/contrib/completion/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true
export PS1='${YELLOW}\w${NORMAL}${CYAN}$(__git_ps1)${NORMAL}\$ '

Attention! Veuillez à ne surtout pas avoir de répertoire .git à la racine de votre compte sous peine de voir les performances de votre Terminal considérablement dégradées.

Définir les options de configuration globale de Git

Une bonne pratique est de configurer les options globales de Git, telles que votre username ou votre email :

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

Activer les couleurs pour les commandes Git

Créer ou modifier le fichier ~/.gitignore :

[color]
    branch = auto
    diff = auto
    status = auto
[color "branch"]
    current = yellow reverse
    local = yellow
    remote = green
[color "diff"]
    meta = yellow bold
    frag = magenta bold
    old = red bold
    new = green bold
[color "status"]
    added = yellow
    changed = green
    untracked = cyan

Définir les exclusions Git globales

Afin d'éviter de pousser par erreur certains fichiers, une bonne pratique consiste à définir un fichier ~/.gitexcludes et à le déclarer dans Git :

# Apple
.DS_Store

# IntelliJ IDEA
*.iml
*.idea

# Misc
*.log
**/tmp
*.tmp
*.temp

Il faut ensuite avertir Git de prendre en compte ce fichier :

git config --global core.excludesfile ~/.gitexcludes

Fichiers finaux

~/.bash_profile

# Aliases
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# Bash completion script
if [ -f $(brew --prefix)/etc/bash_completion ]; then
  source $(brew --prefix)/etc/bash_completion
fi

# Git prompt
source /usr/local/git/contrib/completion/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true
export PS1='${YELLOW}\w${NORMAL}${CYAN}$(__git_ps1)${NORMAL}\$ '

~/.bash_aliases

# Colors
# ------
RED=`tput setaf 1`
GREEN=`tput setaf 2`
YELLOW=`tput setaf 3`
BLUE=`tput setaf 4`
CYAN=`tput setaf 6`
NORMAL=`tput sgr0`

# Git
# ---
alias ga="git add ."
alias gb="git branch"
alias gc="git commit -v"
alias gd="git diff"
alias ge="git clean"
alias gf="git pull --rebase"
alias gg="git stash pop"
alias gh="git help"
alias gi="git init"
alias gj="git checkout dev"
alias gk="git clone"
alias gl="git log --graph --decorate --pretty=oneline --abbrev-commit"
alias gm="git merge"
alias gn="git rebase --continue"
alias go="git checkout"
alias gp="git push"
alias gq="git rebase -i"
alias gr="git revert"
alias gs="git status"
alias gt="git stash"
alias gu="git branch -D"
alias gv="git --version"
alias gx="git reset HEAD --hard"
alias gy="git commit --amend"
alias gz="git checkout master"

# Docker
# ------
alias dp="docker ps"
alias da="docker ps -a"
alias dr="docker run"
alias ds="docker stop"
alias dk="docker rm"
alias dd="docker rmi"
alias di="docker images"
alias dl="docker logs"
alias df="docker pull"

# NPM
# ---
alias ni="npm install"
alias na="npm install --save"
alias nd="npm install --save-dev"
alias ng="npm install -g"
alias nh="npm help"
alias np="npm publish"
alias nt="npm test"
alias ns="npm start"
alias nr="npm run"
alias nu="npm uninstall"

~/.gitexcludes

# Apple
.DS_Store

# IntelliJ IDEA
*.iml
*.idea

# Misc
*.log
**/tmp
*.tmp
*.temp