Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

最高のターミナルを作る2019

1. ターミナルエミュレータを選ぶ

まず端末をきちんと選びましょう。どれも同じに見えますが、フォントが効かなかったり透過できなかったり、意外と違いがあります。下の画像を見れば一目瞭然です。

f:id:panda_noir:20191202115057p:plain
左: Alacritty 右: gnome-terminal

主要なターミナルエミュレータとしてはこんな感じです。

  • gnome-terminal
  • Terminal.app
  • xfce-terminal
  • Alacritty
  • terminator
  • Hyper.js
  • urxvt
  • iTerm2

チェックポイントとしてはこんなものが挙げられます。

  • 画像が表示できるか?
  • Nerd Fontを正しく表示できるか?
  • 透過設定ができるか?
  • 背景画像が設定できるか?
  • ウィンドウ枠を消せるか?
  • 日本語がちゃんとストレスなく入力できるか?

僕はPowerline系のUIを使っているので、NerdFontが効かないとちょっと表示が崩れてしまいます。ウィンドウ枠が消せるか、透過ができるか、背景画像を設定できるかは好みの問題ですね。

これらすべてを満たしていて、なおかつパフォーマンス的に問題がなかったのは今の所xfce-terminal、terminatorですね。次点でAlacrittyです(Ubuntu環境なのでMacについてはわかりません)。ほかは色々と足りなすぎます。

Xfce-terminalは設定を特にいじらなくてもまともに使えるので、かなりオススメです。設定をいじるのが苦痛でない楽しいならAlacrittyは最高です。ほかはウィンドウ枠があったり透過できなかったり、やや不格好でもいいならGNOME Terminalはなんだかんだ良い選択肢になりえます。

2. シェルを選ぶ

ぼくはシェルとしてzshを使っています。理由はいくつかあります。

  • Bash Scriptの知識を流用できる(多少差異はある)
  • 補完が有用
  • 補完の自作ができる
  • プラグインが豊富
  • Bashより使いやすい

fishなど独自のスクリプトを採用しているシェルは、どうしてもbash scriptより情報が少ないです。そのため、やりたいことを実現するのが困難なことが多いです。また、互換性がないため、部分的にbashへ切り替えなければならず、めんどうなことが多いです。

Bash scriptはクソです。しかし、いかんせん歴史が長いので、なにか問題が起こっても解決がしやすいです。また、多少難しい設定でもサラサラと書けてブラックボックス化しづらいです(全然リーダブルじゃないし、高度なことをすると地獄を見ますが)。

3. ツールを入れる

おすすめのツールを紹介します。

exa

Rust製のalternative ls。lsよりもカラフルで見やすく、オプションがわかりやすいです。また、ツリー表示といったlsにはない機能も搭載されています。

f:id:panda_noir:20191202114410p:plain

f:id:panda_noir:20191202114706p:plain

bat

Rust製alternative cat。lessの表示機能とcatの結合機能・パイプライン機能を組み合わせた感じです。シンタックスハイライト付きで表示されます。

f:id:panda_noir:20191202114438p:plain

httpie

HTTPクライアント。curlやwgetよりもオプションがわかりやすいです。カラフルで読みやすいのもNiceです。

f:id:panda_noir:20191202114448p:plain f:id:panda_noir:20191202114500p:plain

ranger

ファイラー。なんと、コマンドライン上で画像プレビューまでできます。Vimライクな操作感で使いやすいです。

f:id:panda_noir:20191202114510p:plain

Neovim

特に語るまでもない。最高のエディタ。

tty-clock

デジタル時計。ターミナル上で時間を知りたいときに便利です。僕は競プロのコンテストが始まるときに使っています。

f:id:panda_noir:20191202114520p:plain

4. カラースキーム

Nordというプロジェクトを非常に気に入って愛用しています。色合いが最高にCoolです。Vim、Tmux、各種ターミナルに対応しているので、すべてで導入しました。うえの画像のような青みがかった黒が基調のテーマになっています。

Nord