<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: William Leemans</title>
    <description>The latest articles on DEV Community by William Leemans (@ly4m).</description>
    <link>https://dev.to/ly4m</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F454338%2F9fa86536-95db-4e7d-a185-cd1838b6c219.jpeg</url>
      <title>DEV Community: William Leemans</title>
      <link>https://dev.to/ly4m</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ly4m"/>
    <language>en</language>
    <item>
      <title>Level up your macOS terminal - Part One</title>
      <dc:creator>William Leemans</dc:creator>
      <pubDate>Tue, 08 Sep 2020 16:49:00 +0000</pubDate>
      <link>https://dev.to/jetdev/level-up-your-macos-terminal-part-one-2lg7</link>
      <guid>https://dev.to/jetdev/level-up-your-macos-terminal-part-one-2lg7</guid>
      <description>&lt;p&gt;About a year ago I changed my development computer from Windows to macOS. I always loved to customize, optimize and find the best tooling available to help me develop.&lt;/p&gt;

&lt;p&gt;In Part One of this guide, we'll go through all the setup related to the terminal itself.&lt;/p&gt;

&lt;p&gt;Part Two is a collection of the complementary tools I like.&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;a href="https://brew.sh" rel="noopener noreferrer"&gt;Homebrew&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;In this guide, I'll use Homebrew to easily install everything on my computer. &lt;/p&gt;

&lt;p&gt;It's a well-known packet manager for macOS, even though it's not always the best way to install everything, it's many times the easiest way.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;p&gt;simply paste the following in your terminal :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/bin/bash &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/Homebrew/install/master/install.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Terminal Setup
&lt;/h1&gt;

&lt;p&gt;I would recommend you to choose between these two terminal emulator : &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://sw.kovidgoyal.net/kitty/" rel="noopener noreferrer"&gt;Option 1 : Kitty&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;With the offloading of the rendering to the GPU Kitty offers greater performances. &lt;/p&gt;

&lt;p&gt;To install simply follow the &lt;a href="https://sw.kovidgoyal.net/kitty/binary/" rel="noopener noreferrer"&gt;Quick start guide&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://www.iterm2.com/" rel="noopener noreferrer"&gt;Option 2 : Iterm 2&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Firstly we'll replace the default Terminal by Iterm2, it has many great &lt;a href="https://iterm2.com/features.html" rel="noopener noreferrer"&gt;features&lt;/a&gt;, can display icons and has better support of Unicode.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt; brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--cask&lt;/span&gt; iterm2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Customization
&lt;/h3&gt;

&lt;p&gt;One of the most important customization steps is to choose a colour scheme that suits you.&lt;/p&gt;

&lt;p&gt;You can find a list of the official iTerm2 themes here :  &lt;a href="https://iterm2colorschemes.com/" rel="noopener noreferrer"&gt;https://iterm2colorschemes.com/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can also browse and create your own on &lt;a href="http://terminal.sexy/" rel="noopener noreferrer"&gt;http://terminal.sexy/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ZSH
&lt;/h2&gt;

&lt;p&gt;Since macOS 10.15 Catalina, zsh is the default shell it is a highly customizable shell, designed to be interactive.&lt;/p&gt;

&lt;p&gt;It has amazing completion capabilities, a smarter shared history and anything you know in bash still works!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://ohmyz.sh/" rel="noopener noreferrer"&gt;Oh My Zsh&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Zsh comes with a huge list of plugins, to help with managing them we'll use the best ZSH configuration manager: Oh My Zsh.&lt;/p&gt;

&lt;h4&gt;
  
  
  Installation
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sh &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  usage
&lt;/h4&gt;

&lt;p&gt;To enable a plugin you just have to edit plugin list in the .zshrc located in your &lt;code&gt;$HOME&lt;/code&gt; directory &lt;code&gt;vi ~/.zshrc&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For example, here is mine :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;plugins=(git
         z                                                                         
         zsh-interactive-cd
         git-auto-fetch
         kubectl
         zsh-autosuggestions
         zsh-syntax-highlighting)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h5&gt;
  
  
  Plugins
&lt;/h5&gt;

&lt;p&gt;A collection of my favourites plugins for zsh :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md#oh-my-zsh" rel="noopener noreferrer"&gt;Syntax Highlighting&lt;/a&gt;: Add some syntax highlighting when you type in your terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fse1bjabrg2jzgssqusnk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fse1bjabrg2jzgssqusnk.png" alt="an example of syntax highlight"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md#oh-my-zsh" rel="noopener noreferrer"&gt;Auto Suggestion&lt;/a&gt;: Provide suggestions based on either tab completion or your history.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhi6nz3gwvopu9gd4xiep.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhi6nz3gwvopu9gd4xiep.png" alt="an exemple of auto suggestion"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/junegunn/fzf" rel="noopener noreferrer"&gt;FZF - Fuzzy finder&lt;/a&gt;: Provide a fuzzy finder for looking through anything, I use it mostly to search files or commands in my history. It is required by zsh-interactive-cd&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fouumgqy51t4x3n5aq7d4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fouumgqy51t4x3n5aq7d4.png" alt="Fzf with preview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See Part Two of this guide to know how you can plug it to bat and ripgrep to enable syntax colouring in preview and lightning-fast performances!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/z" rel="noopener noreferrer"&gt;Z&lt;/a&gt;: Provide you access to Z which tracks your most visited directories and allows you to access them very quickly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ffkqy8dp7cxc5rvodfboj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ffkqy8dp7cxc5rvodfboj.png" alt="z example"&gt;&lt;/a&gt;&lt;br&gt;
Here I just typed 'z mac' and got moved to my macOS-setup repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  Theming
&lt;/h2&gt;

&lt;p&gt;There are a lot of available themes listed on the &lt;a href="https://github.com/ohmyzsh/ohmyzsh/wiki/Themes" rel="noopener noreferrer"&gt;official page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;They can be enabled by setting the ZSH_THEME value to the name of the theme in your &lt;code&gt;~/.zshrc&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;More themes can be found on the internet, I use the &lt;a href="https://github.com/romkatv/powerlevel10k#oh-my-zsh" rel="noopener noreferrer"&gt;PowerLevel 10K Theme&lt;/a&gt; which I love for its look and the ease of customization through an interactive prompt. &lt;/p&gt;

&lt;p&gt;Stay tuned for part 2 where we'll go into more tools to improve your daily terminal usage!&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
  </channel>
</rss>
