Yann Moisan

Scala, Web, Linux…

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 X1, 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 vieille2.

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 cela3 :

sudo chmod ugo-x /usr/libexec/path_helper

Par défaut, ma configuration du clipboard ne fonctionnait pas4. 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