De Linux à OS X
Mon nouveau boulot me fournit gentiment un Mac Book Pro. Malgré mes réticences à utiliser un système d’exploitation propriétaire, j’ai décidé de relever le défi de mon collègue Vincent et d’utiliser OS X. Me voici donc sur la route de la transition de Linux vers OS X.
Clavier
La première difficulté est le clavier; les touches ⌘ Command et ⌥ Option sont inversées, et il n’y a qu’un seul Control, à contrario des règles d’ergonomie. Heureusement, j’utilise un clavier externe et ma disposition de clavier qwerty-lafayette est disponible sur OS X[1], merci kaze !
Voici les raccourcis que j’utilise le plus :
Command Tab
Sélectionne la prochaine application dans la liste des applications ouvertes
Command ←/→
se déplace d’un onglet vers la gauche / droite dans iTerm2
Option Espace
Lance alfred, qui me sert de lanceur de programme
Command Enter
Affiche le terminal
Control ↓
Affiche toutes les fenêtres de l’application courante
Gestionnaire de paquet
Aussi bizarre que cela puisse paraitre à un utilisateur de Linux, OS X n’a pas de gestionnaire de paquets par défaut. Il faut installer Homebrew pour y remédier et ensuite installer ses programmes préférés (ex: tig, ag, …).
Terminal
J’ai suivi les conseils et installé iTerm2 pour remplacer le terminal par défaut. J’ai ensuite installé le thème solarized, configuré la touche Meta qui est désactivé par défaut ainsi qu’un raccourci clavier système pour avoir un terminal toujours rapidement accessible.
GNU vs BSD
OS X est un UNIX dérivé de BSD et les utilitaires de base ont de subtiles différences avec les versions GNU. Je vous recommande d’installer et d’utiliser les versions GNU.
brew install coreutils
Pour avoir la coloration avec ls, c’est --color=auto
pour GNU et -G
pour BSD. On doit donc avoir
dans sa config :
if [[ $(uname -s) == "Darwin" ]]; then
alias ls='ls -G'
else
alias ls='ls --color=auto'
fi
sed : le fonctionnement de l’option -i
diffère par ex. Heureusement il est possible d’installer
GNU sed et de remplacer la version OS X
brew install gnu-sed --default-names
Et d’autres programmes ont aussi des différences pénibles comme date
, csplit
, awk
…
ctags
semble aussi avoir des différences au niveau des expressions régulières. J’ai remplacé \s
par [ \t]
. Ce qui se fait avec la commande suivante dans Vim : :%s/\\s/[ \\t]/g
Vim
La version de Vim installée par défaut est trop vieille[2].
brew install macvim --with-cscope --with-lua --override-system-vim
Le path de Vim diffère de celui du SHELL, ce qui fait que ctags ne fonctionne pas dans Vim. Voici la commande pour corriger cela[3] :
sudo chmod ugo-x /usr/libexec/path_helper
Par défaut, ma configuration du clipboard ne fonctionnait pas[4]. J’ai remplacé :
set clipboard=unnamedplus
par :
set clipboard=unnamed,unnamedplus
Conclusion
J’ai perdu pas mal de temps pour retrouver une utilisation similaire à celle que j’ai sous Linux, mais passée cette étape, mon workflow est sensiblement le même.
Les regrets : le gestionnaire de fenêtre i3 me manque. En effet, je trouve Aqua inadapté pour des utilisateurs avancés, notamment car cette interface n’est pas conçue pour être pilotée au clavier.
Pour être honnête, il faut aussi reconnaitre à OS X quelques qualités : une grande homogénéité de l’interface (Command-C / Command-V pour copier / coller fonctionne partout), certains programmes sont très pratiques (par ex. Dash pour centraliser les javadocs).
Liens
[1] http://fabi1cazenave.github.io/qwerty-lafayette/
[2] https://github.com/dotphiles/dotzsh#mac-os-x
[3] http://www.codeography.com/2013/06/11/install-macvim-with-lua-support.html