Vous manquez une meilleure expérience de terminal Mac

Lorsque j’ai quitté le monde de Linux pour passer à plein temps à OS X il y a un peu plus d’un an, ce qui m’a le plus manqué était la communauté robuste et la pléthore d’options entourant les personnalisations, les tweaks et les personnalisations du système d’exploitation et de la station de travail. Ce qui suit est un guide décrivant la quête pour construire mon shell OS X parfait – une expérience de ligne de commande à la fois fonctionnelle et belle, sans sacrifier l’une pour l’autre. J’espère que mes pas épargneront à certains voyageurs aux vues similaires un peu de temps et de frustration dans leur voyage vers une expérience de terminal parfaite.

Mile 1 : Choisir une application shell

credit : hyper.is

La première étape de ce voyage, et une étape importante, consiste à choisir une application d’émulation de terminal. Dans le monde d’OS X, il y a deux acteurs dominants : iTerm, et Hyper.

Cet article n’est pas destiné à être une revue d’application, donc je ne vais pas entrer profondément dans les détails concernant les fonctionnalités ou l’utilisation avancée de l’un ou l’autre choix, mais je dirai ce qui suit :

Généralement, iTerm va être l’option la plus performante des deux. iTerm possède un éventail vraiment incroyable d’options, de raccourcis et de capacités. Si vous faites un travail lourd sur la ligne de commande, si vous utilisez régulièrement tmux ou si vous avez besoin d’une configurabilité plus avancée, ce sera probablement le meilleur choix. Trouvez iTerm ici.

Hyper est un acteur plus récent dans ce domaine, et malgré le fait qu’il ait moins de fonctionnalités qu’iTerm, il est incontestablement la plus belle expérience de terminal. Cela ne veut pas dire qu’iTerm est laid, mais le style d’Hyper est juste…joli.

Hyper est construit sur des technologies web (HTML, CSS, JS), et dispose d’une collection robuste de thèmes, d’une bibliothèque diversifiée de plugins faciles à installer, et les contributions continues des utilisateurs en font un choix amusant et intéressant. L’équipe Hyper vient de publier la version 2- augmentant la vitesse, ajoutant des améliorations UX utiles, simplifiant davantage l’installation de plugins, et plus encore. Découvrez Hyper ici.

L’un ou l’autre choix ici sera un bon choix. Les deux options peuvent être configurées pour créer une belle expérience de terminal hautement fonctionnelle. Je recommanderais d’essayer les deux – je garde les deux installés, utilisant chacun à des fins différentes.

Note : si vous n’aimez pas l’une ou l’autre des options ci-dessus, ou préférez vous en tenir aux applications natives, le terminal intégré.app qui est livré avec OS X fonctionnera très bien pour la plupart ou la totalité de ce que nous allons couvrir dans le reste de l’article.

Mile 2 : Installer votre shell Unix

Après avoir déterminé quelle application de terminal vous allez utiliser, l’étape suivante consiste à choisir un shell unix. C’est un prérequis nécessaire pour la plupart de ce qui va suivre.

Il existe trois choix majeurs dans ce département : Bash (OS X par défaut), Zsh et Fish. Chaque choix a des avantages et des inconvénients différents, mais pour les besoins de cet article, nous allons travailler avec zsh.

Z shell, ou zsh, existe depuis 1990, et a un grand nombre de partisans et un éventail diversifié de plugins, de guides et de contributeurs. Certains avantages de zsh comprennent : l’amélioration des compléments, l’historique des commandes, le globbing, les raccourcis, la gestion des variables et bien d’autres. Chacun de ces éléments mérite d’être exploré et appris une autre fois.

Installation de zsh:

Zsh est livré avec OS X, cependant, il s’agit d’une ancienne version. I recommend installing the latest version using Homebrew, the Mac package manager.

If you have not heard of Homebrew, or do not have it installed, you can find it here.

  • To install zsh using Homebrew, enter the following into your terminal:

brew install zsh zsh-completions

  • Verify installation by entering the following:

zsh --version

expected result: 5.1.1 or newer.

  • Make zsh your system’s default shell:

chsh -s $(which zsh)

  • Verify that it worked:

echo $SHELL

expected result: /bin/zsh

If you get hung up anywhere during this process, or need additional help, check this for more information and a more detailed install guide.

After installing zsh, the first time zsh is ran, it will prompt you with a series of questions concerning configuration. Suivez l’invite jusqu’à la fin, en apportant des modifications là où vous le souhaitez. Aucun changement n’est nécessaire, cependant- les valeurs par défaut fonctionneront très bien.

Mile 3 : Choisir un framework

crédit : oh-my-zsh

Après avoir installé zsh, un tout nouveau monde de frameworks, de plugins et de thèmes s’ouvre à vous. Bien plus que ce qui peut être couvert dans cet article. Pour les besoins de cet article, nous utiliserons oh-my-zsh de Robby Russel comme framework. Il est simple à installer, possède un ensemble de fonctionnalités robustes et est généralement indulgent en matière d’utilisabilité.

Si oh-my-zsh n’est pas votre tasse de thé, un framework similaire comme Prezto fonctionnera très bien à sa place. Alternativement, si vous préférez une alternative plus légère, vous pouvez vous en tenir uniquement à un gestionnaire de plugins, comme Antigen, ou fonctionner sans framework du tout. Ces décisions vous appartiennent entièrement, et je vous encourage à jouer avec différentes configurations, frameworks, plugins et modifications pour déterminer ce qui correspond le mieux à votre flux de travail et à vos besoins.

Installation de oh-my-zsh:

Dirigez-vous vers le dépôt oh-my-zsh sur Github – ici.

Suivez les instructions d’installation de base dans le dépôt, ou voyez ce qui suit :

Installation via curl :

Dans votre terminal, exécutez :

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Ce qui précède va cloner et installer oh-my-zsh. Une fois terminé, vous êtes prêt à commencer à l’utiliser.

Configuration de oh-my-zsh:

Les plugins Zsh peuvent ajouter toutes sortes de solutions de flux de travail utiles, des tweaks amusants ou ajouter des fonctionnalités importantes. En voici quelques-uns pour vous aider à démarrer :

zsh-nvm – plugin zsh pour Node Version Manager (en supposant que vous utilisez Node.js). Téléchargez-le ici.

zsh-syntax-highlighting ou fast-syntax-highlighting – ajoute une coloration syntaxique en temps réel aux commandes lorsqu’elles sont tapées dans le terminal – fortement recommandé. Trouvez-le ici.

git – raccourcis et solutions pour les utilisateurs de git. Livré avec oh-my-zsh.

Il existe de très nombreux autres plugins. Oh-my-zsh est livré avec une longue liste d’entre eux, également (voir ici). Encore une fois, cela relève de la configuration personnelle – passez du temps à décider ce qui fonctionnera le mieux pour vous.

Installation des plugins :

Cette partie du guide nous amène à une pièce très importante dans le processus de configuration de zsh : le fichier de configuration de zsh, .zshrc .

Votre .zshrc fichier devrait avoir été généré la première fois que vous avez exécuté zsh et/ou lors de l’installation de oh-my-zsh. Vous pouvez le trouver parmi les fichiers cachés de votre répertoire personnel.

Note : pour activer l’affichage des fichiers cachés dans votre répertoire personnel, tapez ceci dans votre terminal : defaults write com.apple.finder AppleShowAllFiles YES

Le fichier .zshrc est l’endroit où la plupart de notre configuration d’invite va avoir lieu. Oh-my-zsh aura généré une configuration par défaut, avec des champs pour le thème, les plugins, les alias, et plus encore.

L’installation d’un nouveau plugin est un processus simple. S’il s’agit d’un plugin livré avec oh-my-zsh, il suffit de naviguer dans la partie  » plugins  » de votre fichier .zshrc et de taper son nom entre les parenthèses. Rechargez votre terminal en tapant zsh et il devrait être fonctionnel.

Pour les plugins tiers, je recommande de suivre les instructions d’installation au sein du dépôt du plugin. Cependant, le processus d’installation de la plupart des plugins tiers est assez simple, et devrait se dérouler comme suit :

  1. Clonez le plugin et déplacez les fichiers clonés dans votre /custom dossier au sein de l’installation oh-my-zsh, qui se trouve dans votre répertoire personnel.
  2. Au sein de votre .zshrc fichier, ajoutez le nom du plugin entre les parenthèses dans le champ ‘plugins’, comme nous l’avons fait ci-dessus.
  3. Reload zsh, et il devrait être prêt à être utilisé.

Note: if you run into any hangups in this process, please refer to the oh-my-zsh repository, or the third party plugin’s repository. Most of your troubleshooting needs should be addressed there. Additionally, there is a large community surrounding the use of these tools- if there is something you can’t immediately find in the repositories, a quick google search will likely turn up a long list of people asking and solving the same questions you have.

Mile 4: Spaceship Prompt Installation

credit: spaceship prompt

Now that we have installed zsh, a framework, and our plugins, we can now get to work configuring our command line via a theme/custom prompt.

Votre invite de ligne de commande peut être ce que vous voulez qu’elle soit – minimale, verbeuse, informative, belle, pragmatique, ou tout cela à la fois. Pour nos besoins, j’ai choisi un excellent thème d’invite zsh, Spaceship. C’est la meilleure combinaison de chacun des attributs ci-dessus que j’ai rencontrée jusqu’à présent.

Le dépôt github du Spaceship Prompt se trouve ici.

Installation de l’invite Spaceship :

Clonez le dépôt :

git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt"

Symlink spaceship.zsh-theme vers votre répertoire de thèmes personnalisés oh-my-zsh :

ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"

Définir ZSH_THEME="spaceship" dans la section « theme » de votre .zshrc.

Personnalisation du prompt de Spaceship:

Maintenant que vous avez votre prompt installé, il y a une longue liste de personnalisations et d’ajustements qui peuvent être faits pour s’adapter à votre flux de travail ou à votre style. Leur dépôt a un grand ensemble de docs qui vous montrera certaines des possibilités. Spend some time viewing the examples, or leave it as-is — the defaults are great.

My personal prompt is configured to display some custom icons and information:

Spaceship prompt in iTerm2

The above should give you an idea of some of the cool possibilities that you can create with Spaceship. To get your prompt looking like mine, a few steps must be followed:

The font I’m using iTerm is Monoid Nerd Font . In Hyper I am using nerd fonts’ PowerlineSymbols and mononoki Nerd Font Mono . Use whichever fonts you personally like, however— a nerd font is required to properly use Spaceship prompt. Les polices nerd sont spécialement patchées pour inclure tous les grands symboles/glyphes discutés au sein de cet article.

Trouver les polices nerd ici et ici.

  1. Pour installer les polices nerd :
  • Installation manuelle – téléchargez/clonez les fichiers de police. Le dépôt de nerd fonts aura des instructions détaillées concernant le téléchargement soit du paquet entier, soit des polices individuelles.
  • Naviguer dans le répertoire de la ou des polices nouvellement téléchargées. Trouvez les fichiers de police réels, se terminant généralement par .ttf – simultanément, ouvrez l’application native ‘Font Book’ qui est livrée avec OS X.
  • Glissez les fichiers de police ( .ttf ) directement dans la liste des polices de Font Book. Votre curseur devrait se transformer en un symbole ‘+’ vert lors du glissement. Relâchez le curseur, et vos polices seront installées.

3. D’autres options d’installation des polices sont détaillées dans le dépôt Github de nerd fonts, et comprennent l’installation via Homebrew, le script d’installation et le téléchargement curl ad hoc. Chacune a ses avantages/caveats- je recommande de lire le dépôt pour décider laquelle est la plus facile/la meilleure pour vos besoins.

4. Après avoir téléchargé et installé vos nerd fonts, ouvrez votre émulateur de terminal (iTerm ou Hyper), et appuyez sur Command + , . Cela ouvrira vos préférences utilisateur. Dans iTerm, cela se présentera sous la forme d’une fenêtre de dialogue GUI. Dans Hyper, cela ouvrira votre fichier de configuration Hyper, .hyper.js dans votre éditeur de texte par défaut.

  • Dans iTerm, les polices peuvent être définies dans les ‘Profils’ -> {nom du profil}. -> section ‘Texte’. Dans la section  » Texte « , accédez à la partie  » Police « . Remplacez la police principale par votre nouvelle police d’intello, et cochez la case « Utiliser une police différente pour le texte non ASCII ». Cochez cette case, ainsi que la case « Utiliser des ligatures ». Définissez la police secondaire à une police nerd, également. See below:

Your configuration should be similar.

In Hyper, within your .hyper.js configuration file in your text editor, navigate to the fontFamily tag. Replace the defaults with the names of your new nerd font(s).

Note: if you are not a programmer, be careful with your use of quotation marks. Multiple word font names with spaces will need their own surrounding quotes.

Your configuration should look something like the below, specifically, the portion surrounded in the blue box (you may disregard the other fields):

pictured: vs code with monoid nerd font, material darker syntax theme.

Now that you have Spaceship prompt and nerd fonts installed and selected within your terminal, you can begin customizing the prompt:

  1. Within the nerd fonts website, roughly two-thirds of the way down, there is a scrollable field that displays glyphs/icons and their corresponding codes. Any of these icons can be used in your prompt using Spaceship and a nerd font. Scroll through and find one or two that you like.

Note: the four-character glyph/icon codes must be preceded by \u , as shown below.

  1. Dans votre fichier .zshrc, collez ce qui suit après la section « theme »:
SPACESHIP_PROMPT_ADD_NEWLINE=”true”
SPACESHIP_CHAR_SYMBOL=” \uf0e7"
SPACESHIP_CHAR_PREFIX=”\uf296"
SPACESHIP_CHAR_SUFFIX=(" ")
SPACESHIP_CHAR_COLOR_SUCCESS=”yellow”
SPACESHIP_PROMPT_DEFAULT_PREFIX=”$USER”
SPACESHIP_PROMPT_FIRST_PREFIX_SHOW=”true”
SPACESHIP_USER_SHOW=”true”

Ce qui précède donnera à votre invite un aspect identique au mien, en supposant que vous ayez installé une police nerd. Si vous souhaitez changer les icônes dans l’invite, les champs SPACESHIP_CHAR_SYMBOL= et SPACESHIP_CHAR_PREFIX= sont ceux où vous brancherez les codes d’icône des polices nerd que j’ai notées ci-dessus. Vous pouvez ajouter des logos de langages de programmation, de frameworks et de bibliothèques. Vous trouverez également des glyphes, des flèches, des éclairs, des météores – pour ceux qui sont obsédés par la personnalisation, il y a de quoi travailler.

4. Un autre élément qui peut être intéressant dans mon terminal sont les icônes de dossiers/fichiers colorés. I’m using a ruby gem called « colorls »- which you can find here.

Colorls installation:

Colorls, once installed, adds some glyphs to your ls command, and can be configured to show informative reports, realign and reconfigure the output of ls, among many other options. Follow the installation instructions within the repository.

To get colorls to print every time the ls command is used, you will need to use an alias within your .zshrc file.

To configure this, head into your .zshrc file, and scroll to the very bottom.

Paste the following:

alias ls=’colorls — light — sort-dirs — report’
alias lc=’colorls — tree — light’

This will get your ls looking identical to mine. Additionally, inputting the lc command will print a tree-view version of ls. En guise d’avertissement, je ne recommande de faire cela que sur les petits répertoires – cela peut devenir lent lors de l’indexation de dossiers plus grands.

Notes finales sur mon invite:

Dans iTerm, j’utilise un schéma de couleurs appelé termnk – vous pouvez le trouver ici.

En outre, une longue liste de thèmes de couleurs iTerm se trouve ici.

Pour Hyper, ma configuration est la suivante :

plugins: ,

Mile 5 : Conclusion : Conseils, ressources, et où aller d’ici

À ce stade, vous devriez avoir un terminal zsh fonctionnel avec un excellent départ pour votre propre configuration personnalisée. Après avoir vu ma configuration personnelle, et potentiellement émuler des parties de celle-ci, vous devriez maintenant avoir une bonne idée de certaines des belles et infinies options disponibles pour le shell zsh sur Mac. Ce n’est cependant que le début du voyage. Ce guide n’a pas pour but d’être exhaustif – il y a tellement d’autres possibilités et de ressources incroyables pour modifier votre shell et votre flux de travail selon ce que vous voulez. Cette dernière partie est dédiée à la présentation de quelques ressources formidables pour poursuivre votre apprentissage et continuer à explorer à partir d’ici.

Lectures recommandées:

Il existe tellement d’autres plugins zsh incroyables qui peuvent aider à la recherche, à la greffe, à l’ajout d’écrans de veille à votre terminal comme pipes.sh, ou à des invites informatives au chargement comme Neofetch. Je recommande de lire à travers et de trouver quelques plugins supplémentaires pour convenir à votre flux de travail.

Similairement, un recueil de ressources utiles liées à toutes les choses zsh.

Une communauté axée sur le ricing / personnalisation de toutes les choses Unix. Alors que Linux est la force dominante ici, une recherche rapide pour ‘OSX’ vous net quelques exemples inspirants.

Comme indiqué, une liste curated de cadres, d’extensions et de ressources Terminal. C’est une excellente référence- fortement recommandée.

Une application interactive de test drive pour prévisualiser certaines des meilleures polices de programmation disponibles. La plupart/toutes sont gratuites, et ont une version patchée à télécharger sur nerd fonts.

La liste définitive des thèmes Hyper & plugins. Si vous décidez d’utiliser Hyper, cela devrait être l’un de vos premiers arrêts.

Conclusion:

Continuez à explorer et à travailler sur votre expérience du terminal. S’enthousiasmer sur la façon dont votre ligne de commande se présente et se sent va vous aider à être plus enthousiaste à l’idée d’apprendre à l’utiliser, de programmer (le cas échéant), et c’est tout simplement amusant.

A mesure que plus d’utilisateurs entrent dans le monde de la personnalisation de la ligne de commande, plus d’options et d’innovations vont certainement suivre. Malgré le fait que Linux a généralement plus de support pour ce type de personnalisation, j’espère que cela a ouvert les yeux de certains lecteurs sur certaines des configurations de terminal impressionnantes possibles dans OS X.

Voir mon autre travail couvrant la personnalisation de l’icône Mac & dock ici.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.