32
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

EmacsAdvent Calendar 2012

Day 1

文字列に同じ処理を繰り返し実行したい時に便利なキーボードマクロ

Posted at

数百件程度の改行区切りのデータをカンマ区切りにしたいとか,「文字列に対して簡単な処理を数十回/数百回実行したい,でもプログラムを書くほどでもない」というときはキーボードマクロが便利.
キーボードマクロとは一連のキーボード操作をコマンドに定義したもの.定義したコマンド(キーボードマクロ)は簡単に繰り返し実行ができる.

利用例

以下では改行区切りのデータをquoteしてカンマ区切りにする,という処理を例に説明する.

処理前
foo
bar
baz
...
処理後
'foo', 'bar', 'baz', ...

作業手順

  1. 適当なバッファ(scratchとか)に処理したい文字列を貼る(今回はfoo\nbar\nbaz...)
  2. 繰り返し実行したいキーボード処理を考える.今回ならば以下の作業で1行目(foo)の処理が終わる.(スタート時にカーソルは1行目のfにあるとする)
  • 'を入力
  • C-eで行末に移動(カーソルはoに移動する)
  • ',を入力
  • C-dで改行を削除
  1. 2の処理をキーボードマクロに定義する.定義方法は簡単で,C-x( -> 定義したいキーボード処理を操作 -> C-x)とするだけ.
  2. 定義したマクロの実行はC-xe(execution).連続実行はC-xeeeee....
  3. 大量に実行したい時はC-u100C-xeなどとすればよい

他のキーバインドなど,詳細は GNU Emacsマニュアル: M. キーボードマクロ

32
28
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?