本記事は東京学芸大学 櫨山研究室 Advent Calendar 2020の六日目の記事になります.
はじめに
本記事はWindowsのターミナル環境を良い感じに整えるというものです.
なお本記事はターミナル環境にGit bashを押すため,
- 「学生時代はmacを使っていたけど会社支給のPCはWindows…」
- 「お金がないのでmacは買えないけどwindowsでmacOS/Linuxに近い開発体験がしたい!」
のようなことを考えたことがある方向けの内容になります,ご了承ください🙇♂️
概要
- Git bashを使おう
- Windows Terminalを使おう
- PureLineでプロンプトを見やすくしよう
-
.bash_profile
,.bashrc
を書こう
完成形
完成形としては以下の画像のようになります.
Git bashのインストール
Git bashはコマンドラインからgitを利用するためのbashエミュレータです.
Windowsに標準でインストールされているPowerShellもlinuxコマンド風の命令をサポートしていますがGit bashの方が使用感が断然良いです.
(まあbashなので当然なのですが…)
パッケージ管理ソフトウェアのScoopのインストールがインストールされていれば以下のコマンドでインストール可能です.
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
バケットを追加した後にインストールすることが可能です.
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つです.
-
bash.exe
のパス - Git bashのiconファイルのパス
- Git bashに割り当てるGUID
bash.exe
のパスの確認
where 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で以下のコマンドで取得することができます.
PS> [guid]::NewGuid()
settings.json
に追記してGit bashを利用できるようにする
上で取得した情報を元にsettings.json
を編集していきます.
settings.json
のprofiles
=> list
要素に以下のスキーマを追加します.
{
"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"
}
ここまでの設定をするとWindows TerminalでGit bashを起動することができます✨
きちんと起動していますね✨
ただ,このままだと使いづらいので設定を追加していきましょう!
以下の設定をします.
- デフォルトの起動ディレクトリをHOMEディレクトリにする
-
exit
コマンドでwindowが閉じるようにする - タブ名を
Git bash
で固定にする - ダークテーマにする
1と2は先ほどの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.json
のdefaultProfile
,theme
属性を編集します.
(theme
はデフォルトではなかったので追記しています.)
"defaultProfile": "{取得したGUID}",
"theme": "dark",
わかりにくいので追加位置のスクショを載せておきます.
Git bashのカスタマイズ
Git bashのプロンプトをカスタマイズします.
今回はPureLineを利用します.
[画像出典元] chris-marsh/pureline, https://github.com/chris-marsh/pureline
Cascadia Code PL
フォントのインストールと設定
PureLine
を正しく表示するためにフォントを追加しておく必要があります.
今回はMicrosfotが提供するCascadia Code PL
フォントを使用します.
以下のリンクからダウンロードできます.
CascadiaCode-2009.22.zip
をダウンロードして展開します.
otf/static
配下のCascadiaCodePL-Regular.otf
をクリックしてインストールします.
Windows TerminalのフォントをCascadia Code PL
にする
settings.json
のprofiles
=>defaults
にする設定は全てのターミナルで共通になります.
"fontFace": "Cascadia Code PL"
PureLineのインストール
PureLineをGitHubからcloneして適用します.
$ git clone https://github.com/chris-marsh/pureline.git
$ cp pureline/configs/powerline_full_256col.conf ~/.pureline.conf
以下のコマンドでPureLineを有効にできます.
$ source ~/pureline/pureline ~/.pureline.conf
.pureline.conf
の編集
.pureline.conf
を編集することで見た目を整えることができます.
例えば,PL_USER_SHOW_HOST
をデフォルトのtrue
からfalse
にすることでコンピュータ名を表示しないようにできます.
良い感じのプロンプトになりました✨
bash_profile
,bashrc
の設定をする
bashではbash_profile
,bashrc
を利用して色々と設定をすることができます.
bash_profile
はログイン時にbashrc
はインタラクティブモードのbashを起動する際に毎回実行されます.
- 言語設定を日本語にする
-
winpty
を有効にした状態でbashを起動する - PureLineを有効にした状態で起動する
- エイリアスを設定しよう
言語設定を日本語にする
環境変数LNAG
をja_JP.UTF-8
に設定します.
これはログイン時に設定すれば良いので.bash_profile
に記述します.
# lang
export LANG=ja_JP.UTF-8
winpty
を有効にした状態でbashを起動する
Git bashではPythonやMySQLなどの一部コマンドではwinpty
を先頭につけないと実行できない.
この現象は標準入力や標準出力の文字コードが絡んでいるようです.
解決策としては.bash_profile
でbashログイン時にwinpty bash
として起動してしまいます.
# winpty
exec winpty bash
PureLineを有効にした状態で起動する
先ほどは手動で行っていたpurelineの起動をbash起動時に有効にします.
こちらの設定は.bashrc
に記述します.
# pureline
source ~/pureline/pureline ~/.pureline.conf
エイリアスを設定しよう
alias
はコマンドの別名です.
ここでは個人的にmacで便利だと思っている2つのコマンドを登録しておきます.
macを使っているとopen
コマンドでディレクトリをFinderで開くことがあります.
これに近いwindowsのコマンドとしてexplorer
があります.
そこでaliasを貼ることで近い使用感にすることができます.
pbcopy
は標準出力の内容をクリップボードに流せるmacのコマンドです.
windowsだとclip
コマンドが近い動きをします.
# mac風のaliasを設定する
alias open='explorer'
alias pbcopy='clip'
以上で完成です!
おわりに
今回はwindowsのターミナル環境を良い感じにする設定を紹介しました.
ターミナル環境は開発者一人ひとりで好みが異なると思いますので,各々で弄って理想の環境に近づけていきましょう💪