エスケープシーケンスコンソール(CLI)サーバーサイドローカル環境

【Node.js】 コンソール(CLI)のカーソル表示・非表示切り替える

更新日:2021/06/09

Node.jsでコンソールを使ったプログラムを作成していると、カーソルが邪魔に感じることがあります。
そんなときは、サクッと消してしまいましょう。

ここでは、Node.jsでカーソルの表示・非表示を切り替える方法をお伝えします

 

カーソルの表示・非表示切り替えエスケープシーケンス

コンソール上に表示されているカーソルの表示・非表示切り替えは下表のエスケープシーケンスでおこないます。

エスケープシーケンス機能
\x1b[?25hカーソルの表示
\x1b[?25lカーソルの非表示

エスケープシーケンスは、下の使用例のようにprocess.stdout.write()またはconsole.log()などで標準出力へ渡します。

使用例


  // カーソルを消す
process.stdout.write( "\x1b[?25l" );

  // カーソルを表示する
process.stdout.write( "\x1b[?25h")

次の記事で紹介しているコードで、カーソルの表示・非表示切り替えを行っているので参考にしてみてください。
【Node.js】 コンソール(CLI)で進捗をプログレスバー表示してみる

 

後処理が大事

カーソルを非表示にしたら、プログラム終了時にカーソルを表示する必要があります。

次のコードは、正常・エラー・Ctrl+cでの終了を検知して、カーソルを表示しています。

後処理例


process.on("exit", ()=>process.stdout.write( "\x1b[?25h" ));
process.on("SIGINT", ()=>process.exit(0));

詳しくは次の記事で解説しているので、参考にしてみてください。
【Node.js】 終了を検知して後処理をおこなう方法

更新日:2021/06/09

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。