mieki256's diary



2005/11/24(木) [n年前の日記]

#1 [xyzzy] xyzzyで行の複製

一旦、xyzzy 上で ActionScript を打ってから、それをコピペして Flash Creator に書いてるのだけど。xyzzy で打ち込んでるうちに、行の複製が欲しいなと思い始めたり。例えば、
 hogefugehage._x = hogex;
を、
 hogefugehage._x = hogex;
 hogefugehage._y = hogey;
にしたいときとか。

ネット中毒の自分なので、「xyzzy 行 複製」で検索して、 _実現してる方の記事 を見つけたのだけど。

ふと、xyzzy で何気なくシフトキーを押したら、F10 に「行複製」なる単語が。ガーン。今まで知らなかった…というか気づかなかった…。

なんだか siteinit.l に書いてあるみたいだから、もしかするとどこかで見かけてコピペしてそのまま失念してしまったのかもしれない。が、関数名でネット検索しても見当たらない。…とりあえず、siteinit.l の内容をコピペしてメモ。
;; --------------------------------------------------------------------
;; S-F10    行複製(即座に処理する)
(defun replica-line ()
  (interactive "*")
  (save-excursion
    (insert (buffer-substring (progn (goto-eol) (point))
                              (progn (goto-bol) (point))))
    (newline)))
(global-set-key #\S-F10 'replica-line)
(set-function-bar-label #\S-F10 "行複製")

;; --------------------------------------------------------------------
;; S-F7    行削除
(defun kill-whole-line ()
  (interactive)
  (kill-region (progn (goto-bol) (point)) (progn (forward-line 1) (goto-bol) (point))))
(global-set-key #\S-F7 'kill-whole-line)
(set-function-bar-label #\S-F7 "行削除")

;; --------------------------------------------------------------------
;; S-F8    行コピー
(defun copy-line-as-kill ()
  (interactive)
  (copy-region-as-kill (progn (goto-bol) (point))
                       (progn (goto-eol) (point))))
(global-set-key #\S-F8 'copy-line-as-kill)
(set-function-bar-label #\S-F8 "行コピー")

にしても、ファンクションキーは遠いな…。どこかのキーに割り当てたいところ。

少し調べてみたら、vi なら yyp らしい。そのへんに近いショートカットキーにしておいたほうがいいだろうか。emacs で同種の操作があるなら、それに合わせたほうがいいだろうけど、検索してみた限りでは見つからなかった。

前述の記事では、C-c c に割り当ててあるらしく。自分の環境のキー割り当て一覧を眺めたけれど、たしかにそこは空いてるように見え…あー、xml-mode で使ってるな。うーむ。

C-c Insert が空いてるみたいだから、そこに割り当ててみるかな…。
(global-set-key '(#\C-c #\Insert)  'replica-line)

カーソルキーから離れられない打ち込み方をしてるのもどうかと思うのだけど。>自分。たしかに効率悪いよなぁ。ホームポジションから離れることがなければ、楽になりそうな予感はあるのだけど。

む。連続して行複製したいときにちょっと面倒な。ファンクションキーでやったほうがいい場面もありそう。

全てのモードのキー割り当てを表示するlispがあったら便利かもしれない :

と思ったけどlispはわからんので手の出しようもなく。

_選択範囲をRubyで書いたフィルタにかける[xyzzy] :

検索してるうちに辿りついたけど元のサイトが消えてるみたいなので今のうちにコピペしてメモ。
(defun filter-region-menu (start end)
  (interactive "*r")
  "外部フィルタをメニュー選択できるfilter-region"
  (let (*filter-region-menu-alist* *filter-region-menu-cmd*)
    ; 外部フィルタのリスト
    (setq *filter-region-menu-alist*
          '(("ruby sort_r.rb")
            ("ruby html_dl.rb")
            ("sort")
            ))
    (setq *filter-region-menu-cmd*
          (completing-read "Command?: " *filter-region-menu-alist*))
    (if *filter-region-menu-cmd*
        (filter-region *filter-region-menu-cmd* start end))
    )
  )

_行セレクションを上下に移動(完成版) :

便利そう。selection が存在しないときは、1行のみの移動になるのか…。素晴らしい。

全然関係ないけど、S-C-Up、S-C-Down で、二つのウインドウをスクロールできたのだな。知らなかった。

#2 [windows] IME2003関係 - 確定のキーとか

確定するときに一々Enterに指を伸ばすのがしんどいなとふと思ったので、そのへんどうにかならんかなと。

ヘルプを見たら、Ctrl + M で確定できる、とあった。…が、急には指が動いてくれない。かえって打ち込む速度が遅くなってしまうような。

Ctrl+変換で、ショートカットメニューも表示されるらしい。知らなかった。

このへんも覚えていたら楽なんだろうな。が、なかなか覚えられるものでもなく。

何かと関連付けたら覚えられるだろうか。 とか。…なんかアホみたいだ。

この記事へのツッコミ

Re: IME2003関係 - 確定のキーとか by けいと    2005/11/26 22:07
私はキー1つ1つに意味を持たせるんじゃなくて
塊と並びのまとまりで覚えています。

いまさらいうまでもないあたりで…

カット、コピー、ペーストはXCVというキーの塊と並び。

これと同じでT UIOPが
半角英数、ひらがな、カタカナ、半角、全角英数、
GHがDEL、BSっていうことで。

私の場合、半角英数の入力はIMEを使わない=直接入力モード
なのでTは忘れて
UIOP=ひらがな、カタカナ、半角、全角
と覚えたほうがすわりがいいですけどね。
Re: IME2003関係 - 確定のキーとか by mieki256    2005/11/28 18:49
> T UIOP

あ! ホントだ。
そのへんのキーって、一列に並んでたのか…。
しかも、ホームポジションの一段上、でしたか。

> UIOP=ひらがな、カタカナ、半角、全角

お。なんとなくですが、そのほうが覚えやすそうな予感がします。
なるほどなぁ…。

#3 [flash] loadMovie() で表示したjpgやswfは duplicateMovieClip()で複製できない

自分、完全に考え違いをしてた。loadMovie() で読み込んだムービークリップも複製できるものとばかり思い込んでたわけで。トホ。なんでもかんでも外部swfにして、最初に読み込んで、必要になったら複製すれば問題ないや、と思ってたけど全然甘かった。

ライブラリの中のムービークリップを attachMovie() してタイムラインに置くにしても、あるいは、タイムライン上に既に存在するムービークリップを duplicateMovieClip() するにしても、どうやらリンケージ云々なるものが絡んでるらしく。loadMovie() で読んだswf等にはそれがない or ロードした時点で消滅するから、それでおそらく複製等はできないのだろう。たぶん。

さて、仮に、外部から読みたい jpg or swf が大量にあった場合、どうしたもんか。思いつく解決策は2つ。 前者は論外だよなぁ…。たとえば256枚の画像があったら、256回、「ファイルを開く」ダイアログを開いて、256回、手打ちで、連番リンケージ名をつけていかなければならない。無理。後で「やっぱり画像を差し替えようかなー」なんてことになったら、もう大変。

ということで、そういう場面では後者の方法でやるしかないんだろうなと想像したり。検索してみたけど、大体そういう方向に話は流れていくみたいだし。

loadMovie() に関して夢想 :

ファイル数が増えた場合、容量的にはたいしたことがなくても、逐一外部から読み込もうとするだろうから反応が遅くなるだろうと。それを考えると、何かしら、まとまった状態で読めたほうがいいのかもしれない。

巨大な画像を読み込んで、マスクを使って一部分だけ表示するとか。1フレーム1画像になってるswfムービーを読んで、本体swfから特定のフレームを指定して表示させるとか。

と思ったけれど、画面上で必要になるたびに、その巨大な、あるいは、やたらと長い、swfを読むわけにもいかない。万が一、キャッシュが利かなかったら大変なことに。

上手い方法は思いつかないなぁ…。

Flash Creator 1.6 は onEnterFrame を delete で消せない? :

本来なら、
mc.onEnterFrame = function () {
    delete this.onEnterFrame;
}
といった書き方ができるらしい のだけど。上手くいかない。いつまでも onEnterFrame が処理を続けてしまう。これまた Flash Creator の仕様 or バグかしら。海外の掲示板を覗いた限りでは、 _できるような感じで書かれてる ようなそうでもないような、うーん。

仕方ないので、本当は推奨されないらしいのだけど、
 this.onEnterFrame = null;
で代用。

_F-site | イベントハンドラメソッドはdeleteで消せ! :


以上、1 日分です。

過去ログ表示

Prev - 2005/11 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project