はじめに
自分が主にMacで使ってるテキストエディタVSCodeを使用しながら設定を少しずつ弄ったきたので、色々学習してきた内容を書きはじめる前に、まずはその紹介と使ってみた感想を述べていきます(長くなりそうなので、3回に分けて記事を書きます)。
前提条件
- macOS Catalina ( バージョン 10.15.7 )
- Visual Studio Code.app ( バージョン 1.55.2 )
- Terminal.app ( バージョン 2.10 )
※これらのバージョンはこの記事を書いた時のものであり、設定時のバージョンはこれよりも古い可能性があります。
環境設定
主に、以下の5つを実施しました。
- 拡張機能の追加
- テーマ(拡張機能の一つ)の実装
- 表示されるプロンプトを短くかつ見やすくする
- 設定項目一覧から幾つかの項目を変更
- キーバインド
ここでは上の5つの内から、
3. 表示されるプロンプトを短くかつ見やすくする
について書いていきます。
3. 表示されるプロンプトを短くかつ見やすくする
ターミナルのデフォルトのプロンプトは、とにかく長ったらしくて見づらい。即改善すべし!
プロンプトの各パラメータを調べる
まずは、プロンプトを弄れるファイルを探して開きたいので、cd ~
かcd
とターミナルに打ってホームディレクトリにれっつごー(☝ ՞ਊ ՞)☝
シェルはzshなので、vim .zshrc
もしくはvi .zshrc
で*.zshrc*を開く。このようなドット.で始まる設定ファイルは、VSCode等のソフトでは編集できない。
中身を見ると、
(省略)
PS1="%n@%m %1~ %# "
(省略)
という記述がある。調べるとそれぞれには、
コード | 出力 |
---|---|
%n | ユーザ名 |
%m | ホスト(コンピュータ)名 |
%~ | カレントディレクトリ |
%# | プロンプト右端の% |
という意味があるようだ。なるほど、こいつがプロンプトの正体か。この%~
の間に付けられる正の整数は、カレントディレクトリを絶対パスで表したときに、カレントディレクトリを基準としてそれよりも上位のディレクトリをどこまで表示するかを指定できる。例えばカレントディレクトリpiyo1が絶対パスで、
~/hoge/fuga/piyo
と表される場合、上記PS1の%1~
はpiyoとなり、%2~
ならfuga/piyoとなる、といった感じだ。因みに、この部分を負の整数にすると、ルートディレクトリを基準としてそれよりも下位のサブディレクトリをどこまで表示するかを指定できる。つまり、上記のカレントディレクトリが%-1~
もしくは%-~
という指定なら*~となり、%-2~
なら~/hogeとなる。使い道があるかどうかは分からない。但し、これは**カレントディレクトリが$HOME(ホームディレクトリ)
かそのサブディレクトリのときに、この%~
のコードだと$HOME
の部分が~*に変換される**からであって、もし変換されないパターンで表示させたい場合は、%~の代わりに%d
を用いる。
/Users/“ユーザー名”/hoge/fuga/piyo
このとき、%-1d
もしくは%-d
という指定なら*/Usersとなり、%-2d
なら/Users/“ユーザー名”*となる。そして、もうお察しの通り、カレントディレクトリをフルパス(絶対パス)で表示させたい場合は、コードを%~
か%0~
、もしくは%d
か%0d
とすれば良い。
デフォルトのプロンプトの改善点
ここで、ターミナルのデフォルトプロンプトの宜しくない点を列挙しておく。
- 不要な情報が記載されてたりして冗長になっている
- ターミナル全体の背景色と同化していて、文字列も同色なので、コマンドとの境界が分かりづらい
- コマンド出力結果の後に空行が入らないため、上下の境界も分かりづらい
echo
コマンドでPS1を出力してみた。うん、見づらい(笑)2。%
がプロンプトの右端を表しているので、どこからどこまでがプロンプトになっているのかが一応分かるようにはなっているが、上記の問題を一つずつ解決してより良いものにする。
そもそもホスト(コンピュータ)名を毎回ターミナルに表示させる意味はない。また、ユーザ名に関してもPCを一個人で使っている場合には必要ない。そのため、上の表よりPS1から%m
と%n
のコードを、およびアットマークの文字@
をそれぞれ削除する。これだけでかなりシンプルになる。
次に、プロンプトに色を付ける。該当範囲を%F
と%f
で括ると文字列が、%K
と%k
で括ると背景がそれぞれ変色される(背景色はマーカーを引いた感じになる)。今回は文字列を黒色に、背景を黄色にして目立たせる。
このままでも充分だと思うが、更に、コマンド出力結果後に空行が入るようにする。つまり言い換えると、出力後、次のプロンプトを1行分改行した状態で表示されるようにする。
これでヨシ!このように、PS1=
の後を改行すれば良い。ただこれだと、ターミナル起動後の初期プロンプトにも最上部に空行が入ってしまうため、この記事なんかを参考にして、例外的に初回のみ空行が入らないように設定することもできるようだ(記事内の設定ファイルは*.bashrcだが、.zshrc*にも応用できると思う)。
VSCode上で確認
さて、ここまでで一応ターミナル関連の設定は完了したが、この記事の本題はVSCode関連の環境設定なので、VSCodeに反映されてないと意味がない。command + j
でパネルを表示させてターミナルタブに切り替えると、上で行った設定のプロンプトがきちんと表示されている筈だ。
設定後の感想とこれからの課題
最初、デフォルトで使用してた当時はあまりにも見づらかったので、この改善は自分なりにかなり満足しています。ただこの記事を書いてて、@1~
等の数字の‘1’の意味を調べて理解できたので、最終的にPS1は
(省略)
PS1="
%K{yellow}%F{black}%~ %#%f%k "
(省略)
という形に落ち着きました。カレントディレクトリはフルパスで表示されていた方が良いかなぁと判断。ただこれだと階層が深くなると結局長くなってしまうんですが...(笑)
他にも調べると、ターミナル画面の両端にプロンプトを表示させたり、もっと色々な情報を載せたりすることもできるようですが、今回はそれらはナシで。ですがターミナルのカスタマイズはこれで終わりではなく、本格的にプロングラミングをするようになったらもっとイケメンにしたい!と考えています(笑)。今はVSCodeのパネルの小さな画面上でターミナルを使用していますが、ターミナルアプリの本体の方をこれからは主に動かしていきたいです。色々やれそうですが、透明度を変えてスケスケにする機能は絶対に取り入れます!そうすると、上で設定した配色だとかえって見づらくなってしまうので、その辺は要調整てことで(ちょっとした厨二病...)。また、Pureみたいなプロンプト自体のテーマを変えられるのもあるみたいなので、そういうのを使ってみても良いかもしれません。