4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

東京学芸大学 櫨山研究室Advent Calendar 2020

Day 6

Windows TerminalでWindowsのターミナル環境を良い感じに整える

Last updated at Posted at 2020-12-06

本記事は東京学芸大学 櫨山研究室 Advent Calendar 2020の六日目の記事になります.

はじめに

本記事はWindowsのターミナル環境を良い感じに整えるというものです.

なお本記事はターミナル環境にGit bashを押すため,

  • 「学生時代はmacを使っていたけど会社支給のPCはWindows…」
  • 「お金がないのでmacは買えないけどwindowsでmacOS/Linuxに近い開発体験がしたい!」

のようなことを考えたことがある方向けの内容になります,ご了承ください🙇‍♂️

概要

  • Git bashを使おう
  • Windows Terminalを使おう
  • PureLineでプロンプトを見やすくしよう
  • .bash_profile.bashrcを書こう

完成形

完成形としては以下の画像のようになります.

image.png

Git bashのインストール

Git bashはコマンドラインからgitを利用するためのbashエミュレータです.
Windowsに標準でインストールされているPowerShellもlinuxコマンド風の命令をサポートしていますがGit bashの方が使用感が断然良いです.
(まあbashなので当然なのですが…)

パッケージ管理ソフトウェアのScoopのインストールがインストールされていれば以下のコマンドでインストール可能です.

PowerShell
PS> scoop install git

#Windows Terminal

Windows TerminalはMicrosoftが開発をしているターミナルソフトウェアです.
同じインターフェースでコマンドプロンプト,PowerShell,WSLのUbuntuに組み込まれているBash,Azure Cloud Shellなどを利用することができます.
これにより混沌としていたWindowsのターミナル環境を一つにまとめることができます.

[画像引用元] What is Windows Terminal?, https://docs.microsoft.com/ja-jp/windows/terminal/

Windows Terminalでは標準で画面分割などができます!

alt+shift++で右側に分割,alt+shift+-で下側に分割します.
alt+←↓↑→で分割した画面の行き来ができます.

Windows Terminalのインストール

Scoopをインストールしていればextrasバケットを追加した後にインストールすることが可能です.

PowerShell
PS> scoop bucket add extras
PS> scoop install windows-terminal

Windows TerminalでGit bashを使えるようにする

デフォルトではWindows TerminalはGit bashに対応していません.
設定ファイルを編集することで使えるようにします.

はじめにWindows Terminalを起動します.

windows terminalを起動した状態でctrl + ,を入力するとsettings.jsonがメモ帳で開かれます.
windows terminalではVSCodeと同様にsettings.jsonで設定の管理が可能です.

settings.jsonにGit bashの設定を追加するために調べておく必要がある情報は以下の3つです.

  1. bash.exeのパス
  2. Git bashのiconファイルのパス
  3. Git bashに割り当てるGUID

bash.exeのパスの確認

where bashコマンドで調べることができます.

Git_bash
$ where bash

なおScoopを使ってインストールしている場合はデフォルトで以下のパスになります,

C\Users\{ユーザー名}\scoop\apps\git\current\bin\bash.exe

Git bashのiconファイルのパス

Git bashのアイコンフィルはgit-for-windows.icoという名前になります.
Scoopを使ってインストールしている場合はデフォルトで以下のパスになります.

C\Users\{ユーザー名}\scoop\apps\git\current\mingw64\share\git\git-for-windows.ico

Git bashに割り当てるGUIDの取得

Windows Terminalでは新しいCUIを追加する際にGUIDを割り当てる必要があります.
GUIDはPowerShellで以下のコマンドで取得することができます.

PowerShell
PS> [guid]::NewGuid()

settings.jsonに追記してGit bashを利用できるようにする

上で取得した情報を元にsettings.jsonを編集していきます.
settings.jsonprofiles => list要素に以下のスキーマを追加します.

settings.json
{
  "guid": "{取得したGUID}",
  "commandline": "C:\\Users\\{ユーザー名}\\scoop\\apps\\git\\current\\bin\\bash.exe --login",
  "icon": "C\\Users\\{ユーザー名}\\scoop\\apps\\git\\current\\mingw64\\share\\git\\git-for-windows.ico",
  "name": "Git bash"
}

image.png

ここまでの設定をするとWindows TerminalでGit bashを起動することができます✨

image.png

image.png

きちんと起動していますね✨

ただ,このままだと使いづらいので設定を追加していきましょう!
以下の設定をします.

  1. デフォルトの起動ディレクトリをHOMEディレクトリにする
  2. exitコマンドでwindowが閉じるようにする
  3. タブ名をGit bashで固定にする
  4. ダークテーマにする

1と2は先ほどのsettings.jsonのスキーマに追加するだけでできます.

settings.json
{
  "guid": "{取得したGUID}",
  "commandline": "C:\\Users\\{ユーザー名}\\scoop\\apps\\git\\current\\bin\\bash.exe --login",
  "icon": "C\\Users\\{ユーザー名}\\scoop\\apps\\git\\current\\mingw64\\share\\git\\git-for-windows.ico",
  "name": "Git bash",
  "closeOnExit": true,
  "startingDirectory" : "%USERPROFILE%",
  "tabTitle": "Git bash",
  "suppressApplicationTitle": true
}

デフォルトでGit bashが起動する設定とダークテーマの設定はsettings.jsondefaultProfiletheme属性を編集します.
(themeはデフォルトではなかったので追記しています.)

setting.json
 "defaultProfile": "{取得したGUID}",
 "theme": "dark",

わかりにくいので追加位置のスクショを載せておきます.

image.png

Git bashのカスタマイズ

Git bashのプロンプトをカスタマイズします.
今回はPureLineを利用します.

[画像出典元] chris-marsh/pureline, https://github.com/chris-marsh/pureline

Cascadia Code PLフォントのインストールと設定

PureLineを正しく表示するためにフォントを追加しておく必要があります.
今回はMicrosfotが提供するCascadia Code PLフォントを使用します.
以下のリンクからダウンロードできます.

image.png

CascadiaCode-2009.22.zipをダウンロードして展開します.
otf/static配下のCascadiaCodePL-Regular.otfをクリックしてインストールします.

image.png

Windows TerminalのフォントをCascadia Code PLにする

settings.jsonprofiles=>defaultsにする設定は全てのターミナルで共通になります.

settings.json
  "fontFace": "Cascadia Code PL"

image.png

PureLineのインストール

PureLineをGitHubからcloneして適用します.

Git_bash
$ git clone https://github.com/chris-marsh/pureline.git
$ cp pureline/configs/powerline_full_256col.conf ~/.pureline.conf

以下のコマンドでPureLineを有効にできます.

Git_bash
$ source ~/pureline/pureline ~/.pureline.conf

image.png

.pureline.confの編集

.pureline.confを編集することで見た目を整えることができます.
例えば,PL_USER_SHOW_HOSTをデフォルトのtrueからfalseにすることでコンピュータ名を表示しないようにできます.

image.png

良い感じのプロンプトになりました✨

bash_profilebashrcの設定をする

bashではbash_profilebashrcを利用して色々と設定をすることができます.
bash_profileはログイン時にbashrcはインタラクティブモードのbashを起動する際に毎回実行されます.

  • 言語設定を日本語にする
  • winptyを有効にした状態でbashを起動する
  • PureLineを有効にした状態で起動する
  • エイリアスを設定しよう

言語設定を日本語にする

環境変数LNAGja_JP.UTF-8に設定します.
これはログイン時に設定すれば良いので.bash_profileに記述します.

bash_profile
# lang
export LANG=ja_JP.UTF-8

winptyを有効にした状態でbashを起動する

Git bashではPythonやMySQLなどの一部コマンドではwinptyを先頭につけないと実行できない.
この現象は標準入力や標準出力の文字コードが絡んでいるようです.

解決策としては.bash_profileでbashログイン時にwinpty bashとして起動してしまいます.

bash_profile
# winpty
exec winpty bash

PureLineを有効にした状態で起動する

先ほどは手動で行っていたpurelineの起動をbash起動時に有効にします.
こちらの設定は.bashrcに記述します.

.bashrc
# pureline
source ~/pureline/pureline ~/.pureline.conf

エイリアスを設定しよう

aliasはコマンドの別名です.
ここでは個人的にmacで便利だと思っている2つのコマンドを登録しておきます.

macを使っているとopenコマンドでディレクトリをFinderで開くことがあります.
これに近いwindowsのコマンドとしてexplorerがあります.
そこでaliasを貼ることで近い使用感にすることができます.

pbcopyは標準出力の内容をクリップボードに流せるmacのコマンドです.
windowsだとclipコマンドが近い動きをします.

.bashrc
# mac風のaliasを設定する
alias open='explorer'
alias pbcopy='clip'

以上で完成です!

おわりに

今回はwindowsのターミナル環境を良い感じにする設定を紹介しました.

ターミナル環境は開発者一人ひとりで好みが異なると思いますので,各々で弄って理想の環境に近づけていきましょう💪

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?