Bash(シェル)のキーボードマクロ機能

Bashのキーボードマクロ機能

 Bashのドキュメントを読んでいるとき、キーボードマクロという機能があることに目が止まりました。マクロというとおそらくはコマンド操作の自動化が出来そうなので、これは便利そう。ということで、このキーボードマクロについて簡単な説明と実際に使ってみた感想を書いていきます。

キーボードマクロとは

 キーボードマクロと言ってもBashのこの機能はテキストを打ったり編集したときのキーストロークを再現するものではなく、実行したコマンドを再現する機能となってます。


キーボードマクロの操作

 キーボードマクロに関する機能のうち、主に使うものは以下の3つ。
  • C-x e : 記録したキーボードマクロの実行
  • C-x ( : キーボードマクロ記録の開始
  • C-x ) : キーボードマクロ記録の終了
以下、キーボードマクロはマクロもしくはマクロ機能と省略して書いていきます。

使い方

 マクロを使うには、まずどこからのコマンドを記録するかを指定してやる必要があります。この場合「C-x (」というキーバインドによりマクロ記録が開始されます。なお、このとき画面上には記録中などとは表示されないです。その状態で記録したいコマンドをいくつか実行していきます。記録させたいコマンドが終わったら「C-x )」でマクロ記録を終了します。
 そして「C-x e」で記録したマクロのコマンドが実行されます。

マクロを使う利点

 いくつかのコマンドを自動で実行するときにマクロ機能は便利に使えると思います。コマンドを打つ毎にヒストリーを遡ってコマンドを探してくるという手間も減らせるでしょう。

注意点

 マクロ機能を使う上での注意点としては
  • 記録の開始、終了が分かり難い
  • 記録されているマクロの内容が確認出来ない
  • 他の端末で使っているBashにはマクロは引き継がれない
  • Bashを終了すると記録したマクロは消える
  • 「C-x e」と間違えて「C-x C-e」を押すとエディタが立ち上がってしまう
 ただドキュメントを読むと記録したマクロを書き出す機能はあるようなので、それを使えばマクロを確認したりすることは出来るとは思います(やり方はちょっと分からず)。


実際にマクロ機能を使ってみて

 実際にマクロ機能を試して使ってみた印象としては、使いどころを考える必要があるだろうと思いました。上に書いた注意点にもあるように、記録してある内容が確認し難いというのがその理由。ちゃんと確認しながら行うなら、シェルスクリプトを書くとかエイリアスを利用するとか別の方法の方が確実です。
 なので、個人的に使いどころを上げるなら、保存しておくまでもない連続したコマンド実行に限って使う、ってことになるでしょう。それ以外、というか大抵の場合はシェルスクリプトを書く方がいろいろ便利ですし。

余談

 Emacsでも同様のキーバインドでキーボードマクロが使えるみたい。マクロと言っても機能自体はBashのそれとは違ってくるかも。


Amazon : シェルスクリプト関連書籍

コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

catコマンドの出力を行番号付きにするためのコマンドラインオプション(-n, -b)

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)