xyzzy Part11

このエントリーをはてなブックマークに追加
930BlackLightOfStar ◆ifsBJ/KedU :04/12/04 22:02:07 ID:fA0r7lpk
Re:>927 そこはGoogleだろうが。
Re:>928 亀井さんはCommon Lisp Interpreterの開発を目指しているもよう。まあ、時間が解決するかもしれない。気を長くして待て。
931名無し~3.EXE:04/12/04 23:13:48 ID:/85d1/Z4
そういや、CommonLispの実装ってあんま無いよね。
SchemeとかElispとかが目立って、影が薄くなってるだけかもしれないけど。
932名無し~3.EXE:04/12/05 13:33:43 ID:/yWPkERU
933名無し~3.EXE:04/12/05 17:04:40 ID:rmyKfEcu
閉じるボタンの動作を最近のEmEditorみたいにしたくて,
つまりボタンを押したときに,編集中のバッファを閉じるだけにしたくて

(defun cancel-killapp-and-killbuffer ()
 (if (string= (buffer-name (selected-buffer)) "*scratch*")
  t
  (progn
   (kill-buffer (selected-buffer))
   ;(refresh-screen)
   nil)))

と書いてquery-kill-xyzzy-hookにadd-hookしたんですが,
kill-bufferした後にタブに残骸が残ってしまいます。refresh-screenしても
消えてくれませんでした。なんかいい方法ありませんか?
934名無し~3.EXE:04/12/05 17:14:10 ID:rmyKfEcu
ごめんなさい,こっちでお願いします。

(defun cancel-kill-and-delete-buffer ()
 (if (string= (buffer-name (selected-buffer)) "*scratch*")
  t
  (progn
   (kill-buffer (selected-buffer))
   (next-buffer)
   (refresh-screen)
   nil)))
935名無し~3.EXE:04/12/05 17:32:38 ID:2eulMgZF
>>934
よくわからないけど、こんな感じ?
(add-hook '*init-app-menus-hook*
#'(lambda ()
(add-menu-item *app-menu* 'close-box :close-box
#'kill-selected-buffer)))
936名無し~3.EXE:04/12/05 18:52:16 ID:iC11VoVw
>>930
ソースは?
937935:04/12/06 12:18:25 ID:HKi5Yhan
×こんな感じ?→○これじゃ駄目なの?
938名無し~3.EXE:04/12/06 23:24:15 ID:3lxh+zgy
>>935
なるほど,こっちのほうが自然ですね。いただきます
939名無し~3.EXE:04/12/08 00:54:10 ID:YD26k0c/
>>936
突然やってきて質問のみ
過去ログどころか現行スレすら読まない
940名無し~3.EXE:04/12/08 01:27:21 ID:1XCNc/Z6
>>939
どこみても >>930 の書いていることにのソースは見当たらないですよ。
941名無し~3.EXE:04/12/10 01:41:49 ID:f62quUI7
diffしたときに両方のバッファを同時にマウス・キーでスクロール
させることってできます?
942名無し~3.EXE:04/12/10 02:49:36 ID:8Tp1gdC5
>>941
> diffしたときに両方のバッファを同時にマウス・キーでスクロール
> させることってできます?

diff したときに限らず、両方のバッファを同時にスクロールするには、
S-C-Up
S-C-Down
でできますよ。
943名無し~3.EXE:04/12/10 14:57:26 ID:dCJNmgmI

migemo探してるんですが、まだどこかで配布してるところ、
知ってるひといますか?
944名無し~3.EXE:04/12/10 23:11:30 ID:Gm4goJnw
過去のレスを調べよう
945941:04/12/11 00:38:27 ID:K4eQkT3S
>>942
めるしぃ。助かりました。
946名無し~3.EXE:04/12/11 17:30:43 ID:Wn+dbi2G
2ch-modeで裏社会→薬・違法を見ようとするとスケ形式が分からんよって
出るんですが、対処法はあるんでしょうか?
947名無し~3.EXE:04/12/11 18:14:19 ID:ELrcY30W
>>946
「スレ形式がわからんよ」ですよね?

 自分の所では普通にみられますが…。一応 Menu バッファで R
を押して板一覧を再取得してみては?後 *read-cgi-hosts* を設
定しないようにしてみるとか…。
948名無し~3.EXE:04/12/12 05:01:12 ID:DI6PtofD
xyzzyって整数の 0 padding が下のようにしても
エラー出てしまってできないけど,仕様?
(format nil "~2,0D" 3)
949名無し~3.EXE:04/12/12 08:10:27 ID:GZpvxaIL
>>948
(format nil "~2,'0D" 3)
でいけます。
クォートが必要なのが xyzzy の 仕様だったか
Common Lisp の仕様だったかは未確認。
950948:04/12/12 16:28:31 ID:DI6PtofD
>>949
thx
bit別冊のCLtL2見ながらやってたんですけど,
よ〜く見たら, 'が必要でした.
お手数かけました.ありがとうございました.
951名無し~3.EXE:04/12/15 09:36:48 ID:RlmZrcGS
quote-menu.l 中の
(defun add-quote-string-to-clipboard-data (&optional (arg 1) (type 1))
の type にキーバインドから数値を入れるにはどうすればいいのでしょうか?
例えば、
(add-quote-string-to-clipboard-data 1 2)
と同じことをキーバインドからやりたいのです。
952名無し~3.EXE:04/12/15 10:30:35 ID:iwUMfIra
フォルダ内の全ファイルのファイル名、サイズ、タイムスタンプ、などなどを書き出してくれるlispどっかに落ちてないですかね?
953名無し~3.EXE:04/12/15 14:38:34 ID:L6Jb9uqG
>>952
ttp://hie.s64.xrea.com/xyzzy/reference/html/ref-directory.html
ttp://hie.s64.xrea.com/xyzzy/reference/html/ref-get-file-info.html
この辺を参考に書くといい。

ヘタレの俺にはいい機会なので、ちょっと書いてみた。
要望どおりにファイル名とサイズとタイムスタンプを出力。ってかそれだけ。
出力はだいぶ汚いので、書き直してもらえるとありがたい。
(defun file-info (targetdir)
(interactive "DTarget directory: ")
(with-output-to-temp-buffer ("*file list*")
(format t "LastModifiedsizename~%")
(dolist (file (directory targetdir :file-only t :file-info t))
(format t "~A~D~A~%"
(format-date-string "%y/%m/%d %H:%M:%S" (third file))
(fourth file)
(first file)))))
954953:04/12/15 14:42:16 ID:L6Jb9uqG
あータブ文字は書き込めないんだった申し訳ない。
コード4行目: (format t "LastModified size name~%")
コード6行目: (format t "~A ~D ~A~%"
に修正してください。

formatでタブ文字を書くならもっといい方法がありそうなんだが分からん。
955名無し~3.EXE:04/12/15 17:31:28 ID:ikzFUbKD
scheme-modeの使い方が良くわからないんですが、どこかにドキュメントとかありませんか?
956名無し~3.EXE:04/12/15 17:34:53 ID:93coNXBO
>>953を参考にしつつ書いてみた

(defvar file-info-name-format-function nil)
(defvar file-info-attribute-format-function nil)
(defvar file-info-size-format-function nil)
(defvar file-info-time-format-function nil)
(defvar file-info-format-function nil)
(defvar file-info-format-string nil)
(setq file-info-name-format-function
#'(lambda (name)
name))
(setq file-info-attribute-format-function
#'(lambda (attr)
(concat
(if (zerop (logand attr ed::*file-attribute-readonly*)) "-" "R")
(if (zerop (logand attr ed::*file-attribute-hidden*)) "-" "R")
(if (zerop (logand attr ed::*file-attribute-system*)) "-" "S")
(if (zerop (logand attr ed::*file-attribute-directory*)) "-" "D")
(if (zerop (logand attr ed::*file-attribute-archive*)) "-" "A")
(if (zerop (logand attr ed::*file-attribute-compressed*)) "-" "C"))))
(setq file-info-size-format-function
#'(lambda (size)
(format nil "~D" size)))
(setq file-info-time-format-function
#'(lambda (time)
(format-date-string "%y/%m/%d(%a) %H:%M:%S" time)))
957続き:04/12/15 17:36:16 ID:93coNXBO
(setq file-info-format-function
#'(lambda (info)
(list
(funcall file-info-attribute-format-function (second info))
(funcall file-info-size-format-function (fourth info))
(funcall file-info-time-format-function (third info))
(funcall file-info-name-format-function (first info)))))
(setq file-info-line-format-string
(concat " Attrib\tsize\tLast Modified\t\tName~%"
"~:{ ~A\t~A\t~A\t~A\t~%~}"))
(defun file-info (targetdir)
(interactive "DTarget directory: ")
(with-output-to-temp-buffer ("*file list*")
(let ((files-info (directory targetdir :file-only t :file-info t)))
(format t file-info-line-format-string
(mapcar file-info-format-function files-info)))))
958956:04/12/15 17:57:01 ID:93coNXBO
~Tの使い方が今頃分かったのでフォーマットを変えてみた

(setq file-info-line-format-string
(concat "~2TAttrib" "~10TSize" "~22TLast Modified" "~47TName~%"
"~:{" "~2T~A" "~10T~A" "~22T~A" "~47T~A~%" "~}"))
959名無し~3.EXE:04/12/16 00:23:54 ID:WhUHICqS
>>955
ttp://fun.sci.fukuoka-u.ac.jp/RWiki/rw-cgi.rb?cmd=view;name=xyzzy
ここのですか?
ドキュメントはファイルのコメントくらいしかないような。
とりあえず、今何は出来ていて、何がよくわからないのでしょう?
あと、お使いの Scheme 処理系は?
960名無し~3.EXE:04/12/16 00:27:07 ID:qw2uO1ev
>>951
(global-set-key '(#\C-c #\x) 'add-quote-string-to-clipboard-data)
とか適当にキーバインドしているものと仮定する。
で、仮定した上で、上記のキーバインドだと、

C-u 2 C-c x

でどうでしょ
961953:04/12/16 01:07:08 ID:rZdJaWwS
>>956-958
('A`) そこまで書けるならハナっから俺の出る幕無いですよ。
ちゃんとタブ制御までしてるし。
962951:04/12/16 07:30:49 ID:TOv8SFjt
>>960
レスありがとうございます。
C-u 2 C-c x などだと arg に数値が入るのですが、type には
入らないようです。
キーバインドから引用符を選択できないかなと思ったのですが、
2番目以降の引数にキーバインドから数値を入れるのは難しいような
気がするので、*quote-string-list* をポップアップ表示→その中から選択
→add-quote-string-to-clipboard-data で選択した引用符を挿入して貼り付け
みたいに quote-menu.l を書き換えて妥協中です。
963名無し~3.EXE:04/12/16 09:39:50 ID:jQa2eB5M
>>962
これをキーにバインドするんじゃ駄目?

(defun my-add-quote-string-to-clipboard-data (&optional (type 1) (arg 1))
(interactive "p")
(add-quote-string-to-clipboard-data arg type)
964953:04/12/16 11:28:54 ID:CPOwVmBw
悔しくてたまらないので>>956-958をもっと短く書こうとしてみたが、
ちっとも短くならない上にコードがぐっちゃぐちゃになってしまい、
そのせいで些細なエラーを見つけられずに泣きたくなった。

あと、属性値にDとか出力できるんだから、
directory関数の「:file-only t」は削除していいと思った。

もう少し弄れば各種ソートも思いのままなんだろうが、
モニタが霞んでそれどこじゃないので不貞寝する。
965951:04/12/16 12:36:13 ID:yw6qRUNH
>>963
レスどもです。
963 のやり方だと引用符は選択できるようになりますが、
C-u 2 M-x my-add-quote-string-to-clipboard-data などとすると
引用符が2つ挿入されてしまいます。
quote-menu.l では *prefix-value* を使用して挿入する引用符の数を
決めているようなので、引用符を選択するには universal-argument
以外の方法でする必要があるのかもしれません。
962 のやり方でも一応引用符を選択できるので、当面はそれで行こうと
思います。
966955:04/12/16 12:50:31 ID:tT6POP9N
>>959
まさしくそこのです。

>あと、お使いの Scheme 処理系は?
わ、ごめんなさい。これ自身でschemeのevalができるんだと思ってました。
てっきりxyzzyのLispに皮をかぶせたものかと・・・何かの処理系のフロントエンドとして使うんですね?
処理系探してきて再トライしてみます。ありがとうございました。
967956:04/12/16 16:46:21 ID:GM8k7q1e
>>964
なんかスマソ

上のほうで書いたのに細かいミスがいくつかあったし、
今日ずっといじってたらなんかいい感じになりそうなのでWikiに書いてみました。
何かあったらコメントください。
968名無し~3.EXE:04/12/17 10:33:45 ID:0yOJ4c2q
bat-mode でスクロールがすごい遅いんですが、なんとかならんもんですか?
969名無し~3.EXE:04/12/17 11:12:24 ID:tmmvD07e
>>968
まず,そのモードいぞんな理由を説明しる.
*post-command-hook* か *pre-command-hook* になにか
重いものが入っていると思うけど
970953:04/12/17 11:45:56 ID:pR+r8wTZ
>>967
なんで俺は謝られてますか?

コメントったって「ファイルサイズは右揃えがいいな」くらいしか思いつかないので、
もっと有意義なコメントは他の人に任せます。
971956:04/12/17 19:56:14 ID:estXikFm
>>970
そういえば、ファイルサイズ右揃えのほうがいいと思ったんだった。
file-info-line-format-stringの "~10T~A" を "~10T~10D"にしたらできました。
972968:04/12/18 09:25:55 ID:RLS4A2RH
>>969
.xyzzy と site-lisp の中を grep してみたけど、
html+-mode, flex-fill, ldoc, paren, rv-region
にしかなかったです。

もうだめぽ
973名無し~3.EXE:04/12/18 14:33:06 ID:PSkGRIYQ
>>972
bat-modeのバッファで
ESC ESC *pre-command-hook*
ESC ESC *post-command-hook*
974968:04/12/18 16:40:45 ID:RLS4A2RH
>>973
*pre-command-hook* は html+-delete-highlight-tag で、
*post-command-hook* は set-flexible-fill-prefix paren-highlight ldoc でした。

もうだめぽ
975名無し~3.EXE:04/12/18 16:44:45 ID:m/GPwRSV
失礼します。
Eclipse 3.0 以降のように、C-a で行の最初の文字まで戻って、
もう一度C-a で行頭まで、、、ということを実現したいのですが、
方法がありましたらお教え願えませんでしょうか。
976968:04/12/18 17:30:22 ID:RLS4A2RH
>>975
; テストしてないので動かんかったらスマソ
(defun my-bol ()
 (interactive)
 (if (eq *last-command* 'my-bol)
   (beginning-of-line)
  (back-to-indentation)))
(global-set-key #\C-a 'my-bol)
977名無し~3.EXE:04/12/18 18:16:59 ID:PSkGRIYQ
>>975
>>976が動くかどうか分からんけど,自分の定義はこれ
;;.. 仮想行頭とその最初の単語位置を交互に移動
(defun beginning-of-virtual-line-or-first-word ()
(interactive)
(if (virtual-bolp) (skip-chars-forward " \t")
(beginning-of-virtual-line)))
978名無し~3.EXE:04/12/18 18:35:31 ID:PSkGRIYQ
>>974
bat-modeで,
ESC ESC *flexible-fill-mode-list*
の値に,bat-modeが含まれていたら含まれないようにする.
そうじゃなければ分からないし,こっちが苦労するのが
馬鹿らしくなってくるレスなのでもう氏らね

#そろそろ次スレの時期ですか?



979975
>>976
早速のお返事、どうもありがとうございました。
お陰さまで期待通りの動作を実現でき、大変満足しております。

>>977
どうもありがとうございます。
交互に移動というのが大変便利そうなのですが、
残念ながら当方の環境では動作できませんでした…。