0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Emacs LispAdvent Calendar 2024

Day 17

Emacs Lisp 超初心者がコマンドを作ってみる 〜 別フレーム結果表示の実験 フレーム作成〜

Last updated at Posted at 2024-12-23

はじめに

今までのプログラミングでまぁまぁに動くようになったのですが、
ちょっと使いにくいのは、作業をしている .po のフレームに結果表示がかぶってしまうことです。

Emacs ではいわゆるウインドウの事をフレームという。Emacsでいうウインドウはフレームの中で1つまたは分割表示(縦分割横分割etc)されたそれぞれの領域を示す

これが別フレームに、もっと露骨に言えば別画面に出てくれると嬉しいな。

ということで フレーム 関係の操作です。

実験 既に指定のフレームがあればそのまま、無ければ作ってくれるといいな …orz

フレームを作成する。 *scratch* バッファで実行してみます。

実験スクリプト

(make-frame '((name . "pepm-frame") (width . 640) (height . 480)))

1回目

(make-frame '((name . "pepm-frame") (width . 640) (height . 480)))
#<frame pepm-frame 0x646ba13da080>

pepm-frame,scratch, with #<frame pepm-frame 0x646ba13da080>

2回目

(make-frame '((name . "pepm-frame") (width . 640) (height . 480)))
#<frame pepm-frame 0x646b9b9c2c90>

#<frame pepm-frame 0x646ba13da080>

pepm-frame,scratch, with #<frame pepm-frame 0x646ba13da080>

pepm-frame,scratch, with #<frame pepm-frame 0x646ba13da080>

あれ? エラーにならないな? 見ると同一名で幾らでも作れるようです...

2回目のあと最初のフレームが1行だけの表示なのは単に再描画されてないだけです。 C-L で再描画すると2回目と同じ画面になります。

今回の実験の結果・今後対策(予定)

  • make-frame では 同一の名前で幾つでもフレームが作れる

ということで、今後は以下の対策を行った上で採用します。

  • 指定の名前のフレームが既に存在するかどうか調べる。
  • 既にあればそれを使う。
  • 万が一既に同じ名前のフレームが複数あった場合はワーニングを出す(出すけど、実行結果をどれに出すかはこっちで勝手に決める。少なくとも今回のフェイズでは)

今回はここまで。

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?