問題
突然ターミナルで入力しているはずなのに、カーソル(入力位置を示す点滅する線や四角)が表示されなくなってしまった
解決方法
ターミナルで以下のコマンドを実行するだけ
echo -e "\033[?25h"
または普通にリセットする
reset
ANSI エスケープシーケンスについて
ANSI エスケープシーケンスは簡単に言うとターミナルの制御文字です
文字のカラーリング・カーソル位置・フォントスタイル・その他のオプションをターミナルに指示することができます
カーソル関連
カーソルを表示する
echo -e "\033[?25h"
カーソルを非表示にする
echo -e "\033[?25l"
カーソル位置を保存して戻すコードもある
echo -e "\033[s" # 保存
echo -e "\033[u" # 復元
画面のリセットやクリア
reset は依然として強力。たいていの崩れはこれで収まる
reset
画面を消すだけなら以下で十分
echo -e "\033[2J" # 画面全体を消去
echo -e "\033[2K" # 現在行を消去
文字の表示
色を付けるとデバッグが少し見やすくなる
echo -e "\033[32mOK\033[0m" # 緑
echo -e "\033[31mERROR\033[0m" # 赤
echo -e "\033[1mBold\033[0m" # 太字
ターミナルタイトルの変更
複数タブを開いている時は、タイトルを変えておくと迷わない
echo -e "\033]0;My Terminal\007"
まとめ
- 普段使うことはあんまりないけど、こういうのを調べてみるのも楽しいですね
- ターミナルは当たり前によく使うので、iTerm2を使ってカスタマイズしたりしてみたいです
