俺のターミナル環境を晒す 2021

~ 見た目だけじゃない!高機能かつ高速な環境を Git で管理しよう! ~



Presented by いの

から皆のターミナル環境も教えてほしい(本音)

ターミナルって?

俺のターミナル環境を晒す 2021
ターミナルとは

正式名称なんだろうね?

  • 端末エミュレータ
  • コマンドラインエミュレータ
  • コンソール

h:400px center

俺のターミナル環境を晒す 2021

0. ターミナルの話と言えば…

俺のターミナル環境を晒す 2021
0. 『おまえらのターミナル』と言えば…

あの有名ブログが思い浮かぶ

h:400 center

  • 2019 年夏に Qiita に投稿された、@kinchiki 氏による記事
  • 釣りタイトルと揶揄されることもあるが、ターミナルの見た目が大事であることは間違いない。
俺のターミナル環境を晒す 2021

1. 私のターミナル史

俺のターミナル環境を晒す 2021
1. 私のターミナル史

1.1. 2019 年初期の私のターミナル

h:320 center

  • こういう環境で作業してた。正気か?
  • 更に遡ると、そもそも WSL ではなく Git for WindowsCygwin を使っていた。
  • 「Windows は開発に向かない」と言われても仕方ないね…。
俺のターミナル環境を晒す 2021
1. 私のターミナル史

1.2. 2019 年後期のターミナル

h:320 center

  • かなり進化した。
  • Cmder と呼ばれるターミナルエミュレータを導入したことで、WSL をカスタマイズ可能に。
  • プロンプトは Powerline でデザイン。(実はこの時作ったものを今でもベースとして使っている)
俺のターミナル環境を晒す 2021

1.3. 2021 年現在の私のターミナルは…

俺のターミナル環境を晒す 2021
1. 私のターミナル史

美しい…

h:500px center

俺のターミナル環境を晒す 2021

2. こだわりポイント解説

ここからが本題です

俺のターミナル環境を晒す 2021
2. こだわりポイント解説

3 つのポイント

見た目:Powerlevel10K

機能:zinit / fzf

管理:dotfiles

俺のターミナル環境を晒す 2021
2. こだわりポイント解説

2.0. 構成

  • OS: WSL2
  • シェル:Zsh
  • プラグインマネージャ:zinit (旧名 zplugin)
  • カラープラグイン:Powerlevel10k
  • 補足
    • vimmer じゃないので vim のプラグイン管理はしていない
    • tmux の設定も最低限
    • なので本格派には怒られそう 😅
俺のターミナル環境を晒す 2021

ターミナルの見た目をカラフルにしたい…

俺のターミナル環境を晒す 2021
2. こだわりポイント解説

2.1. 見た目:Powerlevel10K

特長

  • 見やすく、情報量の多いプロンプト
    • パス、Git、OS アイコン、日付時刻
    • その他仮想環境の情報など
  • ls コマンドの適切な色分け (違うかも)
  • 高速 ← 大事
  • Windows Terminal は神。

課題

  • ドキュメントが渋い 😠
  • 9K の設定ベタ書きをそのまま移行している
俺のターミナル環境を晒す 2021

Zsh のプラグインを管理したい…

俺のターミナル環境を晒す 2021
2. こだわりポイント解説

2.2.1. 機能:zinit

特長

  • 高速なプラグインマネージャ
    • 有名な Zplug や OhMyZsh と比較して圧倒的
  • 簡単に導入できる
    • .zshrc に書き込むだけ
  • 充実したプラグイン
    • No autocomplete/autosuggestions, No Life.
    • OMZ や Prezto の部分機能も取り入れられる

課題

  • ドキュメントが渋い 😡
    • どのコマンドでどうなるのかが分からない
    • 先人は神 👼
俺のターミナル環境を晒す 2021

もっと高速にターミナルを操作したい…

俺のターミナル環境を晒す 2021
2. こだわりポイント解説

2.2.2. 機能: ⭐ fzf ⭐

特長

  • 全人類使え。
  • fzf コマンドに渡すだけで、
    標準出力の結果を曖昧検索(=fuzzy finder)してくれる
  • 例 1:find . | fzf
俺のターミナル環境を晒す 2021
2. こだわりポイント解説

2.2.2. 機能:⭐ fzf ⭐

特長

  • プレビュー機能が死ぬほど便利
    • 神。
    • peco にはない機能
  • 例 2:強化版 cd
    • cdr (ディレクトリ履歴)
          +
      tree (ファイルのツリー表示)
俺のターミナル環境を晒す 2021
2. こだわりポイント解説

2.2.2. 機能:⭐ fzf ⭐

特長

  • 例 3:強化版 git add

h:400px center

俺のターミナル環境を晒す 2021

環境構築、一発で終わらせたくない?

俺のターミナル環境を晒す 2021
2. こだわりポイント解説

2.3. 管理:dotfiles

  • dotfiles とは、~/.bashrc~/.gitconfig など
  • 転じて、これらの設定ファイルの Git リポジトリを指す。
    • GitHub で検索すると、148k 個もヒット!
    • 24k スターを獲得しているレポジトリも。
  • 特におすすめな人 より引用

h:250px center

俺のターミナル環境を晒す 2021
2. こだわりポイント解説

作ってみた

俺のターミナル環境を晒す 2021
2. こだわりポイント解説

やってみた

俺のターミナル環境を晒す 2021
2. こだわりポイント解説

俺のターミナル環境を晒す 2021
2. こだわりポイント解説

まとめ

俺のターミナル環境を晒す 2021
2. こだわりポイント解説

みんなも dotfiles を公開して知見を共有しよう!

俺のターミナル環境を晒す 2021

(何かしらの)端末として動作するソフトウェアを指すことが一般的 様々なOS上で様々なシェルを使い、開発する

今日取り上げるのは、TeraTermやPuTTYなどのSSHクライアントなどではなく、 ふつうのGUIターミナルアプリケーションです。 MACで言えば標準のターミナルやiTerm2など、Windowsで言えばmintty。

Cygwin:UNIX系コマンドを入力できるような偽物 (それを言ったらWSL1も互換レイヤなのでニセモノだけど…) 当時はWindowsでまともにUNIX系コマンドを操作することは出来ませんでした。 しかしあまり知識を持ち合わせていない僕はそれほど苦に感じていない節もありました。無知は怖い。

- Prezto のような独自管理機能は無く、 ただ `~/.zinit` にインストールされるだけ