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

[4] http://vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing