2005/11/24(木) [n年前の日記]
#1 [xyzzy] xyzzyで行の複製
一旦、xyzzy 上で ActionScript を打ってから、それをコピペして Flash Creator に書いてるのだけど。xyzzy で打ち込んでるうちに、行の複製が欲しいなと思い始めたり。例えば、
ネット中毒の自分なので、「xyzzy 行 複製」で検索して、 _実現してる方の記事 を見つけたのだけど。
ふと、xyzzy で何気なくシフトキーを押したら、F10 に「行複製」なる単語が。ガーン。今まで知らなかった…というか気づかなかった…。
なんだか siteinit.l に書いてあるみたいだから、もしかするとどこかで見かけてコピペしてそのまま失念してしまったのかもしれない。が、関数名でネット検索しても見当たらない。…とりあえず、siteinit.l の内容をコピペしてメモ。
にしても、ファンクションキーは遠いな…。どこかのキーに割り当てたいところ。
少し調べてみたら、vi なら yyp らしい。そのへんに近いショートカットキーにしておいたほうがいいだろうか。emacs で同種の操作があるなら、それに合わせたほうがいいだろうけど、検索してみた限りでは見つからなかった。
前述の記事では、C-c c に割り当ててあるらしく。自分の環境のキー割り当て一覧を眺めたけれど、たしかにそこは空いてるように見え…あー、xml-mode で使ってるな。うーむ。
C-c Insert が空いてるみたいだから、そこに割り当ててみるかな…。
カーソルキーから離れられない打ち込み方をしてるのもどうかと思うのだけど。>自分。たしかに効率悪いよなぁ。ホームポジションから離れることがなければ、楽になりそうな予感はあるのだけど。
む。連続して行複製したいときにちょっと面倒な。ファンクションキーでやったほうがいい場面もありそう。
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 で、二つのウインドウをスクロールできたのだな。知らなかった。
全然関係ないけど、S-C-Up、S-C-Down で、二つのウインドウをスクロールできたのだな。知らなかった。
[ ツッコむ ]
以上です。