MENU

サーバーサイドローカル環境JavaScriptコンソール(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】 終了を検知して後処理をおこなう方法

けーちゃんおススメJavaScript入門書

  • スラスラ読める JavaScript ふりがなプログラミング
  • プログラム未経験者がJavaScript始めるならコレ!
    コードを掲載して自分で理解しろという投げっぱなしな入門書とは異なり、コードに一つ一つどんなことをやっているかをふりがなという形式で解説しています。
    それでいてJavaScriptの基礎と応用を学べる良書です。
  • これからWebをはじめる人のHTML&CSS、JavaScriptのきほんのきほん
  • JavaScriptの機能を実践で活かすにはHTMLやCSSの知識が不可欠です。
    しかしそれらの知識があることが前提として書かれている書籍が多い中、この本は総合的な知識を身に着けることができます。
    HTMLやCSSの知識も不安な方には、ぴったりの一冊です
  •  

    入門書の役割は、自分のやりたいことをネットで調べることができるようになるための、基礎的な知識の獲得です。
    まずはこれらの本でしっかりと基礎知識を身につけましょう。
    そしてもっと高度なことや専門的なことはネットで調べ、情報が足りないと感じたら書籍を購入してください。


    期間限定情報:
    6/21と6/22は年に一度のプライム会員大感謝祭!
    欲しかったアレが安く手に入るチャンスです
    忘れずにチェックしてください!
    僕は以前のタイムセール祭りで4Kモニタが買ったけど、それより安かったらどうしよう・・・

    ちなみにプライム会員でなくても、無料体験で参加できるようです。
    欲しい商品があるか、確認だけでもしておきましょう。

    記事の内容について

     

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


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

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

    そんなときは、ご意見もらえたら嬉しいです。

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

    【お願い】

    お願い

    ■このページのURL


    ■このページのタイトル


    ■リンクタグ


    ※リンクして頂いた方でご希望者には貴サイトの紹介記事を作成してリンクを設置します。
    サイト上部の問い合わせよりご連絡ください。
    ただしサイトのジャンルによっては、お断りさせていただくことがあります。