お前らのターミナルはダサい(Windows版)

# お前らのターミナルはダサい(Windows版)

## 初めに

元記事はこちらです:[お前らのターミナルはダサい](https://qiita.com/kinchiki/items/57e9391128d07819c321)
参考にさせていただきました。

標準のcmd、PowerShellの見た目があまりにも悪かったので改良した知見をまとめます。
また、既存の記事はフォントの変更等の内容が多かったので全体的な改良を行い少しでも役に立てばと思い執筆しました。

## 完成イメージ

![powersehll.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/552830/6e90f98b-6793-731e-bf14-b0565a31bdea.png)

| 設定項目 | 値 |
| --- | --- |
| 配色 | One Half Dark |
| フォント | JetBrains Mono |
| フォントサイズ | 13 |
| 透明度 | 70% |
| パディング | 20 |

他の設定は標準だったと思います。

現在の自分のターミナルの設定はここから見れます。（よく変わります）
参考になれば嬉しいです。

https://github.com/Namacha411/dotfiles

## 環境

windows11 Home 21H2

```powershell
$PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.2.5
PSEdition                      Core
GitCommitId                    7.2.5
OS                             Microsoft Windows 10.0.22000
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
```

## シェル

cmdを使っている人はまずpowershellに変えましょう。

## プロンプト

[starship](https://starship.rs/ja-jp/guide/)を使います。

ドキュメントが日本語に翻訳されており、とても簡単に利用することができます。
インストール方法、詳しい使い方、などすべて公式ドキュメントにまとめてあるので導入、設定はそちらをご覧ください。

## フォント

フォントは好きなものを選んでください。
ただし、上記のstarshipを利用する場合、NerdFontがインストールされていないと、きちんと表示されない部分が出てしまうため注意してください。

おすすめは、[JetBrains Mono](https://www.jetbrains.com/ja-jp/lp/mono/)です。
とても読みやすいです。
たまに一部表示できない文字がありますが、気にならない程度には読みやすいです。

## ターミナルエミュレータ

[Windows Terminal](https://www.microsoft.com/ja-jp/p/windows-terminal/9n0dx20hk701?rtc=1&activetab=pivot:overviewtab)を使います。

配色やフォント、半透明化が簡単に行え、手軽に見やすく好みにすることができます。

## コマンド

概要:[ls よりも exa を使おう！モダンな Linux コマンド達を紹介](https://qiita.com/navitime_tech/items/c249269a3b47666c784b)

モダンなLinuxコマンドとタイトルにありますが、GitHubに公開されているRustのコードはほとんどがWindowsに向けてもコンパイルできます。
使うのがLinuxだけではもったいないので便利なものはWindowsでも使いましょう。

### lsの代替

[exa](https://github.com/ogham/exa)を使います。

自分のwindowsではcargoからインストールするときにエラーが起きました。
以下のコマンドを使うことでインストール出来ました。

```powershell
cargo install --no-default-features --git https://github.com/skyline75489/exa.git --branch chesterliu/dev/win-support
```

詳しくは[このPR](https://github.com/ogham/exa/pull/820)で話題にされていますのでご確認ください。

### cat, Select-String, where, などの代替

リンク先の記事にあるリポジトリのREADMEに書いてある通りにインストールすることで使えるようにできた気がします。
うまくいかない場合などがあった場合申し訳ありません。もし、あればご連絡下さい。

## エイリアス

`Microsoft.PowerShell_profile.ps1`に`Set-Alias`コマンドで設定できるようです。
プロファイルのパスは、

```powershell
$profile
```

で確認できます。
exaやbatに慣れず、元のcmd、powershellで利用していたコマンドを使いたいという方はここから設定できます。

## PSReadLine

PSReadLineという機能が追加されました。
予測インテリセンスなどが使えるようになり、強力なコマンドライン編集ツールとして使用できます。

自分の場合はこれらをプロファイルに書いています。

```powershell
Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete # Tabキーで補完
Set-PSReadlineOption -HistoryNoDuplicates # 重複しないようにする
Set-PSReadLineOption -PredictionSource History # 予測インテリセンス
Set-PSReadLineKeyHandler -Key "Ctrl+f" -Function ForwardWord # Ctrl+fで補完されたものに決定する
```

公式ホームページに細かく書いてあります。

https://docs.microsoft.com/ja-jp/powershell/module/psreadline/about/about_psreadline?view=powershell-7.2

## 終わりに

多少めんどくさいですが、かなり見やすくなり、作業効率も上がると思います。
~~正直WSLを使えばより簡単にきれいなターミナルができ、情報量も多いです。~~

ご指摘、誤字・脱字等あれば連絡をお願いします。

## 追記 (2021/10/31)

1.上記の設定を行ったところ、他に何もした覚えはないのですが（していたらすみません）、文字コードがutf-8になっていました。
日本語のwindwosの標準の文字コードはshift-jisだった気がします。
原因はstarshipだと考えているのですが、詳しい情報が見つかりません。
どこで設定しているかご存じの方は教えていただけると嬉しいです。

2.環境の情報を追加しました

## 追記 (2022/07/23)

1. 完成イメージの設定項目を追記しました。
2. PowerShellをアップデートし、新しく追加された機能について追記しました。
3. 参考にできるよう自分のdotfileを貼っておきました。