見出し画像

#コンピュータ談義 #Emacs #Tips #今更

今更需要があるとは思えませんが、もう20年以上は使い続けているTips を...

最近(?)ではExcel で簡単に出来るようになりましたが、下記のように数字を増やしながら入力したい場合、行数が多いとかなり面倒だったりします。

画像1

こういった時に便利なのがEmacs の関数定義とキーボードマクロの組み合わせです。

関数定義

私は下記の様に関数定義を'~/.emacs' にしています。

画像2

'my' は私のイニシャルなので、適当に変更しても構いません。
また使用頻度はそれ程高くありませんので、キーマッピング等は行っていません。

使い方

まあ、説明するまでもありませんが...

ctr-x ( ー マクロ記録開始
ctr-x ) ー マクロ記録終了

で、キーボードマクロ定義して、

ctr-u  回数 ー 繰り返し指定
ctr-x e ー マクロ実行

で回数分を実行するだけです。

具体的な入力は下記の通りになります。

ctr-x (
This is No.'my-inc''my-write'.

ctr-x )
ctr-u 2 0
ctr-x e

シングルクォートで囲んでいる部分は、

esc-x my-inc
esc-x my-write

の様に読み替えて下さい。

数字の桁を揃えたい場合は...

2桁の場合 - my-write2
3桁の場合- my-write3

を使うと必要な場合は前にスペースが入ります。

画像3

スペースで無くてゼロ詰したい場合は、下記の様に%の後ろに0(ゼロ)を入れるとそうなります。

(defun my-write2 ()
      (interactive)
      (insert (format "%02i" my-v)))

画像4

この辺はフォーマット指定子書式に準拠していますので何とでも自由に希望通りにできます。

Emacs の場合、関数はオンザフライで追加・書き換えられるので、使い捨て関数で定義するのも低コストで出来ますのでお勧めです。

この記事が気に入ったらサポートをしてみませんか?