1 :
ミスターエックスワイジー :
2008/04/25(金) 13:35:33 ID:ARrYwobV
2 :
ミスターエックスワイジー :2008/04/25(金) 13:36:05 ID:ARrYwobV
糞エディタは使いにくいよね
ありがとう、xyzzy
さようなら、xyzzy
>>7 自分で書きなよ。
バッファを2つ使って同期させればlispでもできるでしょ?
tree何とかじゃだめなのか
JSP書く方、multi-modeの設定どんな感じにしてますか? (defun multi-html-mode () (multi-mode t "html+-mode" '("<!--" "-->" "text-mode") '("<script" "</script>" "jscript-mode") '("<%" "%>" "java-mode"))) (add-hook 'ed::*html+-mode-hook* 'multi-html-mode) これだと物足りないんですが、他をどうしようかなあと思いまして。
11 :
名無し~3.EXE :2008/05/04(日) 11:45:46 ID:05mnvVmb
あげ
(add-hook 'foo #'(lambda () ..))みたいに hook変数に#'(lambda・・・)ってやられると、hook変数を評価して調べるとき 一体それが何をしているのかわからないし、delete-hookも使えないので困る。 たとえ引数を渡すだけでも、hook用の関数を用意するか'(lambda ()..) みたいにしてadd-hookして欲しい。 以上愚痴でした。生意気いってすいません。
>>12 いやそれに関しては同意。
俺は .xyzzy で簡単な関数を hook に追加するときでも必ず defun してる。
lambda でやると同じ関数でも重複して登録されたりするし
>>12 の言うように削除もできないし。
そうなっていないのって何がある?
>>12 やったー俺が公開しているのは全部大丈夫だったよ。
>>12 lambda式をquoteしてリストのまま渡すのはお勧めしません。
その渡し方だとlambda式がコンパイルされませんので。
*activate-hook*って、リファレンスによると、 バッファがactivateされたときに任意の処理を行うために使用されます。 とのことですが、使ってみた感じではxyzzy自体がアクティブになったときに動 くhookぽいのですけど、そういう理解であってますか?
>>18 ファイラがアクティブなったときは働かないでしょ。
ファイラはxyzzy自体に含まれないの? ってことになる。
現在のウィンドウの状態(2つ以上のウィンドウ分割状態)を 違うフレームに再現させるにはどうすればいいですか? (let (conf) (setf conf (current-window-configuration)) (next-pseudo-frame) (set-window-configuration conf)) ってやってみたんですが、再現させたフレームでウィンドウ移動を行おうと すると"削除されたウィンドウです"とエラーがでてしまいます。
対話的に save-window-configuration-to-register restore-window-configuration-register を使えばできるんですが、関数を作って一発でやりたいと思ってるので よろしくお願いします。
すいません、なんとか解決できそうです。スレ汚しごめんなさい。
解決法かいてー
>>24 22じゃないけど、
(current-window-configuration)
ってリスト返すから、その情報を元に分割すればOKなはず。
かつての俺と同じでinteractive宣言を知らなかっただけと予想 (defun copy-window-to-nextframe () (interactive) (let ((conf (current-window-configuration))) (next-pseudo-frame) (set-window-configuration conf)))
ちょっとお尋ねします。 si:closure-frame ってどういうものですか? (defun bar (n) (let ((x 1)) (+ n x))) (si:closure-frame #'bar) => nil となってさっぱりです。
(let ((f (block foo (lambda () ())))) (si:closure-frame f)) => ((block foo nil))
>>27 こんな感じ。
(defun foo (x)
(flet ((bar (y) #'(lambda (z) (+ x y z))))
#'bar))
=> foo
(si:closure-frame (funcall (foo 1) 2))
=> ((block bar nil) (block foo nil))
30 :
27 :2008/05/24(土) 00:05:10 ID:CYnOP7ci
>>28-29 どうもありがとう。
closureが属する? block のリストってことですね。
一からやり直しする気力がないので放置じゃダメですかね
なにを?
33 :
名無し~3.EXE :2008/06/10(火) 18:32:13 ID:fg81wI0O
ホッシュ
gresreg-dialog のテキスト入力ボックスを 複数行にすることはできますか? 「エスケープシーケンスを理解しろ」にチェックを入れて "\n" で表現はできますが、コピペで楽をしたいのです。 ( ´∀`)
:edit を使えばできるが、自分で調べれ
_ , ― 、 ,−' `  ̄ヽ_ ,' ヽ ( ) ( ノ`ー'ー'ヽ ) ( ノ● ●( ) ( 〉 -――-( )_ _ `ー'l ● ( ノ ヽ ) 、‘ー'ー’ _ノ`ー' |  ̄| ̄ | / /7 / ̄ ̄/ / `ー´ `ー ´ `―´
37 :
名無し~3.EXE :2008/07/11(金) 22:36:51 ID:6qdE0OF8
すみません。KaTeXのことなんですが、1回コンパイルするのはもちろんCTRL+c t jなんですが 3回続けてコンパイルさせる命令ってないでしょうか。教えていただけると助かります。
39 :
名無し~3.EXE :2008/07/12(土) 14:52:13 ID:MTuvLIv+
>>38 Ctrl+u 3 Ctrl+c t j
かな。
KaTeXしらないけど、3回続けてコンパイルってなにか意味あるの?
のうみそこねこねコンパイル
43 :
38 :2008/07/12(土) 21:26:12 ID:WjXiYQ4L
>>39 レスありがとうございます。残念ですが、それをしても1回しかコンパイルしてくれないみたいです。
参照の部分が??になってました。
45 :
名無し~3.EXE :2008/07/14(月) 01:34:10 ID:zzVUO/xc
katexprc.l:308行目の (KaTeX-typeset cmd KaTeX-typeset-buffer) を (KaTeX-typeset cmd KaTeX-typeset-buffer) (KaTeX-typeset cmd KaTeX-typeset-buffer) (KaTeX-typeset cmd KaTeX-typeset-buffer) にかきかえちゃうとか。
46 :
38 :2008/07/15(火) 11:13:34 ID:bYoXnqru
いろいろありがとうございました。あきらめが肝心なようですね。 latexmkに挑戦しようかどうしようか。
47 :
名無し~3.EXE :2008/07/16(水) 23:26:12 ID:SAkm1bty
その程度であきらめるなー
48 :
名無し~3.EXE :2008/07/21(月) 09:52:12 ID:1cuV9A0T
このエディタって本気のアホじゃ使うの難しいね。 あとこのエディタが好きな人はマゾか理屈っぽい奴しかいないような気がする。 でもこのエディタを使う人はかっこいいと思う。 俺もこのエディタを使いこなせる人になりたいです。
夏休みがんばれ。
つまり48はマゾで理屈っぽいアホなのですね。 夏休みが終わる頃にはマゾで理屈っぽくかっこいい人になれるといいですね。
この言語って(以下略 この小説家って(以下略 このカメラって(以下略 この魚って(以下略 色んなところに張りたくなるな。
xyzzyは手になじむなぁ
システムコールを別の色で表示したいのだが、可能かな
54 :
名無し~3.EXE :2008/08/09(土) 08:54:59 ID:VYv9PNlD
etc\C他を手で書き換えればできるけど 自動で色づけしたいなら ヘッダファイルから変換するスクリプトを書くとか 動的にキーワードを取得するlispを書かないと無理。
55 :
名無し~3.EXE :2008/08/10(日) 02:36:40 ID:rbv6ffP6
SourceForge から packaged-xyzzy-20080718.lzh を落として 既存のディレクトを上書きしたら、キーバインドがなぜかWindows風に なってしまって困ってます。 さらに元のバージョンにで上書きしても状況は同じ。 ぐぐってみても、windows風に変更する情報はあっても、emacs風にする方法はヒットしない。 というか、デフォルトでemacs風のはずだよね? どうしたらいいんだ。 ちなみに元のバージョンは。、0.2.2.235。
56 :
55 :2008/08/10(日) 03:07:55 ID:rbv6ffP6
とりあえず、lispでバインドしなおすことにしました。 C+n, C+p, C+f を元のバインドにしてとりあえずほっと出来た。 あとは使いながら、気がついたところをつぶしていくか。 いい機会だから、xyzzy-lispの定義関数をちゃんと覚えようっと…。
>>55 packagedは初心者向けのAll in one パッケージっていう設定だったと思うので
デフォルトがゲイツなんだと思う。
emacs式がいいのなら公式のパッケージを持ってきて
自分でカスタマイズして言ったほうがいいよ。
siteinit.l 読んだ感じだと $XYZZY/site-lisp/packaged/keybind.l って 空のファイル作ってダンプ取り直せば大丈夫っぽいね。 とりあえず winkey/gates あたりの設定はされなくなる、というか、なった。 packaged ってディレクトリが将来何かの目的に使う予定があるようだと後々問題かもだけど。 ユーザが個人の設定を置く場所って理解でいいのかな。
>>55 ちょっとダウンロードしてみた。site-lisp/siteinit.lの
from $XYZZY/lisp/winkey.lのセクションと、
from $XYZZY/lisp/Gates.lのセクションを削除
(なにも書き換えてなければで17行から91行まで)して、
xyzzy.exeのあるフォルダにできるxyzzy.wxp(osがxp以上の場合)を
削除して、site-lisp/siteinit.lc(コンパイルされたsiteinit.lファイル)を
削除して起動してみても直らない?
60 :
名無し~3.EXE :2008/08/16(土) 11:57:36 ID:qxITJXyH
vista だとダンプファイル名どうなるの?
そもそも (si:dump-image-path) でいいような気がしたんだけど、どうなんでしょ
こんなのどう?vista で動くかわからないけど (load はお好みで) (defun compile-and-delete-dump-file () "siteinit.l のバイトコンパイル & ダンプファイル削除を一発でやる." (interactive) (let ((file (find-load-path "siteinit"))) (and file ;; (load file) (compile-file file)) (delete-file (si:dump-image-path) :if-does-not-exist :skip)))
>>63 おお!それできちんと動きました
vista の他の環境の人は、
>>60 のスクリプトで動いているのでしょうか
気になりました
ありがとうございました
66 :
名無し~3.EXE :2008/08/19(火) 12:39:34 ID:7oFS6hoT
"<"や">"を一括で置き換えたいのでこんな風に書いたんだけど 置換対象を増やす時も考えてもっとスッキリとした書き方ないでしょうか? (defun replace-special-to-character-reference-buffer () (interactive) (progn (save-excursion (replace-buffer "<" "<" :case-fold nil) ) (save-excursion (replace-buffer ">" ">" :case-fold nil) )))
67 :
名無し~3.EXE :2008/08/19(火) 13:52:20 ID:0DtaEySo
勘で。 (defun my-replace (pattern replacement &aux (query nil) (regexp t) (interactive-p t) (noerror nil)) (interactive "spattern : \nsreplacement : ") (save-excursion (goto-char (point-min)) (perform-replace pattern replacement query regexp interactive-p noerror)))
違う部分をリスト化すると、同じ部分を纏められる。 (map nil (lambda (d) (save-excursion (replace-buffer (car d) (cdr d) :case-fold nil))) '(("<" . "*")(">" . "?")))
>>65 それとは違うけど、大体に多様なのはVistaで動いてるよ。
なんで 2ch-mode は bbspink.com を読み込んでくれないのさ。
読み込んでくれるぞ。このエロ小僧め とりあえず板を更新してみろ
73 :
71 :2008/08/29(金) 11:25:16 ID:W5F7cSYO
いやだめだ。雑談系2でストップする。うーん。
雑談系2てbbspinkじゃないような
すいません、ちょっとお尋ねします。C++のコードを書く際に カレントバッファ以外のソースコードからも、関数の引数を含めて 補完してくれる拡張って既にありますでしょうか。 (補完でなく、引数の型を列挙してくれるようなものでもいいのですけど)
高度な補完がしたいなら、EmacsかVS(Express)のがいいんでないの?
雑談系2で止まるってことは隠し・その他とゴミ箱もないのか 板一覧ファイルの中にはあるの
79 :
73 :2008/08/30(土) 14:58:03 ID:LJBWXEB5
.2ch/bbsmenu.htmlにはちゃんとあるけど、雑談系2より下、 チャット・ツール類・BBSPINKもろもろが.2ch/bbsmenu.txtにはない。 パースがうまく行ってないようなのだけれども…。
2channel.brd に切り換えてみるとか
81 :
79 :2008/08/30(土) 16:44:54 ID:LJBWXEB5
2channel.brdにしたら読み込んでくれたありがとう。 でもこれからは手動になるのか…。
>>76 レスどうもありがとうございます。VSは持っているんですが、
ちょっと使いにくい環境なので、使い慣れたxyzzyを使いたいところなんです。
どうやらまだxyzzyにはそういった拡張はないようなので、ac-modeを改造するか、
自作しようかと思います。
>>81 こんなんでどう?
2ch/menu.l (menu-parse-bbsmenu)
- (when (equal current "チャット")
- (return))
+ (unless (member current '("チャット" "運営案内" "ツール類" "他のサイト" "まちBBS") :test 'equal)
(loop
(cond ((looking-at "[ \n]*<A HREF=
http://\\ ([^/]+\\)\\([^> ]+/\\)[^>]*>\\([^<]+\\)</A>[ \n]*\\(<BR>\\)+" t)
(push (list (buffer-substring (match-beginning 3) (match-end 3))
(buffer-substring (match-beginning 1) (match-end 1))
(buffer-substring (match-beginning 2) (match-end 2)))
board))
((looking-at "<FONT COLOR=#aaaaaa>[^<]+</FONT><BR>")
t)
((looking-at "[^<]+<BR>")
t)
(t
(return)))
(goto-char (match-end 0)))
+ )
AC-modeは色々な補完が沢山合体してるだけなので 指定した場所のファイルを保管候補に含めるとかも ちょっと変えるだけでできたような気がする。 ACmodeじゃなくて、自分で作っても結局合体してるだけなので ACmodeと同時に使っても矛盾は出ないから 書いた方が楽かもしれないが
あるフォルダから、指定ファイルもしくは指定拡張子ファイルを除外してgrep検索できますか?
>>85 *.c *.cpp の両方を検索対象とするには、「*.c;*.cpp」とする。
「|*.html;|*.css」とすると *.html と *.css を除いてくれる。
「|指定ファイル」 とすれば、指定ファイルを除いてくれる。
過去ログにあった気がする。
岡本隆史氏のことを過去ログで発見。亀井氏の対応に惚れた。
Frameの名前を短くしたいが可能?今のままだと多くて20Frameくらいしか開けないので。
90 :
名無し~3.EXE :2008/09/14(日) 02:43:47 ID:1IoD0vhR
違反者を捜し出しては通報する正義感の強い人なんだろうか
なんでそんな昔の話を蒸し返してんだ?
> * 旺盛な自己顕示欲 > * 自らの矛盾を指摘されるとスルースキル発動 > * 他人の間違いは鬼の首をとったように晒し上げ > * 聞く耳を持たず・己の姿も見えず こんな奴なんて理系周辺なら腐るほど居るんだから、スルーしろよ
listen の挙動がわからない (with-input-from-string (s "abc") (while (listen s) (print (read-char s)))) => EOFに達しました: #<string-input stream 52040780> こういうもんですか?
書き込み用Cookieが変更されたせいで、2ch-modeで書き込み出来なくなってるなw その内対応されるだろうけど。
99 :
名無し~3.EXE :2008/09/16(火) 14:55:46 ID:sqqe9B6L
bufferツールバーを上部ではなく横側に配置したいんだけど、どうすればいいの?
101 :
日立 勇気 :2008/09/16(火) 17:16:51 ID:Lw7QaV2S
スレの宣伝 【1:24】windows Vistaに本気でくらいつく をよろしく
>>97 手持ちのCLISP,GCLだとエラーにならなかった。
(whileマクロ定義する必要あるけど)
ストリームがEOFならnilを返すのがlistenの仕様のはずだ
からxyzzyのバグなのかなあ。
ちなみに↓ならxyzzyでも動くはず。
(with-input-from-string (s "abc")
(while (peek-char nil s nil nil)
(print (read-char s))))
>>102 レスありがとうございます。やっぱりそうなりますか
ソースでは string-input-stream なら return 1; ってなってるみたいで。
とりあえず、peek-char を使っておくことにします。
2ch-mode、cookieが使えないので最近書き込めない…さびしい。 ブラウザで見るの大変なんだよなぁ。
ソフトウェア板のほうのxyzzyスレでcookie対応のlファイルがあげられてるよ これも2ch-modeから投稿
あああ書き込めた(かな?)。105さんありがとう。 みんな2ちゃんは…みたいに言うけど親切な方もおる。 嬉しいです。ていうかxyzzyの板が他にあったこと知らなかった。
まあ板じゃなくてスレなんだけどな
礼はおいらよりあっちのあげた人に言うべし デフォの(sit-for 0.3)だとこの板じゃ結構失敗するなー
どうも〜。使ってくださっている方、ありがとうございます〜 (sit-for 0.5)にしてもたまにでますね…。 なのでいっそのことということで、sit-for()をやめて、 送信するtimeの値を5秒小さくすることで対処してみました。ちょっとずるっこですが…。 URLは同じです。よろしければ試してみてください。 後、Hattoriさん、もしよろしければ2ch-modeの方に取り込んでいただけますと幸いです。
sit-forじゃなくてsleep-forを使うべきでは? sit-forだと待たない場合があるよ。
なるほど、POST文字列のtime弄れば待たずに済むわけか。頭いいな。 鯖側でアクセス時刻を保持するようになったらアウトだけど、しばらくは大丈夫そうだね。
>>110 何かキーを押すと再開しちゃうってやつですよね?
逆に待ちたくないって人はあえて押してもらってもいいのかな…と。
まぁ今は待ちを使わない方式にしていますが…
>>111 多分そこまではいかないんじゃないかなぁと思ってます。
クッキーにもtimeの値を入れて比較…とかされるとアウチですが。
まぁなったらなったでその時ということで…
励ましあうスレ急に落ちた? こっちはずいぶん過疎ってんのにしぶといな スレ立ての用意はないすまんw
クリップボードエンコーディングを文字コード自動判別みたいなことは出来ないでしょうか? VisualStudio2008からだとUnicodeでコピーされて他がShift_JISなのでいちいち切り替えるのが面倒で。
vistaでrewind-ime-compositionがうまく動かなくて、ソースを見てみたら、 どうやら一番最後のset-ime-read-stringでこけているらしいのです。 この関数はbuiltinのもので、どこをどうしたらいいのかわかりません。 どなたかヒントをいただけないでしょうか。
120 :
sage :2008/11/28(金) 00:58:23 ID:NNRyynMY
バッファバー(タブバー)の多段表示のlispって公開されてないのか ファイルを大量に開く人にとってスクロール機能は見づらいと思うのだが
C-x b とかで素朴に一覧するからニャ
バッファバーを左に置いて、共通設定の表示のタブバーを横書きにするON
outline-treeを入れるON
test
大量のファイルをまとめて編集してるときは見づらいけど大量すぎてもうどうでも良くなってF2押してバッファを選んでる。
texのスレかxyzzyのスレかどちらで聞くべきか迷いましたが
OMake つかって LaTeX コンパイルしたら簡単すぎて身長が5cm伸びた - 日記を書く[・ _ゝ・]はやみずさん
http://d.hatena.ne.jp/hayamiz/20081208/1228727272 ここで紹介されているomakeを使っているひとはいませんか
このomakeを動かしているときに
xyzzyでTeXを編集し、保存しようとすると
なんちゃら.tex
非常に言いにくいことなのですが
ファイルがなくなっちゃいました
ほにゃらら.tmp
に保存してあるので自力でなんとかしてください
こういうダイアログが表示されました
そしてたしかにファイルが削除されてしまいました
ほかのエディタを使用するとそのようなことはありません
どうすればよいのでしょうか?
128 :
127 :2008/12/14(日) 03:37:31 ID:2EfUr5lx
書き忘れましたが、他のエディタというのは emEditorの最新版です。 あと、 xyzzyのファイルの排他制御は「しない」に設定しています ネットで xyzzy からファイルを開いた状態で omake を動かしている人を見かけないのですが 誰か使っていませんかね……
(setf backup-by-copying t) でどうだ
>>129 正常に動きました
ありがとうございます
暖めボタン付きのレンジとかこすらなくていい洗浄剤とかでも 彼の身長は伸びてしまうのだろうか。
sconsというビルドシステムを使ってるのですが、 ・現在のバッファのディレクトリから順に上のディレクトリを検索し、 ・SConstructというファイルを最初に見つけたディレクトリで'scons'というshellコマンドを発行する なんてのできますかね?
>>132 "上のディレクトリ"というのの意味が親ディレクトリということなら
(defun foo (dir)
(if (member "SConstruct" (directory dir :file-only t) :test #'string=)
(msgbox dir)
(progn
(unless (pathname-match-p dir "*/*/")
(error "SConstruct を発見できません"))
(foo (directory-namestring (remove-trail-slash dir))))))
を定義して
ESC ESC から (foo (default-directory))
を実行。
(msgbox dir) の部分を execute-shell-command とか使って適当に変えるとできるかも。
>>133 ありがとうございます。 いまいちxyzzyのファイル名操作が判らなかったので、助かりました。
こんな感じに改造して使わせていただきます。 ありがとうございました。 ; scons (defun scons-body (dir) (if (member "SConstruct" (directory dir :file-only t) :test #'string=) (execute-subprocess "scons" "" "*Scons*" () dir) (progn (unless (pathname-match-p dir "*/*/") (error "SConstruct を発見できません")) (foo (directory-namestring (remove-trail-slash dir)))))) (global-set-key #\F7 #'(lambda () (interactive) (scons-body (default-directory)) (other-window)))
>>135 再帰を使っているので、(foo (directory-namestring (remove-trail-slash dir)))
の foo を scons-body に変えないと動かないはず。
137 :
名無し~3.EXE :2008/12/21(日) 06:51:15 ID:zVz9Wckq
xyzzy が起動してるドライブ名ほしいから (subseq (si:system-root) 0 2) を使っているんですが、 ひょっとして初めから関数が用意されてたりします?
>>137 ドライブ名取得なら pathname-device
他にもファイル名関連で pathname- で始まる関数がある
>>138 ありがとうございます
(pathname-device (si:system-root))
で取得することにしました。
(handler-case (何かする) (condition (c) c)) で返したコンディションのインスタンス(?)から、それが如何なる種類の コンディションなのか(simple-error とか type-error とか)を取得する 方法はないですか? ;; c は拾ったコンディション (when (strin-match "^#S(\\(\\_s+\\)" (format nil "~S" c)) (intern (match-string 1))) でほしい物は得られるんですが、もうちょっとまともな方法にしたいです。
>>140 こんなんでどう?
(handler-case
(/ 0 0)
(condition (c)
(si::*structure-definition-name (si::*structure-definition c))))
division-by-zero
>>140 何をしたいかにも寄るけど、エラーの型に応じて処理を分けたい
(けどhandler-caseにだらだら書きたくない)のなら
(typep c 'simple-error)
とする手もあるよ。
143 :
140 :2008/12/27(土) 08:19:27 ID:lp/VIDd9
>>141 まさにやりたかったこと、ありがとう
>>142 やりたいことはどんなコンディションだろうと拾っておいて、後から
どんなコンディションだったのか調べる、とかそんなことです。なので今回
はそのやり方だとちょいと足りないです。てゆーかその辺説明しなくてすい
ません。
文字列のリストから、関数を生成するマクロってどう書けばいいんですかね。 以下みたいにやってみたんですがどうしてもいきづまってしまいました。 (defmacro f-gen (&rest args) (let ((v (gensym))) `(dolist (v ,@args) (defun ,(intern (concat "mode-" v)) () (dosomething))))) (f-gen "clear" "set" "toggle") #'mode-clear, #'mode-set などが動的に定義したいのですが。 よろしくお願いします。
>>144 こうかな
(defmacro f-gen (&rest args)
`(progn
,@(mapcar (lambda (suffix)
`(defun ,(intern (concat "mode-" suffix)) ()
(dosomething)))
args)))
マクロだと動的にならないような気がする。 変数に関数を入れてapplyじゃだめなの?
動的に「定義」ってよくわからないな
関数を定義するマクロをつくりたいってことでしょ
149 :
144 :2009/01/04(日) 16:58:19 ID:sJTFqoXZ
>>148 です。「実行時に」っていういみでした。
どういう状況で (do something) が何をするのかわからんので何とも言えんが すごくマクロである必要はないような気がしてならない
151 :
144 :2009/01/08(木) 00:29:42 ID:1jPj1c+w
>>150 マクロなしでやるやりかたを教えてください。
(dosomething)では関数名のもとになった"clear"とか"set"とかの文字列を
使ってmessageを表示したりします。
おはよう (defun f-gen (&rest suffixes) (mapcar (lambda (suffix) (setf (symbol-function (intern (concat "mode-" suffix))) (lambda () (message "~A something" suffix)))) suffixes)) 要件がよくわからんがこんなん?
hogehoge.txt の hogehoge 部分を取得する関数ってありますか?
pathname-name
>>154 ありがとうございました。 m(_ _)m
質問お願いできますでしょうか。 ミニバッファで実行して、その後普通のバッファに移動してそこで文字列を 入力したのを読み込ませて処理する―というLispはどのように書けばいいの でしょうか。 自分で考えたのですが、どうしてもミニバッファからバッファへ移動 できないのです。移動できるようにすると、ミニバッファの入力待ちが 解除されてしまいます。 ミニバッファ上でtabすると候補一覧が分割windowで表示されますよね。 その時ミニとバッファで自由に行き来できる、あの挙動が実現できれば 解決すると思うのですが。 時間がありましたら、よろしくお願いします。
どういう挙動か良く分からないけど、~/lisp/isearch.l を見ると参考になるんじゃないかな。 isearch-forwardが近そう。 tabで呼び出すcompleteは、単に表示してるだけだから多分違うと思う。
お早い返事ありがとうございます! isearch.lですか。うーん、今調べてますけど... 何分まだ未熟なもので。 挙動というのは、つまりメッセージボックスを呼び出して文字列を入力、のかわりに バッファを使いたい、ということです。 >>tabで呼び出すcompleteは、... そうなんですか。あのときのミニバッファは入力待ちではないということですね。
あんまり詳しくないけど、1つのコマンドで完結させるのは難しいと思うよ。 ミニバッファで実行して〜のところはどういう感じだろう? 実行→バッファを作成して専用の編集モードに →C-c C-c辺りで内容を処理するコマンド呼び出し で良いんだったら、2ch-modeの書き込みがそのまま使えそう。
>>156 俺は iswitchb.l か complete+.l が参考になると思う。
なんでこう色々出てくるかっつーと、おまいの望む挙動がこっちに伝わって
ないからだっつーのはわかるか?
すいません。
具体的に書くと長くなるので、簡潔に説明したかったのです。
やりたいことは、「複数文字列の一括置換」です。
検索文字列@置換文字列 という条件にして
abc@def
ghi@jkl
mno@pqr
これをダイアログではなく、バッファで入力できるように
すれば、コピペで一気に処理できると思ったのです。
しかもバッファならunicode文字も可能ですし、その場で
編集してから処理させることができる。
これを読み込んで2重リストにするのは
split-stringとpushなどでできました。
そのリストで連続置換も
(dolist (x リスト)
(goto-char (point-min))
(replace-buffer (format nil "~A" (car x)) (format nil "~A" (cadr x))))
でできると思います。
>>159 さんの言うとおり1つのコマンドでは難しいのでしょうか。
>>161 複数行を入力用バッファを開いて取得したいだけなんだから、
解決案も含めて、
>>159 が言ってるとおりだよ。
ただ、改行区切りをやめて、
abc@def/ghi@jkl/mno@pqr
みたいにすれば、普通にミニバッファで取得して終わりだと思うんだけど。
>>161 それだけが目的なら
(defun foo (file)
(let (alist)
(with-open-file (is file)
(let (line m)
(while (setq line (read-line is nil nil nil))
(push (split-string line "@") alist))))
(dolist (x (nreverse alist))
・・・
)))
とかしてファイルから読んだほうが簡単にできると思ったり
置換なら、置換範囲と、置換規則の2種類を選ぶ必要があるから、 それぞれ別のコマンドを用意した方が使いやすいように思うな。 どっちもリージョンで取得するわけでしょう。 それと、自分で作らなくても雑記帖のmultiple-replaceで用が足りるんじゃないかな。
165 :
1/3 :2009/01/16(金) 11:42:55 ID:PEc3waVG
(defvar *rfb-buffer-name* "*Read*") (defvar *rfb-mode-map* nil) (unless *rfb-mode-map* (let ((map (setq *rfb-mode-map* (make-keymap)))) (define-key map '(#\C-c #\C-c) 'finish-read-from-buffer) (define-key map '(#\C-c #\q) 'quit-read-from-buffer))) (defvar *rfb-mode-hook* nil) (defun rfb-mode () (interactive) (kill-all-local-variables) (setq mode-name "rfb" buffer-mode 'rfb-mode) (use-keymap *rfb-mode-map*) (run-hooks '*rfb-mode-hook*))
166 :
2/3 :2009/01/16(金) 11:44:04 ID:PEc3waVG
(defun quit-read-from-buffer () (interactive) (unless *rfb-running* (error "read-from-buffer 中専用のコマンドですw")) (while (not (minibuffer-window-p (selected-window))) (other-window)) (kill-buffer *rfb-buffer*) (call-interactively 'quit-recursive-edit)) (defun finish-read-from-buffer () (interactive) (unless *rfb-running* (error "read-from-buffer 中専用のコマンドですw")) (let ((text (buffer-substring (point-min) (point-max)))) (while (not (minibuffer-window-p (selected-window))) (other-window)) (kill-buffer *rfb-buffer*) (erase-buffer (selected-buffer)) (insert text) (call-interactively 'minibuffer-exit)))
167 :
3/3 :2009/01/16(金) 11:44:39 ID:PEc3waVG
;;; internal variables (defvar *rfb-running* nil) (defvar *rfb-buffer* nil) (defun dive-into-rfb-buffer () (when (minibuffer-window-p (selected-window)) (other-window)) (set-buffer *rfb-buffer*) (erase-buffer *rfb-buffer*) (setup-temp-buffer *rfb-buffer*) (rfb-mode) (refresh-screen)) (defun read-from-buffer (&optional buffer) (interactive) (let ((*rfb-running* t) (*rfb-buffer* (if buffer (cond ((stringp buffer) (get-buffer-create buffer)) ((bufferp buffer) buffer) (t (error 'type-error :datum buffer :expected-type '(or buffer string)))) (get-buffer-create *rfb-buffer-name*))) (*enter-minibuffer-hook* *enter-minibuffer-hook*)) (add-hook '*enter-minibuffer-hook* (defun init-minibuffer-for-rfb (&rest args) (start-timer 0 'dive-into-rfb-buffer t))) (completing-read "from buffer: " nil)))
168 :
4/3 :2009/01/16(金) 11:48:56 ID:PEc3waVG
そういえば completing-read とか使って lisp 評価中に minibuffer から 入力はできるけどふつーの buffer ではできねーなーと思って勢いで作った。 (read-from-buffer) で *Read* とゆーバッファを開いて入力させる。そのバッファで C-c C-c するとそのバッファの文字列を返す。C-c q で quit する。
>>165 ,166,167,168
返事が遅くなり申し訳ありません。
立派なプログラムをありがとうございます。
今試してみましたが、C-c C-cで文字列が返らないんですよ。
(insert text) するってことですよね。
私の環境だけでしょうか。
これができれば finish-read-from-buffer の処理に手を加えれば
置換処理ができるということかな。
xyzzyをusbメモリで使っている人、なんか工夫しています? batでpathやらを通してみたものの、もうちょっと工夫のしがいがある気がするんですが。
169です。 completing-readを使って自己解決しました。 まだ完全ではないけど、なんとかなりそうです。 みなさんありがとうございました。
>>169 よくわかんないけど、うちでは意図した通りに動いた。意図したとおりってのは
1.
>>165-167 を *scratch* に貼り付けて eval-buffer
2. *scratch* に (read-from-buffer) と書いて評価(閉じ括弧の直後で C-j)
3. ミニバッファに "from buffer:" と表示され、ふつーのウィンドウの方に
表示されてる *Read* バッファにフォーカスが行く
4. お好きな文言を入力して C-c C-c
5. *scratch* に戻って (read-from-buffer) が 4. で入力した文字列を返す
(次の行に "お好きな文言" とか挿入される)
なんだけど、(insert text) ってのがよーわからん。
と思ったら finish-read-from-buffer の最後あたりにあるのは、*Read* バッファ
の文字列全部(=text)をミニバッファに突っ込んでる。completing-read は
minibuffer-exit したときにミニバッファの文字列を返すんで。
ひょっとして complete+ 入れてないと挙動が違ったりするんだろうか。
ぐちゃぐちゃ書いたけど、要するによーわからんです。
単に「返らない」じゃなくて、エラーが出るならどんなエラーとか、他のもんが 返ってくるなら何がとか書いてくれた方が、どう動かないのか調べるヒントには なるぽ。 なんか解決したよーなので不要っぽいけど、ついでってことで駄レスご容赦
>>173 ,174
詳しい説明ありがとうございます。
指示通り実行したところ、きちんと動作いたしました。
私はミニバッファで(read-from-buffer)を評価してました。
Lispを見ても、どういう動作をするのかまだよくわからないもので。
ちなみに自己解決というのは
(case
(completing-read "OK?: " nil)
(#\RET (return t))
(#\C-g (quit)))
というのを使えば、ミニバッファとバッファを行き来できて
目的が達せられるだろうと。
やはりmodeを作って制御すべきなのでしょうか。
>私はミニバッファで(read-from-buffer)を評価してました。
評価と言ってるので Esc Esc(eval-expression)だと思うが、eval-expression
では返ってきた値がステータスバーに表示される。
1. Esc Esc
2. ミニバッファで Eval: (read-from-buffer)
3. *Read* バッファに "hoge" と入力して C-c C-c
4. ステータスバーに "hoge" と表示される
>ちなみに自己解決というのは(以下略
completing-read の最中は他のウィンドウに移動することもできるので、ふつー
のバッファに移動して入力するということもできる。
んでその case が意味わかんないんだけど、completing-read は入力された
文字列を返すんで #\RET とか #\C-g に一致することはない。
(C-g で completing-read を抜けると completing-read 自体が quit 投げる
んで (quit) と結果的には同じことになるが、(case ... (#\C-g (quit)))
てのは不要)
>やはりmodeを作って制御すべきなのでしょうか。
read-from-buffer でやったのは
- 入力させるふつーのバッファ(*Read*)を作る
- completing-read からそのふつーのウィンドウ&*Read* バッファへ移動
- *Read* バッファでは
- C-c C-c でバッファの文字列を(ミニバッファ経由で)completing-read
の返り値とする
- C-g で completing-read を中断させる
ようなキーマップを使うモードにする
てな具合。単に completing-read してから C-o とか(手動)でもできるから
めんどくなければ作る必要はないかと。
作るにしても割と変なことしなきゃならんから、やるなら
>>159 の方がずっと
楽だとおも。
ごめん嘘ついた。最後あたりの C-g じゃなくて C-c q で中断だった。
>>176 ,177
こんな私に付き合って頂いてありがとうございます。
caseは、misc.lにあったy-or-n-pの所を参考に弄ったらそれでできただけです。
(できた、というのはただ置換が成功した、という意味です。)
いい加減なLispでお恥ずかしいのですが、一応私が作ったLispを書いておきます。
もしよろしければ、ご指導ください。
(defun foo ()
(interactive)
(let((buff1 (selected-buffer)) buff2 ls)
(pop-to-buffer (create-new-buffer "replace") t)
(setq buff2 (selected-buffer))
(case
(completing-read "OK?: " nil)
(#\RET (return t))
(#\C-g (quit)))
(set-buffer buff2)
(goto-char (point-min))
(setq ls '())
(loop
(push (split-string (buffer-substring (point) (progn (goto-eol) (point))) #\@) ls)
(forward-line)
(if (eobp) (return)))
(erase-buffer buff2)
(set-buffer buff1)
(dolist (x ls)
(goto-char (point-min))
(ignore-errors
(replace-buffer (car x) (cadr x))))))
buff2 は、いつ編集するんだ? 編集する前に OK を聞いているみたいだけど。 ちなみに 176 が書いているけど、comleting-read で #\RET とかは 返らないよ。素直に read-string で置換文字列を取得すれば、よい でないの? 一行が寂しければ、こんなんとか。 (save-window-excursion (delete-other-windows) (shrink-window 10) (setq hoge (read-string "replace-string: "))) ;hoge は戻り値 改行は #\C-j を使わなきゃだめだけど。
>>179 ご指摘ありがとうございます。
>buff2 は、いつ編集するんだ?
completing-readがミニバッファで待ってくれるのでその時です。
試行錯誤してやってるもので、玄人からは奇異に感じるのかもです。
>comleting-read で #\RET とかは返らないよ
とりあえず「動いたバージョン」として恥を忍んで書きました。
(下手に修正するとまた動かなくなるので)
>素直に read-string で置換文字列を取得すれば
それだとコピペして編集ができ―なんと(shrink-window 10) こんなのが
あったのですか!
今やってみたのですが、欲を言えば行番号がないのがちょっと。
大量置換で行番号を見て、いくつあるからよしこれでOK みたいにしたい。
あと、うっかりRETすると実行されてしまうので、できればやはりバッファで
編集したいです。
ttray について質問です。 xyzzy が最前面にないときに、タスクバーボタンをクリックしてアクティブにした後、 もう一度同じタスクバーボタンをクリックして最小化すると、タスクバーボタンに最小化 され、タスクバーボタンが残ってしまいます。 これをちゃんとタスクトレイにアイコン化されるようにしたいのですがなにか対策はある でしょうか。 上の場合も、タスクバーボタンをクリックしてアクティブにした後、隣のタスクバーボタ ンにマウスをかざしてフォーカスを移したあとにxyzzy のタスクバーボタンをクリックす るとタスクトレイにアイコン化されるので、 SetFocus とか使って ttray-show-xyzzy をいじってみたのですが効果がありませんでし た。
このエディタって本気のアホじゃ使うの難しいね。 あとこのエディタが好きな人はマゾか理屈っぽい奴しかいないような気がする。 でもこのエディタを使う人はかっこいいと思う。 俺もこのエディタを使いこなせる人になりたいです。
>>181 以前に俺もタスクバー左クリックで非表示にしたいと思って、色々やってみたんだけど
*deactivate-hook* に非表示にする関数がフックされてて
その関数の実行時に xyzzy が最小化されてないと非表示にされない
どうやらタスクバー左クリックだと *deactivate-hook* の時点では
xyzzy が最小化されてない模様
俺じゃどうやっても無理だったので
おとなしく『xyzzycli -f ttray-hide-xyzzy』とかやってます
>>182 のは通知領域のアイコンをクリックして非表示にするときなどに
xyzzy が最小化されてなかったのを最小化するように
書き換えてるヤツなのでタスクバー左クリックとは関係ありません
はてなブックマークモードがうまく動かない。 追加や編集しようとするとら Http/1.0400 bad requestになる
xyzzyでサイドバーにエクスプローラのようなものを表示させることってできませんか? sfiler.lを使ってみたんですが、どうも使い勝手が悪くて。
>>189 transient-mark-modeってのがあまり知らないんだけど、リージョンを反転したいってことだよね。
それならrv-region.lはどうよ。
>>190 おお、まさにこれでバッチリです!ありがとうございます。
xyzzyって、Windows上でのEmacsの代替品として使っている人も多いと思うんで
すよね。Emacsはやっぱり重いですから。
こうやって少しずつカスタマイズしていくことで、Emacsと同じことができるよ
うにして行こうと思います。
代替品として使い始めたけど、 今では Emacs より断然こっちが好き。 って人も多いと思うよ。
気がつけばemacsには戻れない体に…
もぉ・・・xyzzyのバカァ///
kill-subprocessってちゃんときいてる? 自分で作ったのはおろか、M-x shellで呼び出したのも殺せないんだけど・・・ 一応サブプロセスがあるかないかは認識してるみたいなんだけど。普通のバッファで呼んでも、サブプロセスはないで、って言われる。
kill-subprocessが呼び出すのはsignal-process(SIGINT,Control-C) SIGINTではcmd.exeは落ちない…カンだけど 強制終了ならkill-processを使うといいかも。
198 :
196 :2009/02/11(水) 03:12:51 ID:bAM5DHw2
>> 197 kill-processでできたよ、ありがとう!!
軽いアウトラインってありますか? outline-tree2は導入してみたんだけど重くて・・・あんなに機能いらないから、軽いのないですかね?
ちなみにCPUのスペックは?
201 :
199 :2009/02/11(水) 10:23:09 ID:bAM5DHw2
Core 2 Duo 2.2GHz, 2.0GB RAM です。 重いというのはちょっと語弊で、動いているときはいいんですが立ち上がりが遅くなるのと、本体とdll以外に大量に拡張ファイル入れなきゃいけないのが嫌なんです。
潔癖すぎるぜ、アニキ outline-tree2はそこらの野良スクリプトとは比べものにならないくらい 完成度高くてイカしたスクリプトだよ。 起動時間はmsecオーダーの違いだろうから気にすんな
>>202 いやいや、貧弱なマシンだと、無視できない差が出るよ。
当方のマシンは Celeron (Northwood-128K) 2.40GHz、Memory 1007 MB という
スペックなんだけど、今までだとxyzzyは1秒以内で立ち上がっていたのに、
outline-tree2を組み込むと、起動に5秒くらいかかる。
これだと、ファイルの関連漬けとかで気軽にxyzzyを起動するわけには行かず、
あらかじめ起動しておいてxyzzycli.exeを利用するしかなくなる。
まあ自分はそれでかまわないと思っているけれど。
outlinexでいいじゃない
セレロン600MHzでRAMが192MBの俺から言わせてもらえば、 たかが数秒ぐらい気にスンナ。 立ち上げている他のアプリにもよるが、 起動するのに5〜30秒かかる。 ここまでロースペックだと、ネットやるのにも結構時間がかかる(表示に) 今使っているノートPCももう9年目・・・
>Celeron (Northwood-128K) 2.40GHz、Memory 1007 MB 試しにwindows起動直後にxyzzy+outline2を起動してみたけど だいたい1秒くらいだった。 HDD止まってるとか重いウィルス駆除ソフト入れてるとか だったりしない?
自分は関連付けは秀丸やgreenpadにして、腰を下して編集するときは xyzzyを使うようにしている。なにか参照しながら、編集するときは ビューアが別の方が、自分はわかりやすいんだよね。
AMD 500MHzのRAM315、win98機でも1秒くらいで起動できるぞ
500とか600Mhz とか使っている方は そろそろ買い換えられては如何でしょうか。
210 :
199 :2009/02/12(木) 18:36:39 ID:pfQppoGD
やっぱりoutline-tree2かoutlinexぐらいしかないんですかね。 しばらくマシンパワーに任せてoutline-tree2を使ってみようと思います。 ありがとうございました。
siteinit.lから読み込んでダンプしてる?
error.lのfirst-errorでエラージャンプする時に、対応形式を増やしたいのですが、 どこを変えればいいのでしょうか。 具体的には、今の形式に加えて形式にも対応させたいです。 ■規定 SUBDIR/file.c:10:test string ■対応したい形式 "SUBDIR/file.c", 10:test string
>>213 試してないけど
(setq *error-regexp-list*
(append *error-regexp-list*
(list
(list (compile-regexp "\"\\([^\"]+\\)\", +\\([0-9]+\\):") 1 2))))
>>214 レスどうもです。
試してみましたが、動きませんでした。
(エラーはありませんとなりました)
>>215 "SUBDIR/file.c"をフルパスにするとジャンプするのは確認した
これ以上はもっと詳しい人に期待
あと正規表現は下の方が良かったかもしれん
"^\"\\([^\"]+\\)\", +\\([0-9]+\\):"
>>216 あれ?
相対パスが必要なのは必要なんですが、
フルパスでも動かなかったです。。。
error.lに直接パターン追加しても、
siteinit.lに追加してみても同じでしたが、何か勘違いしてますでしょうか?
試しに、c-,modeでテスト
■OK(通常動作)
c-mode.l:82: (interactive "*")
C:\Program Files\xyzzy\lisp\c-mode.l:82: (interactive "*")
■NG
"c-mode.l", 82: (interactive "*")
"C:\Program Files\xyzzy\lisp\c-mode.l", 82: (interactive "*")
"C:/Program Files/xyzzy/lisp/c-mode.l", 82: (interactive "*")
218 :
199 :2009/02/13(金) 00:36:32 ID:EYwWVnT4
いい機会なんで、siteinit.l整理して各ファイルダンプし直したらoutline-tree2入った状態でも快適に立ち上がるようになった orz siteinit.lの設定をいくつか別ファイルにまとめてそれをrequireするようにしたんですけど、それって立ち上がりに関係しそうですかね? 結局読んでるんだから一緒のような・・・ まあよかったです。何が悪かったのかはさっぱりわかりませんが(^^;) 色々答えてもらって、ありがとうございました!
俺の理解が正しければ a) siteinit.l までで読み込んだもの ダンプファイルに含まれるので、起動時の処理時間は気にする必要がない 程度に早い b) それ以降(.xyzzy など)で読み込んだもの ダンプファイルに含まれないので、起動時の処理時間は場合によっては イラっとするくらい c) autoload 起動時には(ちょっと処理するが)読みこまない。autoload された関数を 初回の実行時に読み込むのでそこでイラっとする場合も
outline-tree2 の導入はガチだと思う。
>>217 こっちの環境では
>>214 で動作したよ
相対パスでも問題なし。
これ↓評価してみて(*scratch*バッファで最後の閉じ括弧以降にカーソル置いてC-j)
NGってでるなら*error-regexp-list*に追加できてないかも
(let ((str "\"C:/Program Files/xyzzy/lisp/c-mode.l\", 82: (interactive \"*\")"))
(or (dolist (x *error-regexp-list*)
(when (string-looking-at (pop x) str)
(let ((file (match-string (pop x)))
(line (parse-integer (match-string (pop x)))))
(when (file-exist-p file)
(msgbox "~S\t~S" file line)
(return t)))))
(and (msgbox "NG") nil)))
>>221 それは動きました。
正規表現と文字列見た感じでは動きそうな気もするんですが、何が悪いんだか...
msgboxとかでデバッグするとして、
どこのタイミングでどの変数出せば良いかとかが分かれば見てみるんですが...何かありますでしょうか
(lispはそれほど得意じゃないので、ある程度までしか分からないです)
もうxyzzy自体がバージョンアップすることはないのかな・・・? 行カーソルと折りたたみ機能がほしい・・・
「列カーソル」じゃないの?
すみません、列カーソルでした。
列カーソルならちょっといじるだけでできそうな予感
かっけー
今、xyzzyのソースをチラ見しましたが、普通ソースに対するコメントって あんな感じなんですか?ほとんどなかったように感じましたが・・・ 仕事では、大体1行ごとに何かしらのコメントを入れていますし、 他のみなさんも大体1行ごとにコメントを入れています。 仕事は組込み関係です(ECUのファームウェアを作ってます) みなさんも、コメントはほとんど書かない派ですかね・・・?
別に仕事でやってるわけじゃないんだから作者の自由じゃない? 仕事なら20%〜40%くらいはコメント入れてほしいなぁ。
オープンソースを念頭に置いてたわけじゃないだろうしな。公開してたのも単に善意だっただけだろうし。
232 :
名無し~3.EXE :2009/02/15(日) 02:33:08 ID:BeDp5XLt
一行ごとにコメントなんてアセンブリ言語でもなきゃやらんだろう。 大体そんなに何をか書くんだ? 関数の直前にその関数の大まかな機能の説明と、込み入った部分に解説くらいでいいしょ。
俺も大体一行ごとってのは多すぎると思う コードそのものの説明はするなって教わったけど、違うところも多いのかな 自分だけでC++の時だと、Google C++ Style Guideで書くように今はしてる
一行ごととか正気の沙汰とは思えないな。 まさかこんなんじゃないよね。 // エントリーポイント。ここから始まる int main(){ // 変数iを0で初期化 int i=0; // iが256より小さい間、ループ while(i<256){ // iを表示 printf("%d\n",i); // iを1増やす ++i; // ループここまで } // 0を返す return 0; }// おわり 書かないほうがマシ。 普通はせいぜいこれくらい? int main(){ int i=0; // ループ用変数 // 0から255まで表示 while(i<256){ printf("%d\n",i); ++i; } // 正常終了(0) return 0; }
>>227 2バイト文字使う人は死ぬべきとか。ネタだとしても過激だな。
てか、xyzzy使う人って2バイト文字使う人いないの?
それに実際に
>>227 使ってる人っているの?
大学を卒業した今、もはやxyzzyは2ch-mode専用機です。
就職した今、もはやxyzzyは開発ツールです。
>>237 職場でxyzzy使えるの?
うちはサクラエディタと秀丸しか使えないんだが。
サクラエディタが使えて xyzzy が使えない理由がわからんな。
権限者の趣味だな
241 :
名無し~3.EXE :2009/02/15(日) 19:02:20 ID:BANezZbg
申請があったのがその二つなんだろう。
うちの職場では継続的にサポートがなされていないソフトは使えないことになっているらしい。 xyzzyが使えないのは結構痛いが、秀丸を覚えるしかないだろうね。
安定バージョンだから更新の必要がないんだよということにしておけ。 WWWCとかCLCLとかオミトロンとかもうずっとバージョンが上がってないけど使ってるよ。 VistaでサポートされなくなったVisualStudio6や2003もその扱いだと使えないことになるけどそうしたら困るよ。 他にももうずっとバージョンが上がってないけど何も困らず使ってるソフトって結構あるものだよ。
ISMS取得のための社内規定として、フリーソフトは基本的に登録したものしか使えないことになっている。 このスレが過疎りがちなのも、xyzzyが使えない企業が多いからなんじゃないかな。
今更お気に入りのエディタを使うななんて言われたら生産性半減するよ。 そもそもうちのIT企画課の連中は金を払えば安心なのか、 湯水の如く他社に金をばらまいて、しかも仕事の邪魔ばかりする。 その金稼ぐのにこっちはどれだけ苦労してると思ってるんだ!
SourceForge でとりあえず場所確保して ソースコード変えずに「継続的に開発中」って掲げとけば許可されるんじゃない?
マジでそうしてほしい
秀丸と違いxyzzyはフリーだし、いろいろ便利な機能があると力説しても それを定量的に、客観的に示さないとだめとぬかしやがるしね。 昔は、自由に使えたのに。 これでは生産性が落ちるといっても、落とすほうが悪いと言う始末。 ブラウザはIE、メーラはOE、エディタは秀丸・・・ マジやる気なくす。 ブラウザとメーラは別にいいけど、エディタは、野球選手でいうグローブやバットだぞ・・・ 特に組込みをやっているから、エディタの使い勝手は重要。
秀丸のアイコンファイルを抜き出してですね、 xyzzyの実行ファイルにですね…ってパス通さないといけないからダメか。 まぁ不可能でもないんだろうけど、そうまでして押し通すものでもな…。 いやしかし、生産性が落ちるようでは意味が…いやいやいや…。
YOU、管理しちゃいなヨ!
xyzzy使っちゃだめな企業って、そんなに多いの?
知らなかったけど ISMS取得に必須なんだったらやっぱり多いんじゃない? そういうこと好きなお方達たくさんいるから
>>245 俺ミクシィやったことないから知らないんだが、
xyzzyってテキストエディタのコミュニティじゃ大きいほうじゃない?
あふの作者も入ってたような気がする
話の繋がりがさっぱりわからん
うちはISMS取得してるがxyzzyは 申請して利用OKだな。
ヘルプやReadmeなどに、商用利用の可不可が明記されていれば、企業やSOHOでも使える。 Personal non-commercial use only だと、企業はもちろんSOHOでも不可なのでは。
paren.lをダウンロードしたいのですが、「喜多さんのWebサイト」はもう閉鎖してしまったのですか?
paren.lでぐぐれ。オリジナルのparen.lじゃないけど改造版がいくつか見つかる。
260 :
258 :2009/02/19(木) 14:34:35 ID:7hBuBJAd
適当に改造版を入れました この手のはあんまりオリジナルにこだわる必要もないか・・・
誰かxyzzyのソースを引き継いで開発してくれないかな・・・と他力本願なことを言ってみる。
開発続けるっても何の機能をつけるのさ
あれ? 2005年12月7日にオプソ化ってなってるけど、その間誰も後継版開発してないの?
あ、Meadowも更新頻度はそんなもんか ただ開発が終了してるのとしてないのとじゃ大きく違うな・・・
>262 VC++2008でビルドできるようにするとか…
それ機能じゃないじゃん
Common Lispへの準拠度をあげる、とか。 でも重くなりそうならこのままのがいい
マルチディスプレイの挙動をなんとか…
保守性を上げるだけでも開発続いてることになるのでは?
色指定をRGBで直接はまだやれないんだよね?
背景画像かな 背景色で悩まなくて済む
2ch-modeが新着レス数を表示できれば本体の機能追加は要らないです
そもそも作者は生きているのか?
亀井さん 代表取締役なのかぁ そりゃコード書く暇無いだろうなぁ
この前職場の秀丸使いから 「お前の使っているエディタは標準で列カーソルや#if 0〜#endifの箇所の色変更や折りたたみ機能もないのか」 「っていうかそんなマイナーなエディタを使うなよ」 と言われ、悔しい思いをしました。 xyzzyにおいて、過去スレなどを見た結果、 上記機能はないor実現困難なのはわかりました。 でも、このままでは悔しいです・・・
ないの? emacsで出来るんだしxyzzyでも出来そうな気がするけどなあ。
>276 大量ファイルや大きめのファイルのgrepの速度でも争ってみたらいいんじゃない? grepや置換の時に改行が入ってたりとか複雑な正規表現とか使ってみるといいかもしれない。 それとかWindowの分割とか便利そうに使って見せつけてみるとか。 同じ機能があるかで争うと泥沼になるのでできるけどやらない方向で。 必要な機能があるツールを使い分けるというスタンスで秀丸にない利点を見せた方がいいかと。 最近の秀丸がどれくらい変わったのかは知らないけど、 秀丸は巨大なファイルを開くときも一時ファイルを作って使用メモリを抑える傾向があるので 大きめのファイルの処理速度がいまいちなのが好きじゃない。 その代わりメモリに納まらないサイズのファイルでも編集できるのは利点だけど…。
>標準で。 #if 0〜#endifの箇所の色変更 はできるんじゃないの? 列カーソルはどういう機能か知らない。 折りたたみは要望でよく上がる。
部分隠し出来ないのか、知らんかった。 さすがにこれは本体バージョンあがってくれないとつらいやね。
そんな争いしないで、「俺はこれが使いやすい」でいいじゃないの そしてもし秀丸の方がいいと思ったら素直に乗り換えたらいいじゃないの
でもなんでかエディタとかブラウザとかOSとかって戦わずにはいられないんだよな。
テキストファイルが作れれば別に何でもいいと思うが
>283は今後一生メモ帳だけで生きていくそうです
よし、じゃあ俺は保存ができない「チラシの裏」を使うことにする!
とりあえず、xyzzyには辞書があるんだ! って言ったら 「へー・・・だから?」って言われたので、 Gtags機能とか他にも色々拡張できるんだ! って言ったら 「別にそんな機能いらねえし・・・」 俺にはxyzzyのよさを引き出せなかった。ごめんよ・・・
>>286 M-x hide-ifdef
cppで処理して表示するみたいだからそれなりの開発環境ととのってないとだめかと。
cygwinとか入ってればokk
>>287 確かに現状で問題ないなら乗り換える必要ないしな。エディタは。
xyzzyのいいところ? 「軽くてemacs的な拡張性があるにもかかわらず、適度にwindowsアプリ的なカスタマイズが可能であること」 「その拡張の多くが、netinstallerによって可能であること」 の二点だと思う。
とくに軽いのが一番大事だなw
Meadowだとちょっと重いしね。 結局のところその「拡張性」にwktkするかしないかの違いだよなあ。 するのが正しいとかしないのが正しいとかじゃなくもう趣味の話だよね。
dabbrev-expand で別バッファにもpopupにもリストを 出さずにただ順番に補完していく設定はありますか?
>> 「別にそんな機能いらねえし・・・」 M-x 2ch-mode
>>294 ほんとだ。
本体を落としてきてまっさらな所にいれれば
そういう動作になりました。
何が邪魔してるのか探して見ます。
lisp-complete-symbol を呼んでいたようです。 ずっとdabbrevだと思ってました…。 これはpopup, バッファ無しで動かせますか? ヘルプを読む限り、どちらかを選ばなければならないようですが。
CAEやってましてNastranのバルクファイル編集してるんですが、ルーラーを10桁から8桁にすることってできますか?
>>297 ソースいじるしかなさそうな気がします。
ソースいじるなら
Window.ccの3294からの
Window::paint_ruler (HDC hdc, const RECT &r, int x, int y, int column) const
で10と5とそれ以外の場合で分岐してるのでここに足せばよさそうな気はします。
299 :
名無し~3.EXE :2009/03/16(月) 23:35:33 ID:xnnD/6W3
C言語でコンパイルしてできた実行ファイルを execute-subprocess で呼び出してるんですが バッファ上で表示されるタイミングを コマンドプロンプトと同じにはできないんでしょうか? getchar で入力を受け取る時に 何を入力するかメッセージを表示したいのですが 入力が終わったあとに printf の内容が表示されてしまいます。 具体的には↓のだと"plz enter sth" が キーボードからの入力が終わってから表示されてしまう状態です。 #include <stdio.h> main(void) { int c; printf("plz enter sth"); while ((c = getchar()) != '\n') { putchar(c); } } 何かうまいやり方はないでしょうか?
301 :
名無し~3.EXE :2009/03/17(火) 00:00:45 ID:xnnD/6W3
>>300 レスありがとうございます。
鯖が落ちてるのか、今開けないようなので
後で見させて頂きます。
>>302 とりあえず ac-mode じゃだめなのかね
304 :
302 :2009/03/18(水) 09:28:11 ID:BXK4+T12
今、ac-mode 使ってます。 ただ php-completion が便利すぎるので。
>>304 たぶん、 php-completion を移植するのは大変すぎるから、
現状の ac-mode に足りない、便利な機能というのを、
ちゃんとここで説明してみれば?
そしたらだれかが、 ac-mode-php とか作ってくれるかもしれないし。
306 :
304 :2009/03/18(水) 18:51:38 ID:BXK4+T12
>>305 確かにそれが現実的ですね。
ac-mode も素晴らしいので。
とりあえずの希望としては
・関数の引数も出てほしい
・文字の途中はインデントになってほしい
( Ex. str_replace の str_ の位置で C-i したらインデント )
でしょうか。
307 :
297 :2009/03/19(木) 00:17:45 ID:AR+UtHp/
>>298 そうですか。どうりでそんなlispがないと思いました。
どうしても我慢できないならソースいじってみることにします。
ありがとうございました。
308 :
名無し~3.EXE :2009/03/23(月) 18:30:45 ID:O/WRJkz/
packaged-xyzzyが3月15日に更新してるね。
test
あふのユニコード対応が始まってるけどすごい大変そう delphiコンポ+Win32APIという別のわずらわしさがあるにしろ xyzzyはさらに大変だろうな ソースあっても誰もやってくれないわけかw
ユニコード対応って何をすること? 対応するとどういうメリットがあるの?
aの上に「..」がついてるような文字を含むファイルが開けるようになる。
今は開けないんだっけ?
そのくらいなら、今でも編集できるね。
LispがUnicodeなんだから、ちょっとCreateFileのあたりいじるだけでできるだろ。 と思ってソース見てみたが、やってられない量のcharだった。
iswitchb を complete+ で補完させようと思って、以下のように変更して 動いているみたいだけど、、、これでいいのかな? 教えて。 ;(setq iswitchb-final-text (completing-read ; prompt ;the prompt ; '(("dummy" . 1)) ;table ; nil ;predicate ; nil ;require-match [handled elsewhere] ; start ;initial-contents ; 'iswitchb-history))) (setq iswitchb-final-text (completing-read prompt (mapcar #'buffer-name buf-order) :must-match t :default start)))
swank欲しいなー
outline-tree2で、バッファに変更があるたびにツリーを更新することはできますか? いちいち更新するのが面倒なときがあるので・・・
320 :
名無し~3.EXE :2009/04/25(土) 03:07:32 ID:CWu4t5Ul
>>319 キー入力全てに対して更新、それとも保存したら更新?
enterだけに割り当てるのがいいんじゃない?
>>319 おれは recenter-with-hook 入れて、
config.l に下のを書いてるけどな。
希望通りにするなら、*post-command-hook* に引っ掛ければいいよ。
(defun olt-updates ()
(when (and (outline-tree-exist-p)
(outline-tree-open-p))
;(outline-tree-create-outline)
(outline-tree-hscroll *outline-tree-hscroll-arg*)))
(require "recenter/recenter-with-hook")
(add-hook 'ed::*after-recenter-hook* 'olt-updates t)
323 :
322 :2009/04/25(土) 13:28:21 ID:8My0j0cH
あ、(outline-tree-create-outline) のコメントはずしといてね。
324 :
322 :2009/04/25(土) 14:37:48 ID:8My0j0cH
まだ間違えてる。。。 (defun olt-updates () (when (and (outline-tree-exist-p) (outline-tree-open-p)) (outline-tree-create-outline)))
grepをかける際に、コメント行を無視してgrepをかけたり、 逆にコメント行のみでgrepをする・・・ことは可能でしょうか? 言語はCなので、コメントは/*〜*/か//になりますが。
328 :
319 :2009/04/26(日) 22:41:49 ID:6kC0S+MD
返答ありがとうございます。 キーを押す度に更新されるのも結構うざそうなので、Enter押下の場合のみ更新しようと思います。 そこで更新用の関数を書いてEnterに割り当てたいのですが、キーバインドがうまくいきません。 (global-set-key #\RET '更新用関数) 上記のように記述してもEnter押下では反応しませんでした。更新用関数が動作するのは確認しています。 Enterに関数をバインドする方法として、この記述は間違っているのでしょうか? 正しい記述方法をご存知の方がおられたら、ご教授下さいm(_ _)m
>>328 モードごとのキーバインドで隠されてるんじゃないかと予想
330 :
319 :2009/04/27(月) 00:00:48 ID:6kC0S+MD
>>329 どうやらそのようです。各バッファで local-set-key を用いることで、そのモードでのEnterに割り当てることができました。
ということは、異なるモードでファイルを開くたびに、local-set-key を実行しないと割り当てできないのでしょうか?
olt2が起動している間はどのモードで開いても割り当たっていてほしいのですが・・・
独自にolt2モードでも作るしかないんですかね?
\RET が置き換わっちゃうと不便じゃない? 別のキーに割り当てるのが楽だと思う。 どうしてもやるなら、マイナーモードにしておくのが良い。 上書きモードみたいにバッファをまたいで動作を変えられるはず。
ところで、Windows 7で動くの?
Windows7でVMwareがちゃんと動けば問題ない
>>326 > recenter-with-hook ってなに?
むかし 思いつくままxyzzy にあったんだけど、
今は公開されてないね。。。
C-l (recenter) したときに、ついでに実行したい関数をフックするやつ。
336 :
319 :2009/04/29(水) 23:14:03 ID:bx1w3okR
とりあえずOLT2-modeを作成して、Outline-Tree2の起動時にそのマイナーモードを用いることで、Enterへのキーバインドは解決しました。 ミニバッファいじったときにEnterが誤反応するのが難点ですが(笑) 答えていただいた皆さん、ありがとうございました。
はいはい
C-x # で make を実行するため make と入力していくとき、 mak までで すべての候補が make だったので make が挿入されて、 続けて e を入力すると makee となってしまうのは どうにかならないでしょうか。 ちなみに、ac-mode と complete+ は使用しているので、そのあたりも 関係しているかもしれないです。
まず、それらをはずして、原因を特定してください。
340 :
338 :2009/05/24(日) 16:48:42 ID:OmaY8YwJ
complete+ なしでも起こるようだけど、関係はしてました。 んで、自分でなんとかしました。 お騒がせしました。
だからなんで原因を秘密にするのか。
ole.lを使ってOLEオブジェクトのメソッドを実行すると メソッドの実行中はxyzzyの操作ができなくなるみたいなのですが、 実行中でも操作できるようにoleをバックグラウンドで呼んだり C-gでoleの実行をキャンセルすることはできるでしょうか?
そんなやつは何処にでもいるから、気にしてたら仕事なんてできないけどな。 でもここは仕事じゃないから、すきなように、書きたいことだけ書けばよい。 とはいえ、活発なほうが楽しいよね。
安定しちゃったね。
たとえHP更新していなくても、毎日このスレはチェックしてますよ!
キーワード色付けはもうちょっと色数欲しい...
>>347 HPのタイトルはころころ変わっているだろw
ほんと豆にタイトル更新するよなw
え?
えっえっなんかこわいそれもこわい
本当にやる気がないとか思っていたらすごく怖い
自動更新じゃないだろうね?
ruby-mode が正規表現を %r で括るとインデント壊れるのが困ってる。
追加してほしい機能はあるんですけどね・・・ Wikiもぐだぐたになってきましたし、ちょいとつまらない・・・
wikiはみんなで編集するためのものですよ
そこそこ欲しいものがあるなら、自分で作れなくても、アクション起こすのが効果的ですよ。
fixdapみたいになるのかな。
git-mode ってないの?
なんかすげぇイラっとした
なにに?
寝るときに蚊の羽音が聞こえるけど 電気をつけると気配が消えることに。
そんなときは、起きてlisp書くといいよ。
蚊取りlispでも書くか
ftp の読み書きを xyzzy 経由でしたかったので 外部で ftp と接続するexe 作っておいて call-process でよんで使おうとしてるのですが 普段ファイルを開くときにある補完はどうすれば実現できるのでしょうか? ftp から ファイル名一覧を読み込んでファイルに落とすところまでは できたのですが、ここから何をさわれば良いかさっぱりわからず困っています。
普通のファイル名補完なら interactive の説明読めばできると思うよ。 そうじゃなければ ~/lisp/complete.l を読んでみるといいかな。
>>367 dです。
do-completion を使うとできそうな事がわかりました。
もう少しごちゃごちゃ触ってみます。
ん? *do-completion と do-completion の2つあるみたいなんですが 先頭に星があるのは何か特定の命名規則にそっているんでしょうか?
>>369 特定の命名規則なのかどうかは知らんが、
built-in な関数(特に system パッケージの関数)にだけ、
* で始まる関数名を付けてるみたい。
特に気にすることないんじゃね?
ところで、もうできた?
>>370 なるほど、ありがとうございます。
>ところで、もうできた?
スローライフな脳みそなので多分1ヶ月ぐらいはかかるかと。
do-completion を使う前にまずファイルを読み込んで
それを list にする所で躓いてます…。
>>371 スローなのは、別にいいんじゃない?
よければ、できたときに公開してください。
ただ、昔佐野さんがそんなようなの作っていたような気がしないでもない。
知ってる人いたら、プリーズ!
> do-completion を使う前にまずファイルを読み込んで
> それを list にする所で躓いてます…。
一行単位なら
(goot-char (point-min))
(let (lst)
(while (scan-buffer ".*" :regexp t :tail t)
(push (match-string 0) lst))
; もし順序がファイル内と同じほうがいいなら、 以下のコメントはずす
; (setq lst (nreverse lst))
)
>>372 テストしないと、すぐ間違えるな...
- (while (scan-buffer ".*" :regexp t :tail t)
+ (while (scan-buffer ".+" :regexp t :tail t)
>>372 別に作ってないよ。
siloさんのvirtual-fileシリーズでftpは大分使いやすくなるよ。
>>372-372 サンプルコードありがとうございます。
ただ、必要ないのにbufferで開くのが少し嫌だったので
結局以下のコードになりました。
(with-open-file (in "filelist.txt" :direction :input)
(let (buff)
(while (setq buff (read-line in nil))
(push buff *ftp-file-list*))))
変数 buff が冗長な気がしたので
nil をpush したら nil を返す my-push でも宣言して
(while (my-push buff *ftp-file-list*)) にしようかと思いましたが変ですよね、これは。
他にうまい書き方あるでしょうか?
>>374 virtual-file-ftp を検索してみたところ
これを使えば今作ろうとしてるのは無用になってしまう事が判明したので
検索結果は見なかったことにする事に決めました。
lispに慣れたいのが一番の理由だったりしますので。
>>375 > 他にうまい書き方あるでしょうか?
(with-open-file (in "filelist.txt" :direction :input)
(while (peek-char nil in nil)
(push (read-line in) *ftp-file-list*)))
こうかな。listen がなぜか EOF でも t を返すから peek-char 使った。
>>375 作り始める前に良く調べるのも楽をするコツだね。
自分で作らなくても、ソース読むだけで勉強になるし。
(with-open-file (in "filelist.txt")
(loop
(unless (car (push (read-line in nil) *ftp-file-list*))
(return (pop *ftp-file-list*)))))
僕はふつうlet使って書くけど、なんとなく。
邪道? (with-open-file (in "filelist.txt" :direction :input) (loop (push (or (read-line in nil nil nil)(return)) *ftp-file-list*)))
lisp について質問させてください。 下のコードのように hoge を実行する直前に do-something を実行したいので このように書いたのですが、これだと引数が渡らずエラーになってしまいます。 もちろん call-hoge (&optional file) (interactive "F") とすれば 正常に動作するのですが、あくまで事前に処理を少ししたいだけなので そういう呼び出しをせずにできると嬉しいです。 hook変数を自分で定義して使えれば一番良いと思うのですが、 調べても作り方がわかりませんでした…。 (defun hoge (&optional file) (interactive "F") (message-box file)) (defun call-hoge () (interactive) (do-something) (hoge))
何がしたいのかよくわかんないうえに、何が問題なのかもよくわかんないので ほんとに「一番良い」のかはわからんが (defvar *hoge-hook* nil) (add-hook '*hoge-hook* 'do-something) (defun hoge (&optional file) (interactive "F") (run-hooks '*hoge-hook*) (message-box file))
やり方は色々あるけど、hogeを呼び出す前にdo-somethingを呼び出すべきなのかな? その書き方の延長だと下の書き方でいける。。 (defun call-hoge () (interactive) (do-something) (call-interactively 'hoge))
>>381 ありがとうございます。
自分でhookを書くときはこうするんですね。
>>382 おおっ、そんな便利な関数があったんですね。
ありがとうございます。m(_ _)m
384 :
名無し~3.EXE :2009/07/23(木) 09:54:19 ID:bIJUE6a9
雪見酒さんのruby-modeを使って
こちらのスクリプトを実行すると
http://myruby.seesaa.net/category/6568883-1.html 日本語部分が表示されないんですね。
それで多分、保存せずに実行する一時ファイルに渡すときに
エンコードが変わっちゃってるんじゃないかと思い
(setq *ruby-save-bufer-before-run* t)
としたら正常に日本語を表示することはできました。
でも、できるなら保存せずに実行したいので
どうすれば良いかと ruby-mode.l を読んでみましたが
自分にはお手上げでした…。
下あたりがその処理だと思いますが
どの関数にも文字コードの指定する方法がなさそうでした。
どなたかわかる方いませんか?
(let
((tempfile (make-temp-file-name
"__temp_" "rb" (default-directory))))
(with-open-file(rb-stream tempfile :direction :output)
(princ (buffer-substring (point-min)(point-max)) rb-stream )
)
(command-execution (concat *ruby-prog* " \"" tempfile "\" " args))
(delete-file tempfile :if-does-not-exist :skip)
)
>>384 > (with-open-file(rb-stream tempfile :direction :output)
> (princ (buffer-substring (point-min)(point-max)) rb-stream )
> )
ここを
(write-file tempfile t nil (buffer-fileio-encoding) (buffer-eol-code))
でどうでしょ
386 :
名無し~3.EXE :2009/07/24(金) 10:15:06 ID:QNPwmebp
>>385 動きました。ありがとうございます。
write-fileなら文字コードの指定ができるんですね。
ところで
>>384 の処理が関数 rb-run に書かれてるんですが
これを ~/.xyzzy や siteinit.l から上書きもとい再定義することはできないんでしょうか?
今回は直接 ruby-mode.l を書き換えたんですが
あんまり良い処理とは思えませんので
本来こういう時にどうすれば良いのか教えて頂けませんか。
>>386 今回の場合は作者に修正点を伝えるのが良いかな。他の人にも影響しそうだし。
そうでなければ、.xyzzyとかで
(require "ruby-mode")
の後に、ruby-mode.l でin-packageをさがして、
(in-package "editor") ;ruby-modeのもの
上書きしたい関数
(in-package "user")
でいいよ。
>>387 require のあとに in-package しないとダメだったんですね。
後者を忘れてしまっていました…。
>修正点
ありがとうございます。作者にメールで連絡させてもらいました。
この手のランキングに興味ないし だからどうしたって感じなんだよな
最近あまりにも新規参入者が少ないから 多少目立たないとコミュニティが自然消滅しちゃいそうで怖いんです。
vectorからダウンロードできること自体初耳だ
秀丸に入れといた
EmEditorに入れといた 新規は少ないかもしれないけど、離脱も少なく見えるから大丈夫じゃね? TeraPadとかに比べると容易く人に勧めるソフトでもないと思うし
雑誌のおまけにはよくついてる気がするけどな
>>394 どこぞの国の長寿・少子化みたいでイヤだなあ、それ
カーソルの下(右?)にある文字を取得する関数はありますか?
(char-after (point)) ?
"123"などの文字列から数字に変換する関数は用意されてますか? ないなら書こうと思うんですが、 初めから用意されてるならそれを使いたいので…。
>>401 ありがとうございます。必死に string と char で探してました。
403 :
名無し~3.EXE :2009/07/28(火) 16:31:38 ID:z9lapXv9
何度もすいません…。 どうしてもわからないので質問させてください。 (defun foo (num, str) (interactive (list (read-string (concat "s" (nth (- num 1) '("1:" "2:" "3:"))))))) (defun call-foo () (interactive) (call-interactively (funcall 'foo 3))) foo の引数によって 入力の表示を切り替えて ユーザー入力を str に入れたいのですが 「foo でどう引数を取れば良いのか」 と 「call-interactively で引数つきの関数をどう呼び出せば良いのか」 の2点がわからず困っています。 どのように書けば上記の処理を動かせるのでしょうか?
何したいのかはよくわからんが、物凄く不自然なコトをしてるのはわかった。
不自然ですか…。 ちょっと処理の仕方自体を見直してみます。
俺も何がしたいのかよくわからんが、下の用件をみたすならこうかな >foo の引数によって 入力の表示を切り替えて >ユーザー入力を str に入れたいのですが (defun foo (num) (interactive "n") (let ((str (read-string (concat "s" (nth (- num 1) '("1:" "2:" "3:")))))) (message "~A" str))) (defun call-foo () (interactive) (foo 3)) で、「call-interactively で引数つきの関数をどう呼び出せば良いのか」は 矛盾を含んでるのはわかるかな?
想像力がないけど、がんばってみました。 下のような方法を使用する状況がいまいち理解できないので はずしている可能性が高いです。 (defun foo (num) (cond ((= num 1) (msgbox "~Aが入力されました。" (read-string "1: "))) ((= num 2) (msgbox "~Aが入力されました。" (read-string "2: "))) ((= num 3) (msgbox "~Aが入力されました。" (read-string "3: "))) (t (msgbox "~A""切り替え用の数値が違っています。"))))
こんなふうにするのが自然なようにも思う。 foo は interactive にしなくていいような気がするんだな (defun foo (str) (message "~A" str)) (defun foo-read-input (num) (read-string (concat "s" (nth (- num 1) '("1:" "2:" "3:"))))) (defun call-foo () (interactive) (foo (foo-read-input 3)))
>>406-407 レスありがとうございます。
readstring は interactive と一緒に使うもの。と激しく勘違いしてました。 orz
call-interactively の件も良く考えたら自明でしたね…。
本当にありがとうございました。
指定したファイルが空かどうか調べるには find-file したあとに (equal (point-max) (point-min)) で判定して、バッファを閉じる以外にはありませんか? 中身を判定したいだけなのに バッファに読み込むのは無駄に思えるので 直接確認できる方法があるなら知りたいです。
file-length
413 :
名無し~3.EXE :2009/08/03(月) 22:19:23 ID:IsWbmYsk
APIの実行速度とか評価したページ無い? Profilerなんか面倒だし、呼び出す頻度とか大体分かってるから……
(remove 2 '(1 2 3)) =>(1 3) だったので (remove "bar" '("foo" "bar" "hoge")) => ("foo" "hoge") を期待したのですが 実際はこうでした。 (remove "bar" '("foo" "bar" "hoge")) => ("foo" "bar" "hoge") なので、こう書いたのですが (remove-if #'(lambda (x) (equal "bar" x)) '("foo" "bar" "hoge")) => ("foo" "hoge") やや冗長な気がします。 もっと良い書き方はありますでしょうか?
(remove "bar" '("foo" "bar" "hoge") :test 'equal)
:test はそういう風に使うんですね。 ありがとうございます。
csv-modeを使ってるのだけど力を貸してください。 編集ダイアログの横幅が短すぎたので、 csv-mode.lの中を見て、幅を550まで広げることはできました。 これを、改行のできない複数行のテキストボックスにすることはできませんか? 550まで広げても、長い文章なんかを表示する時、 はみ出した部分を見るのに手間取ってしまうのです。 それが折り返して表示されたらいいのですが。
>>417 csv-mode は知らんが、dialog-box でとりあえず折り返し表示できた。
(setq *dialog-width* 199)
(setq *dialog-height* 256)
(defun ed::msgbox (fmt &rest args)
(multiple-value-bind (result data)
(dialog-box
`(dialog 0 0 ,*dialog-width* ,*dialog-height*
(:caption "msgbox2")
(:font 10 "MS Pゴシック")
(:control
(:button IDOK "OK" #x50010001
,(- *dialog-width* 40 2 40 1) ,(- *dialog-height* 14 3) 40 14)
(:edit view nil #x50b110c7
1 1 ,(- *dialog-width* 2) ,(- *dialog-height* 1 1 19 1))
))
(list (cons 'view
(substitute-string (apply 'format nil fmt args) "\n" "\r\n")))
nil)
:ok))
(ed::msgbox "~A" 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
delete-file を :recycle t で実行すると変な挙動をするんだけど 仕様? d:/aaa/b.html, d:/aaa/b_files の構成で (delete-file "D:/aaa/b.html" :recycle t) を実行すると、d:/aaa の 中が空になる。 :recycle nil だと、b.html だけが削除される。
420 :
419 :2009/08/12(水) 01:36:08 ID:wDLqfqAj
ちょっと訂正 × d:/aaa/b_files ○ d:/aaa/b_files/ b_files フォルダには、ファイルも存在するです。
仕様というか、シェルを使用した削除(ゴミ箱に削除)だと windowsのフォルダオプションが効いてしまうんでないかな?
422 :
419 :2009/08/13(木) 00:01:33 ID:oHnAaX6s
windows のフォルダオプションって何ですか? エクスプローラのやつじゃないですよね。
普通のWindowsはシェル=エクスプローラよ XPにだけフォルダオプション>表示>詳細に「Webページとフォルダを対にして管理します」があって動作を制御できるみたいね 2kやVistaには項目がなくて強制っぽい レジストリにあるかも知れないけど 単純に名前でhtmlファイルとフォルダが関連づけられてるらしい
424 :
419 :2009/08/13(木) 00:51:45 ID:oHnAaX6s
>>423 トンです。
2k だったので気づかなかったす。
自作lispを気軽に公開できる場所ってありますか?
wikiってどこに投稿すればいいんでしょ? ぱっと見どこに投稿すればいいのかわかりませんでした。 ジャンルわけとかされてないんですかね?
まとまったlispかどうかの判断も難しいところですが、 自分がwikiの利用方法を理解していないため気軽には投稿できなさそうです。 ちなみに自分の言うジャンルわけとは、編集、ファイル操作、ウィンドウ操作 などlispの動作によるジャンルわけのことです。
ディレクトリ分けよりタグ付けの時代ですぜ
432 :
名無し~3.EXE :2009/09/06(日) 09:17:53 ID:mutLP5mY
>>366 です。
今更ですが、一通りできたので晒させてもらいます。
[インストール方法]
NetInstaller用 Packeges.l
http://ironsand.net/misc/packages.l pythonが使える環境なら
FTP-file-handling を
pythonが使えない環境なら
FTP-file-handling-with-exe を選んでください。
機能的には同等ですが with-exeには
py2exeで作ったexeもろもろが入ってます。サイズが5MBほどあります。
xyzzyを再起動するとインストール完了です。
[使い方]
まず初めに [M-x:ftp-config] で初めから設定されてる Dummy を書き換えて
FTPサーバを登録してください。
ftp-openでサーバ上のファイルを開き編集できます。
ftp-saveで編集したファイルをアップロードできます。
初回動作時にサーバのファイルリストを取得しますので
ディレクトリ数が多いとかなり時間がかかります。(数分ぐらい?)
他のソフトでサーバのファイルを変更すると
内部で保存してる一覧と食い違いが出てきますので
たまにftp-refresh-filelistで一覧を更新してください。
lispをWebで勉強し始めて10分。 よくわからん。 C言語のほうが簡単ですね。
10分でC言語が理解できるようになるWebサイトを教えてくれたのむ
Cの知識があればlispなど10分と思ったんだろう
lispはconsセルを意識しながらやっていかないといけないから難しいよね。 cons と list と append で混乱するw あと quote をCのポインタのつもりで理解しようとして何度も挫折したり… でもなんども挑戦してちょっとずつわかって来た時は嬉しかったなぁ。
なんというか10分読んでとっつきにくそうだなというのが 第一印象。 別に10分でマスターできるとは思っていません。 まあ、ぼちぼちとやっていこうと思うけど、目的がないと 続かないな・・・ ちなみに仕事は組込みソフト関係で、Cをやってます。 みなさんはlispを勉強して、つかえるようになった後、 どういう場面で使ってますか?
そりゃxyzzyの拡張だろう
目的がないのに覚えるためだけに覚えるんじゃ何事も成し難いと思うよ
関数型言語のlispと手続き型言語のCじゃ考え方が全く違うから、Cの知識はむしろ邪魔になるかもね。 CommonLispなら手続き型な書き方もできるけど、綺麗には書けないよ。
でも公開されてるxyzzy lispも普通の手続き型みたいな書き方してる人多いから そんな気にしなくていいんじゃないの
Lisp は関数型言語ではないってダグも言ってたじゃん
>>432 wikiのパッケージ一覧に申請しといてやったぜ。
>437 時々テスト用データ(csvとか)作るのに使ってる。 (真っ先に憶えたのがdotimes & formatだったり)
使い捨てだけど長くなるSQLを生成する時とか 冗長なVBのコードを生成する時とか
拡張した機能を、標準機能と区別なく使えるエディタって他になにがあるだろ。emacsはよいのだけど、軽快さとdllの扱いで落ち着けなかった。 lispである必要はないんだけどな。 xyzzyは、やりたいことができたときに、大抵なんとかできるのがよいよなぁ。
>>446 「標準機能と区別」ってのが何のことかわからんのだけど、 jEdit あたりも相当無茶ができる。
「lispである必要はない」といってもさすがに Java は無いかもしれんが。
elisp を変換するプログラムがほしいなぁ
やっぱりみんなemacs使いなのかな
xyzzy 好きだけど emacs の elisp はいろいろ試したいから
javaでもかまわないさ。どんなか一回ためしてみようと思うよ。 標準機能も、基本的に拡張と同じ方法で実装してあるから、xyzzyなんかは無茶ができる感がはっきりしていていいんだよな。
jeditはarmed bear CLが使えるんじゃなかったっけ 正真正銘フルスペックのcommon lisp...
xyzzyは「マクロから直に」WinAPIを叩ける強みがある。 コレを実現してるエディタは本当に少ない。 大抵のエディタは外部dllを作ってやる必要がある。 まぁdllが必要になるケースは限られてるし、xyzzyでも場合によりdllが必要ですが。
netinstallerでインストールされる拡張Lispの置き場所を$XYZZY/site-lispから ユーザのホームディレクトリ以下($HOME/.xyzzy.d/lispとか)に変えるのって大変? Firefoxみたいに、ユーザごとにインストールできたら嬉しいんだけど。
拡張Lisp自体を~/site-lisp/から移すのは割と面倒だよ。 ni-autoloadでは、~/site-lisp/ni-autoloadに入ってる *.lに対応するモジュールが呼び出されることになってる。 そのディレクトリはni::*autoload-directory*で決められてるから、 それをユーザごとに変更すれば良いと思う。
そうですか。xyzzy本体のフォルダごとユーザに持たせた方が楽そうですね。
~/site-lisp/ ではないよ。 それだと、ユーザ毎のホームディレクトリ以下ということになっちゃう。
461 :
名無し~3.EXE :2009/09/24(木) 11:32:00 ID:h/FcpL9R
user-homedir-pathname と si:system-root の混乱はどうにかして欲しいが 混乱してる故にユーザとしては同じにしてしまうのが無難 そして混乱が再生産される
ああ、~/はユーザのホームディレクトリか。勘違いしてた。thx load-libraryはsi:system-rootから探すから面倒なんだな。
誰か三行でまとめてよ。
load-libraryだけなら*load-path*にユーザごとのホームを追加すりゃいいと思うんだけどちがうの?
*load-path*忘れてました。これで出来るはずですね。 (push *load-path* "~/site-lisp") (setq ni::*autoload-directory* "~/site-lisp/ni-autoload") (setq ni::*install-directory* "~/")
>>465 push の引数が逆になってるよ。と一応つっこんでおく。
>このスレを見ている人はこんなスレも見ています。(ver 0.20) >xyzzyの使い方が分からぬやし 励ましあえ その12 [ソフトウェア] >SONY Blu-ray ブルーレイレコーダー Part56 [AV機器] >xyzzyの使い方が分からぬやし 励ましあえ その12 [ソフトウェア] >【テレビ愛知】荒井千里3【スイカップ】 [アナウンサー] >関数型言語ML (SML, OCaml, etc.), Part 6 [プログラム] >【テレビ愛知】荒井千里3【スイカップ】 [アナウンサー] これ誰だw
このスレの人はみんな真面目だなあ。
専ブラだと反映されないんだっけ? 仕組みよくわかってないんだけど UA詐称すれば2ch-modeで見てても反映されるのかな。
aborn.lは連鎖あぼーんはやってくれないですか?
最近、KamailG でメールの未読情報が正しく 表示されないんだけど、うちだけ?
>>317 終了時保存して起動時に復元されたバッファだと一度表示してみてからじゃないと
補完されないみたいです
In my opinion, Klein would be well advised to use her tremendous energy to work on helping turn the country local and addressing concrete problems such as food, energy and transportation. ,
これは記念すべきレベルの誤爆
というか荒しでしょ。他スレにも似たようなの来てるし。
あ、そうなの? この板このスレしか来ないから知らなかった。
板というか、ネット全域にわたる仕事みたい 俺の個人掲示板にも来てるから
There is no plan nor capital for a so-called electric economy. ,
>>477 へぇ、そうなんだ。
他のところで見た事無いなあ。
>>477 に憑いてる幻覚じゃないよね?
自分が見たこと無いからって全否定とか
どうでもいいけど幻覚って人に取り憑くものなんだろうか。
…軽い冗談書いたつもりなんだけど わかりにくかったか、ごめん。
どんな冗談のつもりだったのかさっぱりわからんちん
かさにかかったバカが滑ったようにしか見えないけどな
これは記念すべきレベルの誤爆(キリッ とか言ってみたら全然ズレてたから悪あがきしただけじゃないですか。
xyzzyを中国語OSにインストールすると、ShiftJISはもちろんUTF-8Nのテキスト データも化けます。 なんとなくxyzzyのデフォルトのエンコードを、例えば日本語OSなら明示的に SJISとせず、システムデフォルトを参照しているように思います。 なので、中国語OSの場合、GB2312をShiftJISと見なして、ファイルを開いているように 思います。 この問題に対する既知の解決策があるようでしたら、ご教示いただけませんでしょうか?
(setq *default-fileio-encoding* *encoding-utf8n*) 中国語は big5 とかそんなんだったと思う。
488 :
486 :2009/11/09(月) 21:50:51 ID:Yyyl+HZf
>>487 ご回答ありがとうございます。
big5は繁体で、簡体ならGB2312ですね。UTF8Nで試してみます。
GB2312 なら *encoding-euc-gb* で。
emacsのようにマウスだけでコピペ (defun mouse-right-press () (interactive) (mouse-left-press) (paste-from-clipboard)) (global-set-key #\LBtnUp 'copy-selection-to-clipboard) (global-set-key #\RBtnUp 'mouse-right-press) というのを使おうと思ったのですが、選択後コピーされるのはいいのですが選択解除されてしまいます 選択状態を維持したままにしたいのですがどうすればいいでしょうか?
共通設定>さまざま>クリップボードへのコピーで範囲を
途中送信してしまった。 共通設定>さまざま>クリップボードへのコピーで範囲をクリアしない にチェックを入れると良いよ。
>>492 できましたありがとうございます!
Lispでどうにかなるんだろうと探ってたのがアホみたいだw
NTFS代替ストリームの読み書きをするにはどうすればいいですか?
495 :
494 :2009/12/02(水) 19:13:17 ID:d8OKSxLm
file-name-dialogやwin32のGetOpenFileName等のダイアログでは、 代替ストリーム名を取得できないみたいなので、ミニバッファからの 入力限定で解決しました。 現在代替ストリーム書き込み時にsave-bufferが使えないので、 write-fileを使用して書き込みしているのですが、save-buffer と挙動が違うのでできるだけ似せようとしています。 write-fileで書き込み後バッファの変更フラグを消すために not-modifiedを使うと、使うたびに変更なしの箇所が増え、 save-buffer使用後のような変更なしの箇所が一箇所じゃなく、 複数できてしまいます。これを一箇所だけ変更なしにするには undo/redoを繰り返して(set-buffer-modified-p t) をしなくてはいけないのでしょうか?
http://xyzzy.s53.xrea.com/wiki/index.php?FrontPage ここを見ながら今やっています
netinstallerを使うで
NetInstallerにサイトを登録する †
これで準備はすべて終わりです。実際に使ってみましょう。おもむろに
M-x netinstaller
と入力します。するとNetInstallerのモードになります。すると、下みたいな画面になるはずです。
と書いてあるのですがおもむろに入力となっていますが詳しい人に説明するなら
説明するまでもないことなのかもしれませんが初心者をないがしろにしていませんか?
正直ふざけんな!!!って思いました
あまりにも不親切
今日適当にエディタを探していたらxyzzyを発見してかっこいいなという理由でホームページの編集
にでも使ってみるかと思ってやっていたのですがもうやる気なくしました
環境を作る段階でこれでは先が思いやられます
恐らく恐ろしく省かれて説明されてるんだなと容易に想像ができます
”おもむろに”←なんだこれは
敷居が高いソフトとは知っていましたが本当に高いんですね
それだけです
言いたいことは
もちろんこれはもう消します
xyzzyはおもむろに使わないでどう使うんだ?
まあ確かに M-x が Alt + x の意味だと知らんとどうしようもないな。 wiki を見てみたけど、すぐ目に付く位置にはなさそう。 長文で文句たれるまえに「M-x ってどこに入力するんですか?」って聞きゃ良かったのにね。
20分ぐらい待てよwwww
Quicktourを頭から読めば分かるようには書かれているんだがな。 本当にすぐ使いたい人向けに、要点だけ書いたものがあった方がいいのかね。
>>499 treeview.dllだけを取り出してxyzzy.exeと同じ場所に置く
でもおすすめはnetinstallerでインストールする方法。
聞いてることには答えてくれないのですね なるほど
そのnetinstallerでインストールする方法を教えてください ってなるわな・・・
>>503 treeview.dllだけを取り出してとありますがそれ以外にもたくさんファイルがありましたよ
それらはどうするんです?
そこまで説明してほしかった
>>506 頑張ってくださいね( ^ω^ )
応援してます
ここにいる方は頭はいいのでしょうが そのせいか素人に対する説明は上手ではないですね それが敷居を高くしている原因のような気がします 1から10まで説明してくださいとは言いませんがせめて7くらいまでは 説明してくれても罰は当たらないと思いますがね
ああ
>>496 の人か。
ごめん答える気になれんわ。
前レスで新しい人が増えないとxyzzy自体が衰退してしまうという内容のレスがありましたが なるほどなって思いますよ 単純に人に教えるのが下手なんでしょうね 改善されたほうがいいかと思いますね
いや、もう答えてくれなくていいですよ 以上です
まず、今どんな状態か想像できない。 .xyzzyに書いた設定がちゃんと反映できる? できるなら、wikiのQuickTour/ext/NetInstallerをちゃんと読めば設定できるはず。
読んでいるのでね 読んでわからないからここで聞いているのですよ 今日はもう寝ます もしかしたら明日またチャレンジするかもしれません
>>510-511 首だけじゃなく少しは頭もひねろうや。ほんと香ばしいやつだな。
おまえ自身が一番問題だってことに早く気づけ。エロ動画貼ったら
サルでもわかるように説明してやんよ。ギブアンドテイクは常識だろ。
>>513 土日はサポセン休みなので
また月曜日に来てね (´∀`*)ノシ
おもむろにクソワロタwww
試行錯誤結果の情報を、ぜひ第二の貴方のためにまとめて公開を♪
今ほど情報が無いころに導入して、ひ〜ひ〜言いながら
使い方覚えた俺からすると
あんた文句多すぎだわ
自分で(
>>496 )言ったように、もう消した方がいい
伸びてる!これは神lispの予感…! と思って来たらガイキチか。 みんなとっととNG放り込んで無視しとけ。
お父さんかお母さんに聞けばいいのに…
僕も悪かったな 環境はxpのsp3です xyzzyを選んだのはかっこいいと思ったからです よくわかりませんがxyzzyでHTML CSS XML perlスクリプトをやってみたいです そのための環境作りをしている最中なのですが説明サイトが歯があちらこちら抜け落ちたような 状態なようで初心者の僕には分からないことが多くいらいらしながらやってます ご指導よろしくお願いします
>>524 初心者かどうかじゃなくて、人格の問題。
だから、どんな指導を受けても絶対に使えない。
諦めてください。
xyzzyは、勘とドライブ感で疾走するエンターテイメントのついでに、実用性もくっついてるものです。 楽しめないならやめたほうがいいよ。
その程度でイライラするくらいなら 悪いことは言わん 違うエディタを探したほうがいい
ちゃんとwikiのメニューの頭から順に“一行も飛ばさずに”読めば使える。 導入するところが一番簡単だから、それが出来ないんだったら向いてない。 新しい機能を試そうとするたびに同じくらい苦労するよ。 導入しやすくてクールな環境ならvimとかeclipseを薦めるから考え直すと良い。
秀丸を使えば良いよ
ウホッ 何かおおきな動きがあったのか! っと思って覗いてみたらこれか…
みんなちゃんと見てるってわかって安心した
532 :
495 :2009/12/06(日) 09:58:56 ID:MYsx0OEz
結局
>>495 のnot-modifiedの件は不可能ですか?
>>532 代替ストリームの読み書きなんてやったこと無いんで何とも言えないんだけど
差し支えなければ件のコードをアップしてみたら?
>>495 は代替ストリーム云々はさておいてwrite-fileの問題だろ。
write-fileで呼び出してるwrite-regionもsave-bufferもbuiltinだから
ソースを当たらないと手が出せないと思う。
info-modokiで調べた限りでは
>>495 のやり方しか思い浮かばなかった。
undo情報に直接触れたら便利なんだけどな。
久々に伸びてると思ったらおもむろにで笑ったw ただ住人がたくさんいることはわかって安心した
おまえらがxizzyを使ってる動機って何? 1年も使っといてこんなこと言うのもなんだけど xizzyの利点がハノイの塔くらいしか思い浮かばないんだ…
昔から使ってるから 今はもっといいのあるんだろうけど自分用のスクリプトをまた書くのめんどい
五目並べだろ
今さらelispには戻れんよ。拡張dll導入してwindowsを使い倒せるemacs系エディタはxyzzyしかないし。
新しい評判のエディタが出るたび、試しているけど xyzzyの方が快適で移行する気にならなくなる いろんなバランスが絶妙すぎる
2ch-mode専用機
2ch-mode,mua,irc client,メモ帳,電卓専用機
xyzzyで@"\"をなんとか実現できないものかといつも悩むが 機能的にも速度的にも代わりになるエディタが未だに見当たらない。
> @"\" なにこれ?
>>545 C#のエスケープ文字が一切聞かないすごい文字列リテラル。
Windowsのパスを表記するのに便利。
string dir = @"C:\hoge\bar\baz"
google Go言語モードとかないですか?
XULRunnerベースのテキストエディタが出てくれれば乗り換えるんだけどな
>>546 なるほどねぇ。
詳しいことは知らんが、
リーダーマクロってやつを使えばできるんじゃない?
>>546 適当に書いたけど、こんなの?
(defun read-string/ignore-escape (stream c0 c1)
(let ((result (make-string-output-stream)))
(do ((c (read-char stream) (read-char stream)))
((char= c #\") (return (get-output-stream-string result)))
(write-char c result))))
(set-dispatch-macro-character #\# #\" #'read-string/ignore-escape)
#"C:\foo\bar\baz.txt"
;-> "C:\\foo\\bar\\baz.txt"
>>550 たぶんだけど
>>544 が欲しいのは@"\"をちゃんと閉じた文字列と認識して
色分けしてくれる昨日だと想う。
今のxyzzyだと\を認識してしまい文字列が閉じていないと判断し、
これ以降ずっと文字列扱いになってしまうはず。
>>551 それは正規表現キーワードで、お茶を濁すもんかと。
しかしまぁ、 544じゃないと実際何がほしいかは分からんが。
553 :
544 :2009/12/15(火) 01:26:04 ID:+yw+Pc7d
>>551 そうです、それ以降が全部文字列扱いになるのを何とかしたいのです。
結構起きやすくて。
>>552 適当に書いてみたらうまくいったっぽい。
(defvar *csharp-mode-formats*
(compile-regexp-keyword-list
'(
("@\".*?\"" t :string)
)
)
)
(setq regexp-keyword-list *csharp-mode-formats*)
(add-hook 'csharp-mode-hook 'my-color-csharp-mode)
(defun my-color-csharp-mode ()
(make-local-variable 'regexp-keyword-list)
(setq regexp-keyword-list *csharp-mode-formats*)
)
>>553 @"hoge" foo @"bar"
でも正しく色づけされる?
555 :
544 :2009/12/15(火) 11:20:23 ID:B0VZsLMB
通常の文字列の処理が先にされてる感じでうまく行ってなかった。
行カーソル表示中で (setq inverse-cursor-line t) にしてから上へカーソル移動すると、右側に小さな点が残るのですが、 これって環境依存的なものですか?それとも不具合なんでしょうか。
>>556 たぶん不具合。
行カーソルと折り返しラインの交差するところが反転したままになっている感じ。
>>555 - ("@\".*?\"" t :string)
+ ("@\"[^\"]*\"" t :string)
>>557 小さい箇所ですが一度気になると液晶のドット欠けみたいに意識しちゃうんですよね。
修正される見込みもないので、素直に inverse-cursor-line を使わずに
フォントを変えるなどして見ようと思います。
lisp について質問です。 キーバインド一覧などのように変更を加えても 「保存してませんよ」ダイアログが出ないようにするためには bufferのどの値を変更すれば良いのでしょうか?
直接的には (setq need-not-save t) だね。 メニューからなら、ツール>ローカル設定>もろもろ>保存してなくても文句を言わない キーバインド一覧みたいなのは setup-temp-bufferで一括指定してる。
>>561 ありがとうございます。
期待通りの動作ができました。
今日は ggrep-dialog が大活躍した日でした。
(defun hoge () (let ((a '(1))) (push '2 a) (push '3 a) (nreverse a))) (hoge)を評価すると初回は(1 2 3)が返ってくるのですが、 2回目以降は(3 2 1 2 3)が返ってきます。 nreverseは破壊的とありますが、それは変数aに対してであって 返り値には影響しないと思っていたのですが違うんでしょうか?
letとpushの間に(princ a)入れると、 二回目は(1 2 3)が出力されるから、 nreverseによる破壊が変数にされてるという点は正しい。 letがこういう動作なのが仕様かバグかは知らない。 誰か教えて。
下のだと、二回目以降も (1 2 3) だから、quote がいかんのかな? (defun hoge () (let ((a (list 1))) (push '2 a) (push '3 a) (nreverse a)))
定義するときにデータそのもので与えてるとそうなる。 最初に '(1) で指示しているデータが nreverse で置き換わってしまう。 無名の変数に格納されてると考えるとわかりやすいと思う。 回避するには、非破壊関数を使うか、(list 1) として毎回作り直すようにすれば良い。
ああ、キャッシュされるリテラルを書き換えてるってことか。 納得。
569 :
564 :2009/12/25(金) 18:57:07 ID:/hkXazJ7
ありがとうございます。 なんとなく理解できた気がします。 あまり(list 1)や'(1)との違いを意識してなかったので、 とまどいました。
文字コードの判定が下手なのが改善されたバージョンって 出る予定とかないですか? あと64bit対応版とかも
>>570 どんな判定が問題?
個人的には、asciiのテキストを読み込んだときに、
sjisを仮定するのを変更出来たら嬉しいんだけどなぁ。
もう普段からutf-8nしか使ってないので。
自動判別自体は、失敗したことが無いのでわからない。
>>571 SJISとUTF8Nしか使わないんだけど、UTF8Nを読み込んだらSJISになる
ことがある。Windowsのメモ帳だと平気。
テキスト本文に細工が可能なら、 (半角スペース)♀(半角スペース) を含めた内容をテキストの冒頭に入れておくと、判別に成功するかも。
誤判別じゃなくて、単なるデフォルトの問題なら、 *default-fileio-encoding* でいけるはず。
テキスト本文の加工は無理です。なのでsjisかutf8の2種類だけ判別できればいいのですがlispの書き方が分からなくて・・・
追記 (change-default-fileio-encoding *encoding-utf8n*) と書いてもsjisと誤認されてます。
>>574 おお、わりといけました。ありがとうございます。
[siteinit.l]
(setq *default-fileio-encoding* *encoding-utf8n*)
(setq *default-eol-code* *eol-lf*)
実行結果
*scratch* → sjis:crlf(残念)
新規作成 → utf8n:lf(ナイス)
0バイトのファイル → utf8n:crlf(ちょっと残念だがおk)
ASCIIのファイル → utf8n:crlf (元の改行コードのまま:正常)
というわけで、おおむね満足できそうです。
もうちょい後の方まで読んで文字コードを判別して欲しいと思うことはよくある。 ファイルの先頭に巨大なスキーマが入っているようなxmlを自動判別させることが出来なくて。 >572 ここではあまり関係ないけど、メモ帳でUTF8Nを開くまではいいけど、 迂闊に保存するとBOMが付いてUTF8を読めないJavaが痛いことになる。
>>578 もう少し後ろのほうまで読んで判別するように改造されたバージョンって
作れないものでしょうか? ソースコードはあるわけですから。
探してみても見つからなかったので、ちょっと確認させて下さい。 xyzzyのバッファの切り替えを、バッファ名でインクリメンタルに切り替えたいと 思っているんですが、そういったlispってないですよね? (ないようなら、自作しようと思うんですが、あったら楽したいな、と。) あとapiを叩かずに、バッファ名を表示するタブのエリアを、2行表示にすることは できないですよね?
582 :
名無し~3.EXE :2009/12/31(木) 01:13:47 ID:I/JWk/PQ
>>581 iswitchbのことならいくつか公開されてるはず
583 :
名無し~3.EXE :2009/12/31(木) 02:16:15 ID:3gokGVkd
>>582 emacsではiswitchbっていう拡張なんですね。
勉強になりました。ありがとう。
しかし・・・既にないものと思っていい加減に実装した後でした。(T_T)
でもありがとう。いい加減でない実装の勉強に使わせてもらいます。
>>581 anythingも実装されていますよ。
検索すれば見つかるかと。
585 :
名無し~3.EXE :2009/12/31(木) 22:12:33 ID:3gokGVkd
>>584 anythingの情報、ありがとうございます。
あとで試してみます
メニューバーに動的なメニューを追加することって出来ますか? 具体的にはEmacsのようにメニューバーからバッファ選択をしたいんですが 今のところ、メニューは作成したけど (defun popup-buffer () ... (track-popup-menu menu :button1)) (add-menu-item *app-menu* ':buffer "バッファ(&B)" 'popup-buffer) これだとメニュー位置でなくてマウス位置にメニューが出るので 通常メニューの挙動と違うってことで、別の方法を探しているところです。
>570 x64は呼び出し規約がレジスタ渡ししかないので、 eval.cc の funcall_builtin() でやってるようなトリックが使えないので 移植はめんどいと思われます。 x86でも、VS2008の既定のデバッグビルドオプションでも動かないんだけど('A`)
588 :
名無し~3.EXE :2010/01/03(日) 23:44:51 ID:VfifR247
>>586 コマンドからapp-menuの項目を開きたいってことならcall-menuって関数があって
(call-menu 0)
を評価するとファイル(&F)をクリックしたのと同じ状態になる
引数はおそらくメニューのポジション
twitter-modeでNGワードとかNGIDとかを実現したい。
よし、いろいろやってたらtwitter-modeの表示を少しずつ弄れた。 NGワードとかはよくわからなかったけど、このまま行く。
編集前のバッファにおいてポップアップを使って補完した場合、その直後は、 タブに表示される変更マーク "*" が追加されなくなったんですが同じような 症状の人います? 具体的には、 (setq *popup-completion-list-default* :always) して xyzzy を起動直後に *scratch* で ESC + TAB で補完した場合とかです。 (refresh-screen) が効いていないような状態です。
xyzzyのIRCチャンネルはありますか?
>>588 コマンドからメニュー操作することは重要じゃないんですよねー…
[ファイル(F)] [編集(E)] [検索(S)] [表示(V)] [バッファ (B)] [ウィンドウ(W)] [ツール(T)] [ヘルプ(?)]
メニューバーが上のように並んでいる際に [バッファ(B)] をクリックすると
現在のバッファ一覧を動的に作成してメニュー表示されて欲しいんですが
>>586 のようにするとメニューの表示が他と (以下略
ともあれアドバイス感謝です。
>>593 >>586 をもとに作成するならばこうかな。
(defun popup-buffer ()
...
menu)
(add-popup-menu *app-menu* (popup-buffer) "バッファ(&B)")
任意の場所に挿入するなら insert-popup-menu を使用。
>>593 (in-package "editor")
(defvar *buffers-modified-p* nil)
(defvar *buffers-menu* nil)
(defun add-buffers-menu (menu buffers fn)
(when (menup menu)
(while (delete-menu menu 0 t))
(do ((buffer buffers (cdr buffer))
(count 1))
((null buffer)
t)
(unless (string= (car buffer) " " :start1 0 :end1 1)
(let ((buffername (car buffer)))
(insert-menu-item menu (1- count) nil
(abbreviate-display-string
buffername *menu-display-length* t)
(funcall fn buffername)))
(incf count)))))
(defun modify-buffers-menu ()
(add-buffers-menu *buffers-menu*
(mapcar #'buffer-name (buffer-list))
#'(lambda (buffername)
#'(lambda ()
(interactive)
(set-buffer (find-buffer buffername))
(setq *buffers-modified-p* nil)
t))))
>>593 (続き)
(defun init-buffers-menu ()
(setq *buffers-menu* (create-popup-menu ':buffers-popup))
(modify-buffers-menu)
(insert-popup-menu *app-menu* 4 *buffers-menu* "バッファ(&B)"))
(add-hook '*init-app-menus-hook* 'init-buffers-menu)
(add-hook '*create-buffer-hook*
#'(lambda (buffer) (setq *buffers-modified-p* t)))
(add-hook '*delete-buffer-hook*
#'(lambda (buffer) (setq *buffers-modified-p* t)))
(add-hook '*post-command-hook* #'(lambda ()
(if *buffers-modified-p*
(modify-buffers-menu))))
(add-hook '*activate-hook* 'modify-buffers-menu)
(in-package "user")
バッファタブからバッファを消したりする時など問題があるので、
その該当の関数に(modify-buffers-menu) を加えると多分できる。
フックに引っ掛けてメニューを書きかえているのであまりお勧めしない。
強引に行くならこうかな。 何か副作用あるかもしれないけど。 (defvar *buffer-list-popup-menu* nil) (defun add-buffer-list-popup-menu-item (&optional all) (let ((buffer-list (buffer-list :buffer-bar-order t)) (i -1)) (flet ((make-name (string) (format nil "~A(&~C)" string (code-char (+ (char-code #\A) (rem (incf i) 26))))) (make-command (buffer) #'(lambda () (interactive) (set-buffer buffer)))) (add-menu-item *buffer-list-popup-menu* nil (make-name (buffer-name (car buffer-list))) (make-command (car buffer-list)) #'(lambda () (while (delete-menu *buffer-list-popup-menu* 0 t)) (add-buffer-list-popup-menu-item all))) (do* ((buffer (cdr buffer-list) (cdr buffer)) (name (buffer-name (car buffer)) (buffer-name (car buffer)))) ((or (not buffer) (unless all (string= name " " :start1 0 :end1 1)))) (add-menu-item *buffer-list-popup-menu* nil (make-name name) (make-command (car buffer)))) t)))
598 :
597 :2010/01/08(金) 22:07:25 ID:2Ex0cZPn
(defun init-buffer-list-popup-menu () (setf *buffer-list-popup-menu* (create-popup-menu 'buffer-list)) (add-buffer-list-popup-menu-item) (insert-popup-menu *app-menu* (get-menu-position *app-menu* 'window) *buffer-list-popup-menu* "バッファ(&B)")) (add-hook '*init-app-menus-hook* 'init-buffer-list-popup-menu)
起動時に特定のメジャーモードにして起動するってできます? 具体的には、起動したらtwitter-modeが始まってると嬉しいんですが。
>>599 xyzzy.exe -e (twitter)
602 :
名無し~3.EXE :2010/01/09(土) 20:27:51 ID:QpTd9SxY
愛のむきだしだな
603 :
586 :2010/01/10(日) 22:12:01 ID:0DnNNwEF
>>595-596 あーなるほど、毎回新規にメニューを作るんじゃなくて上書きすれば良さげですね。
Emacsだとメニューバーの更新にもフックがあるっぽいので本来ならコレを使うことができればいいんですが。。
menu-bar.el:1683: (add-hook 'menu-bar-update-hook 'menu-bar-update-buffers)
>>597-598 どこでメニューの更新をしてるのかしばらく分からなかった…再帰になってるのか。
これをしばらく使ってみることにします。
レスありがとうございました
>>587 > x64は呼び出し規約がレジスタ渡ししかないので、
この辺詳しくないんで、自分で調べてみたけど分からんかった。
ソースプリーズ。
x64 でレジスタが倍増したから、レジスタ渡しを積極的に使うのはある
だろうけど、それしかできないの?
だとしたら、可変長引数が x64 ではサポートできないような。。。
まさか。 例えば引数が30個の関数って定義出来ないんだっけ?
一切同様の報告が見当たらなくて困ってるんですが Windows7Pro32bitでOutline-tree2とかbuffer-bar-click-to-deleteとかDLL使うのを呼び出すと 「致命的な例外(Access violation)が発生しました。」と、強制終了してしまいます。 基本設定済みxyzzyも試しましたが、同様に初回のダンプ中に落ちてしまいます。 当然と言えば当然ですが、XPModeでは落ちないです。 どなたかXPMode以外で解消方法はご存じないでしょうか?
DEPが有効になってると落ちた気がする。 Vista以降はDEPがデフォルトで有効だったと思うのでxyzzyを例外に追加してるよ。
>>608 直りました。ありがとうございます。
Vistaからの現象だったんですね。Windows7キーワードに入れて必死で探してました。
javascriptの `/' で囲まれた文字列を正しく色付けさせる
拡張または方法ってありますか?
set-syntax-string に `/' を指定してもコメント開始文字に
指定されているためか適用されません。
また、
>>553 のように正規表現キーワードでやろうとしたんですが、
/'/ のような表現の場合、' 以降が文字列として扱われて
しまいうまく色分けができません。
javascript 知らないしよく分からんが ("/[^/\n]+/" nil (:color 3 0))
たとえば /[^/]/ は全体が正規表現リテラルにならないといけないのでは。
katexのくだ質問なんですが、 C-c t j でコンパイルが成功したら自動でウィンドウ(タイプセットバッファ?)を 閉じるようにするには、どうすればいいですか?
正規表現キーワードだと var x = a / b + c / d; みたいなのが無理
山本さんのinfo.lってどこで手に入りますかね? 本家らしきところは落ちてるっぽいんですが…
616 :
610 :2010/02/01(月) 13:33:46 ID:++jpGcdb
>>611 その正規表現キーワードでも/['"]/ とした場合、
'や"以降が文字列として認識されてしまいます。
一応正規表現キーワードで
>>612 や
>>614 のような問題は
解決できています。
問題は正規表現キーワードで指定した文字列が
内部で文字列として扱われていないため、"'が含まれていると
そこから文字列と認識し文字列ではない部分を着色してしまうことです。
正規表現キーワードの動作はどうやらバッファ描写内のテキスト
にのみ働きかけているいるようなので、自前で"'/での着色をし
*post-command-hook* に引っ掛けるぐらいしか解法はなさそうですね。
おっー! すごいな。独自でユニコード対応したんだ。
>>617 ウムラウト入ってるときは
ダイアログ出して置換出来きなくて困ってたので超期待!
どれくらいすごいのかわからない 誰か三行でまとめてくだされ
623 :
617 :2010/02/06(土) 05:00:37 ID:yEX8ZCoL
ライセンスの勉強が終わり次第、codeplexではじまります。
tterm.lってもう手に入らない?
うん
682 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2010/02/14(日) 15:28:49 ID:5oBST9efP
>>681 usr/(ユーザー名)/wxp/.xyzzy.resume.0
っていうのが「終了時の状態」のセッションファイル。
問題の原因は `restore-session' でエラーがでた場合その後の関数が実行
されないため。
gmark-session.lの45行目を
(write `(ignore-errors (restore-session ',binfo ',finfo)) :stream s :escape t)
とすればとりあえず回避できる。
後lisp関連は本スレで聞いた方がいいと思うよ。
683 名前:668[sage] 投稿日:2010/02/14(日) 15:53:06 ID:kin0JteYP
usr/(ユーザー名)/wxp/.xyzzy.resume.0 というファイルはありませんでした
Vistaだと別のところにあったりするんでしょうか。
うーん、該当箇所45行ではなく手持ちのでは42行みたいで、修正はしてみたのですが、
しおりは読み込んでくれませんでした。
どうしよ・・・とりあえず本スレに移動します。
-----------ここまで--------------
45行目っていうのは俺の間違いで42行目だった。 修正してもだめなら、.xyzzyの先頭に (toggle-trace-on-error)って書いて起動。 これでエラーがあるのか確認。 xyzzy.resume.0 はxyzzyを起動してない状態で確認した?
629 :
626 :2010/02/15(月) 22:36:22 ID:NkWwzGkr
>>628 起動していない状態だと xyzzy.resume.0ちゃんとありました!
(toggle-trace-on-error) と書いた状態では特にエラーはなくて、
Ctrl+F2でマークを確認したところ、ちゃんとマークが再現されていました。
うまく行っていなかった部分がわかりました。
.xyzzyで以下のように書いていてmarkが保存されていないためでした。
これも一緒に保存して復元する手っ取り早い方法はないもんでしょうか?
(require "gmark")
(defmacro makbookmark (a)
`(let* (mark
(a ,a)
)
(setf (symbol-function (intern (concat "add-bookmark" ,a)))
#'(lambda ()
(interactive)
(global-mark-add)
(message (concat "しおり" a "をセットしました"))
(setq mark (car ed::*global-mark-list*))))
(setf (symbol-function (intern (concat "jump-bookmark" ,a)))
#'(lambda ()
(interactive)
(if mark
(global-mark-goto mark)
(message (concat "しおり" a "はセットされてません")))))
t))
630 :
626 :2010/02/15(月) 22:37:44 ID:NkWwzGkr
>>629 続き
(dotimes (i 10) (makbookmark (format nil "~D" i)))
(global-set-key #\C-1 'jump-bookmark1)
(global-set-key #\C-2 'jump-bookmark2)
(global-set-key #\C-3 'jump-bookmark3)
(global-set-key #\C-4 'jump-bookmark4)
(global-set-key #\C-5 'jump-bookmark5)
(global-set-key #\C-6 'jump-bookmark6)
(global-set-key #\C-7 'jump-bookmark7)
(global-set-key #\C-8 'jump-bookmark8)
(global-set-key #\C-9 'jump-bookmark9)
(global-set-key #\C-0 'jump-bookmark0)
(global-set-key #\C-! 'add-bookmark1)
(global-set-key #\C-\" 'add-bookmark2)
(global-set-key #\C-\# 'add-bookmark3)
(global-set-key #\C-$ 'add-bookmark4)
(global-set-key #\C-% 'add-bookmark5)
(global-set-key #\C-& 'add-bookmark6)
(global-set-key #\C-\' 'add-bookmark7)
(global-set-key #\C-\( 'add-bookmark8)
(global-set-key #\C-\) 'add-bookmark9)
レジスタじゃダメなの?
632 :
626 :2010/02/20(土) 05:05:58 ID:kXSPuLB4
>>631 ありがとうございます。
レジスタもよさげなのですが、特に何も書いていない場合は起動時に保存復元等はやってくれないみたいなので、
どうしたものかと。
>>629-630 をgmark-session.lに組み込んでmarkを一緒に保存するのが手っ取り早いですかね。
ちょっとやってみようかしら。
セッションの関数を上書きしなくてもいいように、こういうときに永続化のAPIみたいなのがあったら楽だな、と思いました
633 :
626 :2010/02/20(土) 06:38:21 ID:kXSPuLB4
ムリでした orz
>>629 からmarkをどうやって保存したものかと…
セッションではなくhistoryに保存しようとはしているんですが、それは大丈夫そうなのですが。
634 :
626 :2010/02/20(土) 07:05:51 ID:kXSPuLB4
ここまでできたお・・・ (defvar *gmark-bookmark* nil) (setq *gmark-bookmark* (make-array 10)) (defun add-bookmark (index) (interactive "nIndex: ") (global-mark-add) (message (concat "しおり" (format nil "~D" index) "をセットしました")) (setf (aref *gmark-bookmark* index) (car ed::*global-mark-list*))) (defun jump-bookmark (index) (interactive "nIndex: ") (let ((mark (aref *gmark-bookmark* index))) (if mark (global-mark-goto mark) (message (concat "しおり" (format nil "~D" index) "はセットされてません"))))) (jump-bookmark 2) はOK (add-bookmark 2) はOK で (global-set-key #\C-2 #'(lambda () (jump-bookmark(2)))) のようにやってみて、Ctrl+2を押すんですが、 不正なコマンドです: #<lexical-closure: (anonymous)> とか言われてダメポ 後一歩なんだけど('A`)
(global-set-key #\C-2 #'(lambda () (interactive) (jump-bookmark 2))) じゃね?
636 :
626 :2010/02/20(土) 08:22:27 ID:kXSPuLB4
>>635 いけますた!ありがとうございます。
あとはhistoryに保存する所まで来たんですが、下記みたいに書いて.xyzzyでrequireしたら
再度起動時にxyzzyがぶっ壊れてしまいますヽ(`Д´)ノ ウワァァン!!
historyファイルバックアップとってあったから助かったですが・・・
ヒストリーに配列入れたら駄目なんでしょうか?
; gmark-bookmark.l
(provide "gmark-bookmark")
(in-package "editor")
(require "gmark")
(export '(*gmark-bookmark* add-bookmark jump-bookmark))
(defvar *gmark-bookmark* nil)
(setq *gmark-bookmark* (make-array 10))
(register-history-variable '*gmark-bookmark*) ; ←これ!!
;(add-hook '*post-startup-hook* 'set-gmark-bookmark)
(defun add-bookmark (index)
(interactive "nIndex: ")
(global-mark-add)
(message (concat "しおり" (format nil "~D" index) "をセットしました"))
(setf (aref *gmark-bookmark* index) (car ed::*global-mark-list*)))
(defun jump-bookmark (index)
(interactive "nIndex: ")
(let ((mark (aref *gmark-bookmark* index)))
(if mark
(global-mark-goto mark)
(message (concat "しおり" (format nil "~D" index) "はセットされてません")))))
historyって.xyzzyみたいにS式で直書きしてるだけだから、 直書きできる内容じゃないとだめだと思う。 普通にリスト使った方がいいよ。
や、配列かリストかの問題じゃなくて、 中身が読み込める形で書き出せないマークだからじゃないかな。 配列は読み込めるし。
*save-history-hook* で,マーカーを読み込める形式に変換すればいけるかも でロード時に *load-history-hook* で元に戻す
global-markを機能させるには先にファイルをオープンして、バッファが存在していないといけない。 *load-history-hook*じゃタイミング的に早すぎるかな。 gmark-session.l をパクってセッションファイルに保存するか、 独自形式でファイルとマーク位置を管理するのをお勧めしておきます。
XPでxyyzyを使っているんだけど、ウィンドウを最小化したときの ワーキングセットの縮小を抑える事って出来ないかな? 間を置いてアクティブにすると、どうしても動作がもたつくもんで。
642 :
名無し~3.EXE :2010/02/23(火) 14:12:39 ID:W0K3FYhn
>>641 XP なんて窓から投げ捨てて Vista/7 にしろ。
>>642 そのサイトを見ただけだと snippet.l でよくね? とおもった。
>>641 7に乗換えを薦めたい。
(in-package "winapi")
(setq *lpfnProc* 0)
(c:*define WM_SYSCOMMAND #x0112)
(c:*define SC_MINIMIZE #xF020)
(c:*define SW_SHOWMINIMIZED #x0002)
(c:*define-c-type u_long WNDPROC)
(c:*define GWL_WNDPROC -4)
(c:*define-dll-entry LONG SetWindowLong (HWND c:int LONG)
"user32" "SetWindowLongA")
(c:*define-dll-entry LONG GetWindowLong (HWND c:int)
"user32" "GetWindowLongA")
(c:*define-dll-entry LRESULT CallWindowProc (WNDPROC HWND UINT WPARAM LPARAM)
"user32" "CallWindowProcA")
(c:*defun-c-callable LRESULT workingset-trim-off-proc ((HWND hwnd) (UINT msg) (WPARAM wparam) (LPARAM lparam)) (cond ((and (= msg WM_SYSCOMMAND) (= wparam SC_MINIMIZE)) (ShowWindow hwnd SW_SHOWMINIMIZED) (return-from workingset-trim-off-proc 0)) (t (CallWindowProc *lpfnProc* hwnd msg wparam lparam)))) (setq *workingset-trim-off-enabled* nil) (setq *orig-wndproc* (GetWindowLong (ed::get-window-handle) GWL_WNDPROC)) (defun workingset-trim-off-enable () (ed:interactive) (setq *lpfnProc* (SetWindowLong (ed::get-window-handle) GWL_WNDPROC #'workingset-trim-off-proc)) (setq *workingset-trim-off-enabled* t)) (defun workingset-trim-off-disable () (ed:interactive) (SetWindowLong (ed::get-window-handle) GWL_WNDPROC *orig-wndproc*) (setq *workingset-trim-off-enabled* nil)) (ed::add-hook 'ed::*post-startup-hook* 'workingset-trim-off-enable)
?
648 :
645 :2010/02/27(土) 18:32:02 ID:cwp0KkBm
しょぼマシンでXP使い続けてるがどういう症状なのかさっぱりわからん
>>649 タスクマネージャで使用メモリを見ながら最小化してみると分かるよ。
体感できるほど違いある? 人によるか
数十MB〜使ってる環境だと、かなり差が出てくるよ。
while ループ内で buffer-substring 呼んでるからじゃない? これ、一行切り出すたびにfrom..toの範囲を文字列としてアロケートすることになるよ。
buffer-substring 一回にしてみたけど どうかな? (defun sort-line-region (from to &optional (test #'string-lessp)) (interactive "*r") (when (< to from) (rotatef from to)) (let ((lines (split-string (buffer-substring from to) #\LFD :ignore-empty t)) (nulpo (eql (char-before to) #\LFD))) (delete-region from to) (insert (format nil "~{~A~^\n~}~@[\n~]" (stable-sort lines test) nulpo))))
そろそろ新しいバージョンでないの??
>>656 ありがとう!すげえサクッと終わるようになった!
660 :
名無し~3.EXE :2010/03/08(月) 21:54:22 ID:3hDIzwhL
ワロタ
今初めて知ったけどgc関数ってオプショナル引き数1個取るんだな (ed::ldoc-string 'gc 'function) -> "gc (&OPTIONAL NO-MESSAGE) : not documented funciton"
xyzzyのメンテナっているの?
オリジナルは何年も更新されてないけど、最近は packaged-xyzzy ってのがあったような。
664 :
名無し~3.EXE :2010/03/14(日) 00:18:14 ID:ZeHBtA3O
ホントだw はじめて知ったわ
Unicode対応化作業をしてる人は諦めちゃったのかなあ、 期待してたんだけど…。
glyph_t を __int64 にしないと文字が収まらないけど無駄が多くなるなぁ、とか cp932 も変換テーブル用意しないとなぁ、とか DDEわけわからん、とか いろいろあって進んでません…
無駄が多くなっても64ビット版のパフォーマンスが上がりそうとか思った。
以前も誰か内部に手を加えてたけど、途中で見かけなくなった。 正直一人でxyzzyを修正及びメンテしていくのは大変。 もし、今後もxyzzyを長く使っていくなら使用者同士で協力し、 負担を分散させないと長く続かないと思う。 これを踏まえてなんだけど、今のxyzzyには協力して開発していく 基板が整ってるとは言えない。 なので基板づくりを行いたいが他の方はどう感じてるのかな? 具体的には共同で開発するために利用するバージョン管理システムを 決めたりとかからはじめることになると思うけど。
今まではなんとなく、いつかきっとKameiさんが帰ってくる! とか思ってたからあまり内部とかには手をいれるつもりなかったけど、 正直ここまで更新ないと作者本人も簡単に手を出せる状態じゃ なくなってるのかもしれない。 自分はLispとかで拡張してたけど限界を感じてきたので、 出来る限り協力したい。
ニーズが少なきゃやる気も沸かんだろ
連想リストの動作がわからないので質問させてください。 これだとメモ帳を開くことができるのですが、 (make-process "notepad.exe" :environ '(("HOME" . "c:/home"))) これだと「不正なデータ型です: *home-dir*: string」のエラーになってしまいます。 (setf *home-dir* "c:/home") (make-process "notepad.exe" :environ '(("HOME" . *home-dir*))) 連想リスト内ではどうすれば変数が使えるのでしょうか?
協力できる物ならしたいとは思うんだが
いかんせんC言語系はさっぱりなんだな
>>672 (make-process "notepad.exe" :environ `(("HOME" . ,*home-dir*)))
>>673-674 なるほど、 クォートだと内部のS式が展開されないので
バッククォート と コンマ を使えば良いんですね。
ありがとうございます。
先日発売された竹内先生の『初めての人のためのlisp』は common lisp に準拠しているようなのですが xyzzyでそのまま使えるのでしょうか
>>676 入出力でちょっと引っかかる所がありそうだけど
ほとんどxyzzyのスクラッチ上で行けそうに見える
>>677 ありがとうございます。
早速やってみます
レポートしてよ
>>668 昔vi-modeとか書いてた者で、本体に手を入れたのは公開した事も無いが…
以前CE移植を途中までやった時にビルド環境とか作ったのだが、今からもう一度そこまでやって開発するかは悩ましいやねぇ。
multi-frameをちゃんと対応する、くらいはやってもいいかなぁ、とは思うが、一方でそこまでやるならIntellipadにでも乗り換えるかなぁ、とか思う自分が居る。
2〜3人いじれる人がやる、と言っていれば混ざってもいい気はするが、環境が整ってるだけだと厳しい気がする。
将来的に複数人で触るようになるなら、ATL必須にしないほうがいいかなぁ…とか悩ましいですよね。
>>680 >一方でそこまでやるならIntellipadにでも乗り換えるかなぁ
それはあるよね。どこまで労力をxyzzyにさけるか。
xyzzyに変わるおすすめのエディタがあるなら検討してみたいけど
あるかな?
積み重ねてきたものを捨てる気はしないが、 捨てるときのことを考えて、これ以上積み重ねたくもない、 という矛盾。 やってもやらなくても、どっちにしろ間違ってるんだから、 深く考えずにやりたいようにやるのが一番いいと思うよ。
頑張ってください 自分は使うので精一杯
xyzzyからgvimに乗り換えようとしたけど、軽く挫折したw 何故emacsじゃないんだ!ってのは昔gvimを使ってたのとunixではvim(ほぼ素の状態)使ってるから。 さすがにカスタマイズしまくったxyzzy使っていると、あまり弄ってないvim系に乗り換えるのつらかったわ タブ周り等がWindowsと親和性高くて、unix系のエディタばりにカスタマイズできるエディタあればねえ・・・
xyzzyってのおすすめ
そこで jEdit ですよ?
USBメモリに入れて持ち歩けるように出来ないかなあと思っていたら、 xyzzy.exe -config "すきなとこ(相対パス可)" を呼び出すだけでいいことがわかった。
名前をつけて保存の時のエンコーディングにSJISとUTF8しか表示させない 設定にできますか?
>>685 サイトー企画、定番テキストエディター「秀丸エディタ」v8の正式版を公開
http://www.forest.impress.co.jp/docs/news/20100330_357901.html (有)サイトー企画は30日、テキストエディター「秀丸エディタ」v8.00を公開した。約8カ月にわたるベータテストを経ての正式公開となる。
「秀丸エディタ」v8では、新たに“TSVモード”“CSVモード”“ファイルマネージャ枠”“アウトプット枠”などの機能が搭載された。加えて
複数行にわたるテキストを検索・置換できる機能、ステータスバーからフォントサイズを簡単に変更できる機能などの追加、バックアップ機能
マクロ機能の強化といった改良も施されている。また、初回ベータ版より数多くの不具合も修正され、より一層完成度を高めている。
“TSVモード”“CSVモード”は、タブやカンマで区切られたテキスト形式のデータを、列ごとに縦を合わせて表示する編集モード。マウスの
ドラッグ操作で列幅を自由に変更したり、各列のデータを昇順または降順で並び変えることも可能で、まるで表計算ソフトのように扱えるのが特長。さらに、通常のモードでもルーラー上でタブによる桁揃え位置をドラッグで自由に調整可能になっている。
“ファイルマネージャ枠”は、エクスプローラのようにファイルやフォルダをツリー表示できるサイドバー。最近利用したファイルの履歴や
プロジェクトの管理画面へ切り替えることも可能で、よく利用するテキストファイルを登録してすばやく開けるようにする新機能“ブックマーク”も
この“ファイルマネージャ枠”で利用することができる。
“アウトプット枠”は、GREP検索の結果などといったさまざまな情報を出力できるペインで、エディター画面下部に表示される。同一ウインドウ内で
出力結果を確認できるので、別タブや別ウインドウで結果を開くよりも便利だ。
そのほかの注目点としては、バイナリ編集モードが大幅に強化されたことが挙げられる。“アウトライン解析の枠”を利用して行番号とテキスト表記を
表示できるほか、バイナリ列を“CSVモード”で表示することにより編集や閲覧が行いやすくなっている。
別にふざけてないと思うが、なんで怒ってんの?
もう開発も終わってるxyzzyは秀丸には機能面でかなわない? 誰か引き継いでくれる人はいないか?
シェアウェアだし秀丸の方が良いんじゃないか? フリーでこれだけの機能があるのは、更新が止まっている事を考慮してもxyzzyが一番だと思う
696 :
名無し~3.EXE :2010/04/03(土) 01:25:56 ID:JMLB0WPT
五目並べもできるしな
>693 すごいなぁ。っていうかNさん…?
filter-regionの動作がわからないので質問させてください。 (defun sort-buffer () (interactive) (filter-buffer "sort.exe")) (defun sort-region () (interactive) (filter-region "sort.exe")) として M-x sort-buffe ならバッファ内のテキストがソートされるのに Mark Set してリージョンをつくって、M-x sort-region としても リージョン内のソートができませんでした。 どうすればリージョン内のソートができるんでしょうか?
流石にリージョンを指定してあげないと動かない。 (defun sort-region (start end) (interactive "r") (filter-region "sort.exe" start end))
700 :
693 :2010/04/10(土) 07:37:41 ID:1fA72JEv
せっかく張ったハードリンクを切らないで保存する方法はないだろうか。
ググり方が弱かったです。 (setq backup-by-copying t) で解決しました。
で今の最新版の開発状況ってどうなってるの?
公式は止まったままで、 よく使う拡張とか取りまとめたものと USBで持ち運ぶのに便利なように少し書き換えられたものと 本体と2,3の拡張を英語に翻訳したもの の3つが俺が知ってる範囲だとある。
最近より雪見酒さんのruby-mode使わせてもらってますが "hoge#{page?}" の様な文字列だと「}」で文字色が復帰しないですね ruby-mode.l 523行目を以下のように修正すると大丈夫のようです -(or rb-str (not (or(looking-back "\$")(looking-back "?")))) +(or rb-str (not (or(looking-back "\$")))) ただ、なぜ$や?をチェックしているのかいまいち分かってないので 何か誤動作をおこすのかも知れませんが・・・
テキストファイル読み込み時の文字コード判別が秀丸並に使いやすくなればいいんだけれど
>>705 そっちのruby-mode重くて使ってないんだけどもっと軽くならんかね
最近mixiのxyzzyコミュの書き込みが多いですね。
709 :
700 :2010/05/23(日) 12:38:26 ID:dGuubzM7
710 :
700 :2010/05/23(日) 13:11:28 ID:dGuubzM7
えらいっ
>>710 乙です
どういった場面で使うのが有効だろ?
mixiやってないんだがサポートはそっちがメイン?
713 :
700 :2010/05/23(日) 22:18:50 ID:dGuubzM7
どうしましょかね?>サポートとか つーか反応あるとは思ってなかったので考えてなかった。 最初はここでやるつもりだったのですが、書き込み規制で書けない事が多いのと、あんまし以前の版に反応が無かったので向こうにしてみたのですが… とりあえず返事は書けなくても読んではいます。 基本的に落ちバグは直す気でいるので、再現方法を書き込んでくれればだいたい直ると思います。 たまに長期ネットにつながらなくなる事があるので反応無くなる事もありますが。 ちょっと変、みたいなのは物によっては直さず、物によっては直す、という気でいます。 フォルダ開いて途方にくれる位のレベルの人を私が面倒見る気はあんまし無いんですが、誰か代わりに相手してやってくれると嬉しいとは思います。 使い方とかの話は結構好きですが、雑談的なレベルでしかしないと思いますねぇ。 ちなみに使う場面というと私はマルチディスプレイとか、大規模プロジェクトで大きく離れたフォルダ下で大きな作業をする時に使います。 このフォルダ下はこっちのフレーム、とか決めてる感じで。 たまにC-x bで別のフォルダの方のファイルをコピペしたりしたいので、二つインスタンス立ち上げるのは都合が悪い。 foldingやってくれ!みたいな要望を受ける程本気で開発していく覚悟はまだ無いですが(^^; マルチフレームって何よ!とかスクリーンショット用意したりとか、ってのはやる気は無いけど誰かどっかでやって欲しいなぁ、とか思ってはいます。 自分で頑張る気はあんましありません。
ここも随分過疎っちゃったしなあ mixiに書ける人はそっちで、書けない人はこっちにといった所ですかね なる、マルチディスプレイか うちはシングルだから使い道が難しいな とりあえず気付いた点 ・フレームに名前を付けてlispでフレームを切り替えられない? ・フレーム作成後、作成元のxyzzyで設定等のダイアログが開けない 新規フレーム側では開けるが、閉じた後作成元のxyzzyに戻るとメニュー周りの 再表示がされなくなる ・ダンプファイル作成後に起動すると以下のエラーになって即終了する "0x00424abe" の命令が "0x030f102c" のメモリを参照しました。メモリが "read" になることはできませんでした。 後ろの二つはOSがいまだ2000の所為かも知れないが一応報告
今まではlispをいじってxyzzyの機能追加が多かったけど、 今後は開発もとまっているので、実際にソースを改造する方向へ 進んでいけば、うれしいな。
716 :
700 :2010/05/24(月) 14:57:20 ID:j6dGglAy
書けるかどうかのテスト
multiframe_20100523.zipは不安定ですね。0520.zipの方が良さそう。
>>715 おまえがやれお!俺C++もう嫌だお!
717 :
700 :2010/05/24(月) 15:01:29 ID:j6dGglAy
お、かけた。
>>714 >・フレームに名前を付けてlispでフレームを切り替えられない?
これは要望って事ですかね?
この辺、elisp側をそのうち真面目に調べてやろうかなぁ、と思いつつやらない感じでここまできてるのですが。
enumだけ出来れば後はlisp側でハッシュもって頑張れよ、という気もしないでもない。
>・フレーム作成後、作成元のxyzzyで設定等のダイアログが開けない
新規フレーム側では開けるが、閉じた後作成元のxyzzyに戻るとメニュー周りの
再表示がされなくなる
開けないってどうなります?
手元では最新版の不安定なのを追ってる最中なのでいろいろと実験が難しい状態なので…
メニューがたまに消える問題の簡単な再現方法が分かると嬉しいなぁ、と思ってるのですが、ひょっとしてそれかしら?
>・ダンプファイル作成後に起動すると以下のエラーになって即終了する
"0x00424abe" の命令が "0x030f102c" のメモリを参照しました。メモリが "read" になることはできませんでした。
これは良くわかりません。
ダンプファイル作成後、ってようするに二回目以降の起動は、って事ですよね?
718 :
700 :2010/05/24(月) 18:14:34 ID:j6dGglAy
>設定等のダイアログが出ない ほんとだ!出ない!(<試してみた) 直します!
719 :
700 :2010/05/24(月) 19:30:01 ID:Wrcq+9Vk
と思ったがなおんねーや、これ。 .lの方の問題っぽくて、app-menu.lで*app-menu*とかグローバル変数に入っちゃってるので。 frameのハッシュにしてやるとかやらないといけない。 そのうちメニューが消えるのもたぶんこれですねぇ。gcが起きると消えるっぽい。 (menu.ccのlwin32_menuのデストラクタあたり) 一応膨大な.l側の対応はやらない、というのが当初からの方針なので、このバグは治さない事にします。 すまぬ。
>>717 >これは要望って事ですかね?
まあ名前ではなく、make-frameの戻り値でもいいですが
(set-frame *frame*)こんな感じで切り替えが出来ればいいかなと
>ダンプファイル作成後、ってようするに二回目以降の起動は、って事ですよね?
ですます
こちらの導入方法に問題があるのかも知れないので一応書いておきます
1.正規のxyzzyのディレクトリ以下を全てコピーする
(コピー先にmultiframeを導入する)
2.multiframeのlisp/以下のファイルと同名のファイル(含むlc)を消す
ダンプファイルを消す
3.multiframeを展開、実行ファイルを上書き
4.multiframe版を実行(ダンプファイル作成)
終了させて再度実行するとエラーになる
念のため1〜3の後にxyzzy/usr, xyzzy/site-init, ~/.xyzzyをリネームして
4を行ってみたものの同じ結果になります
ちなみに0520.zipです
>>719 >gcが起きると消えるっぽい。
あ〜道理で再現性が分からなかったわけだorz
>すまぬ。
自分はメニューはあまり使わないので別に構いませんw
721 :
700 :2010/05/24(月) 21:12:33 ID:j6dGglAy
>>720 set-frameは実装しようかとも思ったけれど、使う人がいなさそうなのでやってません。
これ使ってlisp書こうとか思ってます?
もしそうなら実装しますが、自分は使わんけど普通はあるよな〜と思ってるくらいなら、使う人が現れるまで実装はさぼろうかなぁ、と思っとります。
この辺は微妙で、用意されてれば使うのに、って人も確かに要るかもしれないんですが。
enumrateとsetくらいは実装した方がいいかなぁ…
>> 導入方法
問題なさそうですけれどねぇ。
私の方にゴミのイメージが残ってるのかしら。
でも2000はさすがにもう分からんです。
XP以降で再現出来る人が居たら真面目に追います(^^;
>>721 >自分は使わんけど普通はあるよな〜
今のところアイデアもないのでこれですね
更新ネタが無くなったらでいいかなと思います
>でも2000はさすがにもう分からんです。
>XP以降で再現出来る人が居たら真面目に追います(^^;
了解
まだ使いもせず聞いてすまないんだが、 擬似フレームじゃなくて、emacsみたいなフレーム実装してます、 ってこと?
>>723 そんな感じ
マルチウィンドウで、バッファ共用しようとしてる
725 :
700 :2010/05/27(木) 14:39:51 ID:PiVvInTU
そしてウィンドウという用語はこの場合…などと注釈が必要になるのだった。 まぁ分かるからいいけど。 Activateの振る舞いをいろいろと変えているが、やっぱりたまに落ちるのは避けられ無さそう。 0523版は廃版ですかねぇ。
726 :
700 :2010/05/28(金) 14:44:23 ID:3/W/34sJ
ウィンドウ選んだ時のonpaintでごくまれに落ちる奴を治しました(つもりです)@multiframe_20100528.zip。 もともと再現率が低かったので直ってるか自信無いですが、今の所落ちてません。 そういえばWin2000のimageのダンプ後起動で落ちるってコーリングコンベンション回りの挙動ですな。 コンパイルオプションで関係ありそうなのがVS2008ではいろいろなくなっていてその辺に問題はあるかもしれんです。 Win2000で当時のSDKを入れてるマシンを持ってる人が居たら、nmakeしてもらうと直るかもしれません。 #でもそれをお願いするのはそれなりにデベロッパーじゃないときついでしょうな(^^;
ケータイの絵文字(UTF-8)を含む文章を開いてもsjisで開くようにする Lispって書けるものかな?
>>727 (find-file "file.txt" *encoding-sjis*)
こういう事じゃない?
sjis(docomo)、sjis(au)、utf8(softbank)みたいなエンコーディングの自動判別があれば便利なのになぁって思ったわけです。確かにsjisで決めうちすればいいんですけど、もっといい方法ってないものかなぁと…。
>>729 ファイル名で判定が出来るとか、ファイルの先頭にでもどのキャリアか識別出来る情報があれば
*find-file-hooks*とrevert-bufferでどうにか出来る
なんにせよ自動判別させる「何らかの情報」を設けておかないと無理
detect_char_encodingを書き換えようぜ。
LZH開発中止で、今後xyzzyの企業内利用に影響がでるかな?
今話題のRight-to-Left Overrideでzipに偽装すればおk
というか影響が出るほど(LZHと)密接に関わってるとも思えないんだが せいぜい統合アーカイバプロジェクトとして、程度だよね
lzhで配布されていることが問題ならソースからビルドすればおk
zipなどはメールフィルタがチェックするためにxlsxをウイルスと誤爆してブロックするために パスワード付きzipなどメールフィルタのチェック対象外になる形式を推奨されてしまった環境にいるので lzhがチェックで素通りする脆弱性は全く関係ないな。
xyzzyのバッファ内で、telnet等のターミナルエミュレーターを動作させるものって、何かありますかね? 昔はtterm.lというのがあったけど、今ではもう入手出来ないのですよね。 または、どなたかtterm.lを頂けないでしょうか?
738 :
名無し~3.EXE :2010/06/18(金) 13:22:33 ID:8DZi6/nt
clipselect.l 入れたら、ある程度時間経つとxyzzyがハングするようになった 直せるスキルないので放置しまつ
html+-modeって作者のサイト以外で入手できますか。 403でアクセスできないんだけど。
質問いいですか? クリップボードでUnicodeがコピペできなくて、いつも以下の設定をし忘れていることに気づくのですが、 編集>クリップボードエンコーディング>Unicode>Unicode(UTF-16) 起動時にこの設定を自動でしておく方法ないもんでしょうか?
(change-clipboard-encoding *encoding-utf16*)
744 :
742 :2010/06/27(日) 17:51:45 ID:kCN0fACZ
>>743 うまくいきました。ありがとう。
検索したら励ましあえのスレの過去ログにも何度か既出の話題だったみたいですね。
(define-key ed::*c-mode-map* '(#\C-c #\C-c) 'execute-subprocess) を設定したいのですが、これに同時に文字列を渡した状態で開くことってできないですか? 例を示すと、C-c C-cをするとミニバッファには & gcc -O -Wall *.c と表示されている、ということがしたいのです。
>>745 こんな感じ?
(defun ya-execute-subprocess (&rest args)
(interactive "e& \np"
:history0 'ed::execute
:default0 (case buffer-mode
(ed::c-mode "gcc -O -Wall *.c")))
(apply execute-subprocess args))
(define-key ed::*c-mode-map* '(#\C-c #\C-c) 'ya-execute-subprocess)
>>746 訂正します
(defun ya-execute-subprocess (cmd &rest args)
(interactive "e& \np"
:history0 'ed::execute
:default0 (case buffer-mode
(ed::c-mode "gcc -O -Wall *.c")))
(apply 'execute-subprocess cmd args))
xyzzyって7で使えますよね?互換モードもあるし 今更meadowに戻るのは嫌すぎる・・・
>>748 7 32bitだけど、原因不明の例外で時々落ちることがある
それを除けばとりあえず使えてはいる
>>748 7 64bitで互換モードとか使わなくても問題なく使えてる。例外で落ちたこととかない。
751 :
748 :2010/06/29(火) 20:12:08 ID:dDq6gYHt
そうですか・・・ 自分も今度試してみます
俺も普通に7の64bitで使ってる使えてる。 別のPCゲーで使ってる4GBパッチも当てたりしてるが 特に例外で落ちたりはないな。
7 x64で普通に使っている。安定していると思う。
>>746-747 素晴らしいです、ありがとう!
やはりそれなりに複雑になりますね
(case buffer-mode
(ed::c-mode "gcc -O -Wall *.c")))
のところに他のモードも記述していくと様々な言語に対応できたりするのでしょうか?
xyzzyってたしかC++で作られているんですよね? 組込みでのC言語しかしらないけど、がんばってC++覚えれば いじれますか? 開発環境はeclipseとVC++Express Editionのどちらにしようか 迷ってます。
>>756 アドバイスどうもです。
無料のVC++Express Editionをダウンロードして一度ビルドしてみます。
組込みしかしらないが、会社が
「組込み技術やC言語以外のスキルを身につけろ!」
ということでC++を覚えようというわけです。
それなら、いつもお世話になっているxyzzyのソースとか見て
勉強したいなというのが動機です。
C以外か。 今の時代ならスクリプト言語でwebアプリとか作ってみた方が面白いし、 スクリプト言語で書き捨てスクリプトでも書けるようになると仕事にも役立つとおもうけど 本人がC++というのなら止めないが、やっぱり俺が上司なら止めたいなw
Androidに移植して欲しい
xyzzy lispを極めようよ!
選択範囲が TEMPORARY (start-selection の第二引数)かどうか判定する方法ある?
>>761 pre-selection-pはどう?
xyzzyもだんだんすたれてきたね。
Androidに移植するんだ!
流行ってたまるかw
2chもmailもできる統合環境
xyzzy で 2ch できても一つも嬉しくないのは、あー、きのせいですかそうですか。
カレントバッファのフォントだけを変更することはできますか? set-local-window-flagsみたいな感じで フレームでもいいです。(できればフレームの方が良いです)
>>770 フォントは変えられなかったはず。
起動するときに、xyzzy.ini を指定することはできるから、
それでなんかならんかい?
あるバッファとあるバッファで違うフォント使いたいんだよねー
lisp全然わからんのだけどいいだろうか。 csv-modeを使ってるんだけど、C-c C-eで開く編集ウィンドウ、 あの入力欄を右端で折り返してくれて、複数行で表示するにはどうしたらいい? 中身の長さに応じた複数行じゃなくても、決め打ちで3行分、とかでもいい。 どうやら1124行目あたりの ,(- *csv-edit-dialog-width* 1 *csv-edit-dialog-header-width* 1 1) 14)) ↑ この右端の数値を28とかに大きくしたら入力欄の高さが倍になったから、 ここらへんなのかな、ってのはわかった。 でも入力欄からはみ出す長さの文章とかだと折り返さずに切れて見えるだけで…。 今はとりあえずダイアログ幅を550の画面幅ギリギリにしてなんとかしてる。
>>773 1122 行目の #x50810080 を #x50a10004 にする
>>774 おおお!ありがとう!
1122行目をその通りに変更して、1124行目を28にしたら、ほぼ思った通りになった!
ただ、次のカラムにまで入力欄が被ってしまう(正確には潜っていますが)のは、
どうすればいいのかしら?
>>776 ありがとう!思い描いた通りになった!
これでほんと楽になりました!
778 :
617 :2010/09/15(水) 03:00:52 ID:nbilHBrR
xyzzy ユニコード版たのしみだなあ!
他人のLispの滅多に無いどうでもいい問題に遭遇して自分で解決したから書いとく。 igsearchでmigemo使ってて、 *case-fold-search*が:smartで、 ユーザ入力が小文字のみで、 migemo出力に大文字が含まれる場合に、 :smartとして機能しない。 例: ------------- pcie PCIe ------------- が含まれるバッファで"pci"と入力すると、PCIeの方にヒットしない。 pciに対するmigemoの出力: (pci|PCI(バス|スロット|カード|デバイス)|p([シシし]|ci)) 対応: igsearch-migemo-toggleで*isearch-scanner-hook*を*case-fold-search*が:smartの場合にだけ出力を全て小文字にすることにした。 以下、igsearch-migemo-toggleの最後のほうの(setf *isearch-scanner-hook* (unless (igsearch-migemo-on) nil))と置き換え。 (setf *isearch-scanner-hook* (if (not (igsearch-migemo-on)) nil (progn (setf scanner-hook-org *isearch-scanner-hook*) #'(lambda (query) (setf r (funcall scanner-hook-org query)) (if (and (eq *case-fold-search* :smart) (not (string-match "[A-Z]" query))) (string-downcase r) r)))))
C-u 9 9 9 C-g のあとにメニューから「次のウィンドウ」とか選ぶと 何故か C-u 9 9 9 C-x o と同じ意味になって意味がわからないぽん。
メニューとか使うからだよ
環境依存なのかこれ。
環境を言い出すなら何で自分とこの環境を晒さない あ、うちの環境ではなるよ
7 Ult x64 だよ。 C-u 999 C-g C-x o は問題ない(当たり前だ)けど、何が違うんだろうな。
>>788 メニューから使うかそうでないかの違い。
XP Home SP3 / xyzzy 0.2.2.235 でもなったけど C-u 9 9 9 C-g C-g みたいに C-g を二回やれば フツーにメニューから『次のウィンドウ』が使えたよ
問題になるのがquitだけならとりあえずこんなので回避できるみたい。 (defun quit () (interactive) (setq *prefix-args* nil) (setq *prefix-value* nil) (error 'quit))
キーシーケンスの開始のタイミングでクリアしてるんかな。 C-u 系のコマンドが unwind-protect するのが本来あるべき姿?
C-gはとりあえず連打するのが基本だと思ってた
するするw
(defun ctrl-g-baka () (interactive) (when (and (eql *this-command* 'quit) (eql *last-command* 'quit)) (message "Ctrl-g 押しすぎだっつってんだろこのバカチンが!"))) (add-hook '*post-command-hook* 'ctrl-g-baka)
Unicode版楽しみだ
タイ語とかアラブ文字?とか表示できなくてたまに困ってる
>>771 >>770 じゃないけどフォントサイズは設定からしか変えられないのか・・・
集中して書くためのエディタのdarkroomみたいなことできないかな、と思ってたんだけど
xyzzy にはお世話になってる そのunicode 版が出るなら、勿論使わせてもらいたい ところで、現在の xyzzy に実装している lisp の機能では CLtL2にどこまで近づけられる? xyzzy には common lisp のマクロが搭載されているから、 亀井さんが実装しなかった common lisp の機能をユーザーがかなり実装出来る気がする
>>797 どこまでってそりゃ基本の5関数とquote、cond、関数定義があるんだからなんでも実装できるよ。
あとはヒューマンリソースと時間の問題。
というわけで言いだしっぺの法則をapplyしてCLOSよろしく!
互換レイヤーみたいなので、emacsの.elをそのまま使えればいいのにね 今って、もしemacsにある何とかモードを移植したかったら、互換のライブラリ使って移植しないといけないんですよね
>>798 なるほど
それなら clos よりも簡単?な CLtL2 の実装から手をつけてみたいと思う
た、ただのユーザーからは何の話をしてるのかさっぱりだ! だが何だかわかないなりにありがたいので頑張れ!
>796-797 「0」を入力したら #\F2 と同じになっちゃって、これは character の定義をそもそも変えないといかんなー、とか そんな情けない状況でなかなか進みません。
>>799 かてふくらいにデカいファイルだとElisp移植キットに頼った方が楽だろうけど
余裕があるならxyzzy組み込みの関数に置き換えた方がいいかもね
Emacsで動く関数ならxyzzyでも大体似たようなのがあるから何とかなる
気力さえあれば
>>798 無責任すぎ
>>797 >>800 xyzzyのlisp自身での実装って意味だろうけど
そんな無駄なことは止めておけ
本体レベル(C++)でいじることがまだまだあるし
あれはもう相当わかる人じゃないといじれないよ
実装や価値はともかく、まず必要になるCLtL2とxyzzyの比較表みたいなのは、どうあれあるとうれしい。
昔、音声入力でのエディタ入力に苦労している動画を見たことがある。 今思いついたんだが、普通の文字入力はキー入力、コントロールコードだけを音声入力にすればいいんじゃないか。
807 :
名無し~3.EXE :2010/10/18(月) 16:05:07 ID:9RQJv3Pz
>>805 xyzzyの関数やマクロの一覧ってどこかにあるのかな
wikiをざっと見てみたけどみつからなかった
なければ作ればいいじゃない (let (syms) (do-external-symbols (s "lisp") (push s syms)) (format t "~{~S~%~}" (sort syms #'string< :key #'symbol-name)))
>>807 wikiの左メニューに"lispリファレンス"があるじゃない
reference.chmってデフォルトじゃないんだな
811 :
名無し~3.EXE :2010/10/21(木) 02:39:39 ID:AqC+JvYM
手軽に64bit版にできないかとソースをもらってきたけどvc++4.0用とかつらい。 for(int hoge; hoge<HAGE; hoge++) ; if(hoge == MAGE) みたいな2005では修正された枠漏れ前提のコードがあったり、_M_IX86前提なコードがあったり。 VC++2010(2005や2008でもいいですけど)でコンパイル通るx64向けに書き直した人、誰かいません? というか、#ifdef _M_IX86なとこ(スタックがどうとか)ってx64向けに書き直さないとまずいです?
>>811 x64ではstdcall呼出規約が使えないらしいので、当然書き直しだと思う。
うわーい、作業が増えたぞ(泣
>>811 forのスコープはコンパイラスイッチあるよ。
やる気が一気にしおれてきた
xyzzyになじみまくった人、引っ越し先は考えてるんですか?
Emacsでいいじゃん
まぁそうですが、Emacsに不満があったからxyzzyにしたって人は多いと聞きますがね
819 :
名無し~3.EXE :2010/10/21(木) 18:07:51 ID:AqC+JvYM
>>816 全く考えてないから64bit化して使いつづけたい。
CLtL2でもUnicodeでも64bitでも、とにかくまずチケットでも何でもいいからTODOLISTみたいなのを作れと。
xyzzyでやってた作業をウェブサービスとかでこなすようになったから もう秀丸とかでも困らないんだけど、まだまだ使うよー
811
>811 for については /Z:forScope- つけるか、 xyzzy wiki にパッチがあったと思うのでそれをあてればいい。
xyzzyはもうテキストエディタとしか使ってないわw
そりゃ、テキストエディタだからな
827 :
名無し~3.EXE :2010/10/22(金) 21:37:46 ID:fToFduMq
irc-mode どこ? ググってもでてこんわ
829 :
名無し~3.EXE :2010/10/23(土) 03:14:43 ID:uENdAMch
Data Retrieval Failure. ですた
最近テキストエディタとかアーカイバとかで dll読み込みの脆弱性の修正が流行ってるけどxyzzyは大丈夫なの?
831 :
名無し~3.EXE :2010/10/25(月) 18:53:59 ID:AyrfJR9J
xy-phrase.lって謎めきすぎだろ・・ 便利そうなのに(zen codingっぽいものかなと思う) 勘を働かせてみたけどわかりません 誰かレクチャーしてください
833 :
832 :2010/10/26(火) 03:16:24 ID:D1TdT2ay
だいたい把握できた これmode-specific-indent-commandが設定されてないモードのバッファでxy-phrase-flashy動かすと 展開途中の表示が消されないでどんどん追加されちゃうって不具合があるんだな そこで混乱した 仕込めばおもしろそうだけど誰か仕込み済みの人は居ないのかな
xy-phrase をネットインストーラーから入れたら、 silte-lisp 以下においてくれるよ orz
win7 64bitでも正しく動くのかなぁ。
使ってるが、今のところ、問題無く動いてる。
MSの互換性への努力は半端ない。
>>837 32→64ではそうでもない
CPU側に用意されてる互換機能使ってなかったりするし
動かないレガシーアプリ用にはXPmode(仮想PC)を7ビジネス以上に無償提供するから
それで勘弁してってことなんだろう
たまたまxyzzyでぐぐっていたら、過去にはオフ会なんてあったみたいなんですね。 xyzzyの開発が終了してからなんか寂しくなった感はありますね・・・ っていうか作者って生きてるの?
大学の研究室の延長っぽくて居心地よさそうな職場風景だなぁ。 だが、日立かぁ・・・。
>>834 xy-phraseの作者さんのサイトに行ったらxyzzy版anything見つけてしまった・・・
これは・・・
>>839 確か初回は本が出た時期くらいにあったような記憶が
当時もxyzzyのバージョンアップはなかったよ
xyzzyって、マルチタブにできなかったっけ? 「xyzzy タブ」でぐぐってみたが、タブ文字のことばかりひっかかって、 マルチタブにする方法がわからんかった。 だれか教えて。
表示>ツールバー>バッファ のこと?
デフォルトだと出てないのか
マシンが落ちたときなどちょっとでも正常に終了しないとセッションというかタブ(バッファ?)の保存状態が吹き飛んでしまうのですが、 防ぐ方法はないでしょうか? うまく読めないならば読めないで、前の設定を読み込んでくれれば良いのですが、 ふいに異常終了したり、マシンがフリーズしたりした後に起動すると 開いていたファイルのタブが消えてしまいます。 正常に終了した後の起動は問題はないのですが。
>>849 俺は『終了時の状態を保存する』とは別に
こんな感じで終了時のセッションを保存してるよ
『セッションの自動保存』が無効のときに
終了時のセッションを *default-session-directory* に保存する
*default-session-directory* がセットされてなければホームディレクトリに保存する
セッションファイル名は設定ファイルの保存先のパス名からテキトーに命名する
セッションを保存する際に同名セッションがあればリネームでバックアップする
ファイルを参照しているバッファが一つもなければ保存しない
テキトーに命名されたセッションは load-auto-named-session でロードする
ロードするときにバックアップしか存在しなければそれをロードする
入りきらなかったのでコードは次のレスに
851 :
850 :2010/12/04(土) 14:21:39 ID:8f1r+CX2
sed -e "s/ /\ /g" とかやったら要領制限に引っかかったのでそのまま貼ります 読みにくくてすまぬ (defun get-auto-named-session-file-path () (let ((uc (remove-trail-slash (truename (user-config-path))))) (merge-pathnames (format nil ".xyzzy.resume.~A.ssn" (substitute-string (if (string-match (concat "^" (regexp-quote (si:system-root)) "\\(.*\\)$") uc) (match-string 1) (substitute-string uc ":" "")) "/" ".")) (if (and *default-session-directory* (file-directory-p *default-session-directory*)) *default-session-directory* (user-homedir-pathname))))) (defun save-auto-named-session-on-save-history () (unless ed::*auto-save-session-file* (let ((ssn (get-auto-named-session-file-path))) (when (file-readable-p ssn) (rename-file ssn (concat ssn ".bak") :if-exists :overwrite)) (when (delete-if-not 'get-buffer-file-name (buffer-list)) (save-session ssn t))))) (add-hook '*save-history-hook* 'save-auto-named-session-on-save-history) (defun load-auto-named-session () (interactive) (let ((ssn (get-auto-named-session-file-path))) (when (or (file-readable-p ssn) (file-readable-p (setq ssn (concat ssn ".bak")))) (let (ed::*current-session-file-name*) (load-session ssn)))))
おいおい俺は今までセッション機能の存在に気付かないで生きてきたよ‥ なんてこったw
853 :
852 :2010/12/07(火) 11:30:47 ID:VFYdflA9
セッション機能使ってみた multiframe版だと落ちちゃうかぁ。> < しばらくセッションは使わない方向で‥
ちょっとした質問なのですがIEやChromeの検索のように 検索でヒットした箇所をすべて反転させておくもしくはわかりやすいように表示する といったようなことはできないものでしょうか?
て
xyzzyで、編集中のドキュメントに書かれてる文字列を含むファイルを検索したい時って、 どうするのが楽なのかな。 範囲選択して、Ctrl+Ins でコピーして、M-x grep-dialog してるんだけど、なんか手間で…。
>> 857 C-u M-x grep
久しぶりにnetinstallerを開いたら設定がなくなっていて、 前に$HOME/.netinstが参照されていたはずなのに、何故かxyzzyをインスコしたディレクトリの.netinstを読もうとしていたようでした。 一人で使っていますし、.netinstを移動したら動いたみたいなのでよいのですが、 これはどんな原因が考えられますか?
あ
途中で送信してしまった
>>856 できました。
やっぱりハイライトできると視認性が上がって便利ですね。
>>863 (defun f (&optional arg)
(interactive "p")
(msgbox "arg:~w" arg)
)
M-x f
C-u M-x f
C-u 14 M-x f
>>865 (interactive "p")
でC-uで渡した前置引数をM-xのときに処理できるようになり、
C-u M-x fで前置引数を省略すると4が渡されるということですね
ではC-u M-x grepのときに前置引数の入力を省略して4が渡されていると思うのですが、
4の代わりに現在のドキュメント(current-buffer?)が渡されているように見えます。
これはどういうことなんでしょうか?
lips/grep.lを見ていたのですが、どの辺りでそうなっているのかわかりませんでした
>>865 grep から実際に検索する補助関数 grep1 の第二引数に 4 が渡されてる
grep1 は第二引数が non-nil だとカレントバッファのみが対象になる
(defun f (&optional arg) (interactive "p") (msgbox "arg:~w, ~w, ~W" arg *prefix-args* *prefix-value*) ) M-x f C-u M-x f C-u 14 M-x f
ミニバッファ版gresregでエスケープシーケンスを理解させるにはどうしたらいいですか?
>>868 ダイアログでチェックを入れて検索後、ミニバッファ版を使用する。
html+-modeを入手するにはどうすればいいでしょうか 作者のサイトは403で過去レスで紹介されていた方法でも見つからず困っています。。
>>871 見るところを間違えていたようです。大変申し訳ありませんでした。
なんとかなりました。ありがとうございます。
873 :
名無し~3.EXE :2011/02/17(木) 13:19:32 ID:0bj1n7Fn
xyzzy はじめました
2ch-modeちゃんとcookie食ってる?
キーワードが合ってないと食っても書けない
>>876 これで冒険の書規制に対応できてますか?
うちではなんだかうまくいってません…
cookieの値(内容)がその都度変更されるんで
これをどこかに保存しないとだめっぽいんだけど
現状ではどこにも保存されてないような気がするし
初回はcookieの値が空なので
強制的に2分待たされた後再カキコしないといけないし(これは問題ない?)
>>877 そんな規制があるんですか…
現状は書き込み時にエラーになったら set-cookie ヘッダの内容を付け足して再度リクエスト…という流れで、cookieは保存していないので
無理ですね。すみません('A`)
ここには普通に書き込めてたんでてっきり送ってくるcookieの内容が変わっただけかと思ってた…
普通の専ブラに乗り換えればいいじゃない 自分のプロバイダがリストされて2ch-mode使えなくなるのは嫌だが
>>880 他人事だと思って
おまえのところも規制されちまえ〜
ocnだからね。遅かれ早かれ…
HAPの値をロードセーブするだけだから独自改造けっこう簡単だぞ いまだに使ってるような奴は自分でソースいじってんじゃないの?
やってる人いないかな?
いじり始めてみたが…くじけそうだ domainやらpathやら面倒すぎる…('A`)
ここはひとつ「独自改造けっこう簡単だぞ」っていう
>>883 に期待したい。ゼヒタノム!
>>887 いつもありがとうございます。
ちょうど常駐板が強制冒険の書(何か忍法帖って名前に改名したらしいですw)に
なったので、後で試させてもらいますね。
>>887 試してみましたが今の所大丈夫みたいです。
最初の書き込み時が「2分待て」エラーでは無くて「ユーザー情報消失」エラー
でしたが、2分後の再書き込みで問題無く書ける事を確認しました。
ファイル上の保存cookieもちゃんと更新されている様です。
>>887 ありがとう!試してみます
愛してる!!
wikiに貼るとかしません?
必要とする人がやればいいだろう
Wikiもいいけど、netinstallerに対応するのは難しいのかな?
うちでは*base-directory*を変更しているんで、 ついでにmain.lとhttp.lを書き換えて組み込んじゃいました。 これで当分2ch-modeを使い続けられる。ありがたやありがたや。
とりあえず動いている&お役に立っているっぽくてよかったです。
ちょっと手直ししたい所があるのでそれに手を付けたらwikiにも乗っけようかと思います。
netinstaller対応は…2ch-modeと連動すること&2ch-modeの関数を上書きする関係で、config.lに追記をする必要があること、
netinstallerへの対応の仕方がよくわかっていない('A`)等の理由より今のところ予定はありません…すみません。
>>894 *base-directory*が~/.2chでなくても、
config.lの最後に
(load "(amendment_http_post.lのパス)")
のようにしてamendment_http_post.lを読み込ませて、
amendment_http_post.lのcookie保存先の指定を、
(defconstant stored-cookies-path "(cookie保存先ファイルのパス)")
のように変更すれば動くと思います。もちろん組み込んで動かしても全然問題ないですが。
ただ、*base-directory*が使えることを考えると、
stored-cookies-pathは
(defconstant stored-cookies-path (merge-pathnames "stored_cookies.l" *base-directory*))
のようにした方がいいですね。手直しする際に一緒に直しておきます。
>>886 俺の改造もっと単純だけどlisp直いじりだし
まあ人がちゃんと使えるようにすると大変だよなw
あとスレ立て苦労した
lispに詳しい人に効きたいんだけど xyzzyにansiのcommon lispをフルで実装するには xyzzyの内部に変更を加える必要がある? それとも、xyzzyに実装されているlisp処理系だけで十分なのですか?
リードマクロ関連で無理そうなのなかったっけ
>>897 xyzzyのソースもいじった方がlispだけでやるよりも楽ってのがより正確かなぁ
実用的な速度を出そうとすると余計に
>>900 #P パスネーム型とか
#* bit vector型とかかな
対応する型が無いのはきついよね
test := 1 foo := 2 ↑の部分で、 : を縦にきれいに揃えるコマンドはありますか?
>>904 ずばりのものですね。ありがとうございます!
>>902 遅ればせながら
ありがとう & おつかれさまでした。
忍法帳がLV2から先に上がらなかったけど、そのへんも直ってるんでしょうか。
まあ別にLV2でも別にスレ立てができないだけで、
スレだけはブラウザから立てりゃいいだけなんですが。
ともあれ、早速差し替えて使わせていただきます。
しかし今更だが、2ch-modeの改造の件、誰も原作者には振らなかったなあ…。
お前がやらなきゃ誰がやるんだよ もう思ってるより人居ないしね
後出しでうだうだ言うくらいなら自ら率先して動けって話だわな
>>906 Lv2から上がらないなんて現象が起こってるんですか…って試してみたら確かにそんな気がする…
これは全然直ってないです('A`)
スレ立てできるってことはブラウザだとLv3以上に上がるってことか…とすると2ch-modeの方が原因ってことになるけど…
cookie周りの挙動はブラウザと同じのはずだからPOST文字列の組み立て方がまずいと悪影響を及ぼすとかなのかなぁ…
ちょっと見当がつかない…。すいません、これに関してはあんまり直る期待はしないでください(´Д`)
>>909 了解です。
前回公開した版からさらにいろいろと手を加えてらしたようなんで、
そのへんの修正を入れたのかな、と勝手に推測し(て外し)ただけでした。(^^;
LV上がり周りは自分もスキルが足りないなりにちょっと調べてみようと思います。
>>911 えっ新しいhtml+-mode!? と思ってしまった。
新しい入手先だったか。でもありがと。
dropboxってところがナウでヤングですね。
いい感じの流れじゃないか。俺も読もう
915 :
名無し~3.EXE :2011/03/09(水) 22:54:15.73 ID:q//6W4qv
おお、ドロップボックスってのはそういう風に使うのか。
あ、そうだ、スレ立てについては特に何もいじっていないので(cookieの取り扱いは影響を受けますが)、 この修正前にすでにスレ立てができていない状態だった場合はこの修正を適用しても 多分スレ立てはできないままだと思われます('A`) 後、cookie等を取得するためにリトライが発生した場合、リトライ前に0.5秒ウェイトするように 修正しています。以前は送信データに含まれている時刻をいじっていたのですが、行儀があまりよくないと思ったので…
別に困ることないんだけどwindows7でルーラー表示すると 窓突き抜けてデスクトップに点線が出来る これってどういう現象なの?
919 :
910 :2011/03/11(金) 04:42:18.75 ID:LCjSFb5y
>>916 >>917 ありがとうございます。
さっそく昨日差し替えて、1日たってLv3に上がったのをさきほど確認しました。
そういえばよく考えてみたら2ch-modeからスレ立てしたことは一度もなかったかも…。
別の専ブラなども使っているし(まちBBS用)、いざとなったらそっちでやればいい話でした。
スレ立ての話なんか持ち出してすんませんでした。
でもLvが上がると次の書き込みができるようになるまでの時間が短くなるようなので、
Lvが上がってくれた方がありがたいのは確かです。
改造お疲れさまでした。ありがとうございました。
流れを読まずに質問させてください
行もしくは選択範囲を複製するlispを書きたいのですが、上、もしくは下に振り分けて複製させるところで詰まってます…。何かアドバイスをいただけないでしょうか
;; C-M-Up , C-M-Down 行またはセレクションを複製 (一部未完成)
;;
http://blue.ribbon.to/~aotororo/prog/200310.html#d08_t4 を改造
(defun duplicate-selection-down (&optional (n 1))
"行またはセレクションを n 行上に複製"
(interactive "*p")
(let ((pre-selection-type (get-selection-type)) (column (current-column)))
(unless pre-selection-type (goto-bol) (start-selection 1 t) (or (forward-line 1) (progn (goto-eol) (insert #\LFD))))
(selection-start-end (beg end)
(when (and (goto-char end) (bolp) (goto-char beg) (bolp))
(insert (prog1 (buffer-substring beg end)
;; (if (> n 0) (progn (goto-char beg) (forward-line -1)))
(when pre-selection-type (start-selection pre-selection-type t))))
(unless pre-selection-type (forward-line (if (> n 0) -2 -1)) (goto-column column))))))
;; つづき (defun duplicate-selection-up (&optional (n 1)) "行またはセレクションを n 行下に複製" (interactive "*p") (duplicate-selection-down (- n))) (global-set-key #\C-M-Up 'duplicate-selection-down) (global-set-key #\C-M-Down 'duplicate-selection-up)
調子のってたらどうしてもcookie読み込めなくなってやりなおし、まじかよw
>>918 Win7 x64 と xyzzy 0.2.2.235 でやったけど再現しないYO
ゲイツキーからデフォキー設定に慣れようかと思ってるんだけど、難しいな
>>924 しばらくいじってれば慣れるよ。
俺はxyzzyなどEmacs系エディタはemacs準拠のバインドで、
その他のエディタ類は全ていわゆるダイヤモンドカーソルで使ってる。
(vi系はvi系で、って当たり前だな)
懐かしいなダイヤモンドカーソル…! wordstar?だっけ?
xyzzyでダイアモンドカーソルだけよりも ダイアモンドカーソル+通常カーソルキーの方が便利だと知った
ダイヤモンドカーソルかぁ 98で使ってたMifesをダイヤモンドカーソルで使ってたな
>>919 うまく動いたようでよかったです。
御存知かもしれませんが、一応したらば、まちBBSが見られるようになる修正を作っています。
スレを見て書き込みする位しかできませんが…
http://xyzzy.s53.xrea.com/wiki/index.php?tips%2F2ch-mode%20%A4%B7%A4%BF%A4%E9%A4%D0%A1%A6%A4%DE%A4%C1BBS%C2%D0%B1%FE 久しぶりにまちBBSを見てみたら、あぼーんレス(【文字化け】と表示されるやつ)があるスレが見られないことに
気がついたので直しておきました。誰も困っていなかったってことはもう使っている人はいないのかな…。
ちなみにスレを開いた時や、追っかけスレ一覧を更新した時などに追っかけスレ一覧に表示しているレス数を更新
するようにも修正しましたが、ちょっとしょぼい実装なのでHDDアクセスが多量になる可能性があります。
これじゃ使えないという場合は言ってください。追っかけスレ一覧更新時のレス数更新の部分の処理を削除します…
あ、後、~/.2ch/trackingディレクトリ下にあるファイルと~/.2ch/tracking.txtのバックアップを取っておいてください。
追っかけスレのデータをいじるので万が一追っかけスレのデータが消えてしまうとダメージでかすぎるので…
>>922 (((;゚Д゚)))
…自分のcookie処理の実装を使っている方、同じような結果になってしまったらすみません('A`)
あ、バグ作りこんでる…('A`) ↑のページにバグ内容について追記したので、それでもOKって人だけ使ってください…
励ましスレもういらんか?合併でいいか ってかこのスレはまだいるよな・・・
>>930 ありがとうございます。
2ch_mode_otherbbs.l 入れ替えてみました。
> スレを開いた時や、追っかけスレ一覧を更新した時などに、追っかけスレ一覧に表示されているレス数を更新するように修正。
これは以前どこかで拾ったパッチを手で当てて実現できていたんですが
(詳しいことはすっかり忘れた)、2ch_mode_otherbbs.lを入れ替えたら
> 追っかけスレのレス数が更新されるとカーソルが左上に移動してしまう
症状が出るようになってしまいました。
2ch_mode_otherbbs.l内でいろいろ関数を上書きしてらっしゃるんですね。
どこに違いがあるのかこれから比較してチェックしてみます。
>>933 ありがとうございます…まだ使ってくださっている人いたんだなぁ(⊃д`)
ついさっき直して上げてみたので入れ替えてみてもらえませんでしょうか?
>>933 うわぁなんか変だと思っていたら追っかけスレの行反転が追っかけスレのリロードによって消えちゃってた…
これも直しました。毎度ぐだぐだですみません('A`)
otherbbsは2ch-modeの既存の関数をコピペして再定義して、
その関数を修正してそこから独自の処理へ分岐させたりしてるって作りですね。
なのでもともとの2ch-modeと半ば融合しちゃってる感じなので
2ch-modeが修正されるとotherbbsも思いっきり影響を受けちゃいます(´Д`)
ATOKを2011にしたら、再変換できなくなってしまった。 他のソフト上なら何ら問題無し。 同様な人いる?
うちはできてるな
>>937 レスありがとう。
そっか、となるとこちらの環境が悪いのかな。
ちなみにWin7 x64+ATOK2011。64bitなのが原因だろうか。
xyzzy-0.2.2.235.lzhを解凍した直後の真っ新な状態でも変換できないから、
どこから手をつけていいものやら。
「IMEの再変換をする」には勿論チェック入ってるのだけど。
俺のはXPだからな
>>940 アップデートしてみたけど、ダメだった。
他には、ブラウザ(Opera)でも再変換できなかった。
ググったら、Chromeとかでも再変換できない問題があるみたい。
相性と思って諦めるかな。そんなに頻繁に使う機能ではないし。
xyzzyでの正規表現の表現がわかりにくいためregexp-quoteで変換した文字列をマッチに使おうとしたのですが 意図したようにマッチしません このような用途でregexp-quoteを使うものではないのでしょうか? (string-matchp "\\.\\(idiot\\|fuck\\|damn\\)\\(\\.\\w+\\)?$" "you/are/bitch.idiot.fool") ; わかりにくい 13 ; マッチする (regexp-quote "\.(idiot|fuck|damn)(\.\w+)?$") ; 比較的わかりやすい "\\.(idiot|fuck|damn)(\\.w\\+)\\?\\$" (string-matchp "\\.(idiot|fuck|damn)(\\.w\\+)\\?\\$" "you/are/bitch.idiot.fool") nil ;マッチしない (string-matchp (regexp-quote "\.(idiot|fuck|damn)(\.\w+)?$") "you/are/bitch.idiot.fool") nil ;同じくマッチしない
>>942 regexp-quoteは正規表現のメタ文字をエスケープして、
メタ文字としては機能しないようにするためのもの。
例えば「.」は任意の一文字ではなくピリオドにマッチし、
「$」は行末ではなくドル記号にマッチする。
ああああああああああ!!! なるほど (regexp-quote "\.(idiot|fuck|damn)(\.\w+)?$") ↓ "\\.(idiot|fuck|damn)(\\.w\\+)\\?\\$" この結果は \.(idiot|fuck|damn)(\.w\+)\?\$ こうなるので ? や $ や + が正規表現のメタ文字にならないためにマッチしないんですね 逆にこうならマッチするわけですね (string-matchp "\\.(idiot|fuck|damn)(\\.w\\+)\\?\\$" ".(idiot|fuck|damn)(.w+)?$") 0 (string-matchp (regexp-quote "\.(idiot|fuck|damn)(\.\w+)?$") ".(idiot|fuck|damn)(.w+)?$") 0
>>943 おおおすごい
そんな方法があるんですね
そのページを見て自分が正規表現リテラルが欲しかったんだとわかりました
xyzzyを使っていると、他のエディタで これがすごい!軽い!効率アップ!とか言われても ピンと来ない。xyzzyユーザが驚くようなエディタってある? まあ乗り換えはしないだろうけど。
一度だけ、Grepかけるときにどうしても正規表現で改行を含まないといけなくて、 (xyzzyではうまくできなかった) NoEditorだったかな、それの付属のGrepソフトで出来たときにはちょっと感動した記憶が その時ぐらいかな
>>948 emacsのanything.elに驚いたくらいかなぁ。
バッファの選択とファイルのオープンは共通でいいやんってのにはなるほどと思った。
>>949 エスケープシーケンスを理解しろ にチェックを入れて
LINE1\nLINE2
でいけるはずだが
>>948 最近のntemacsは、昔に比べて処理速度がかなり上がっていて驚いたかな
(たらい回し関数調べ)
あとデバッグ環境は結構快適だった
vimは、プログラム組むにはなかなか便利だったかな
意外とカーソルの移動や編集が快適だった
EmEditorは、TeXのプラグインの出来が良くて感動した
でも、もしxyzzyが使えなかったら、と思って一応代替を探しているんだけど、
これ位快適なのは見つからないな〜
ちなみにKaaEditに、pythonでxyzzyみたいなことができるのか!?と
期待したんだけど、手にはいらなかった
失礼ちょっとした質問なのですが、 popup-mode-memoでマイナーモードにぷっぷアップする類に備忘録メモを追加できないかと企んでいます。 サンプルにあったメジャーモードでの表示は確認しました (popup-mode-memo-add-new 'markdown-mode 以下続く ) このような場合にmarkdown-modeに切り替えて、popup-mode-memoを発動しても、 上記のメモ以外は表示されますが、上記のメモがどうしても表示されません。 うまくマイナーモードでも表示する方法はないでしょうか? # markdown-modeがなぜマイナーモードなの?とかmarkdown-mode、色付けがないよ(´;ω;`) という問題はありますが、またあとで
>>953 今のところ実装してないようです。
popup-mode-memo.l に以下のように書いてあります。
> ;; Memo
> ;;
> ;; ・minor mode に対するメモを実装していない。
>>954 Licenseの上に書いてありました!!
minor mode bindingsの記述があったので、minor modeのキーが表示されますが、
メモの表示は対応していなんですね
ありがとうございました
一旦諦めます
956 :
名無し~3.EXE :2011/04/05(火) 21:53:05.13 ID:L83PmXs6
; 以降をコメントにするマクロ 文字列が行の先頭からはじまって : 出終わるまでを(Cのラベルのようなもの)に色をつけるマクロ を教えてください
USB起動用bat書いたのでup パッチ当てなくても何とかなるもんだね。 xyzzy.bat: @echo off set XYZZYHOME=%~dps0home set XYZZYCONFIGPATH=%~dps0usr start xyzzycli -image xyzzy.dump %*
>>958 修正
xyzzy.bat:
@echo off
set XYZZYHOME=%~dps0home
set XYZZYCONFIGPATH=%~dps0usr
cd %~dps0
start xyzzycli -image xyzzy.dump %*
ファイル名が半角スペースで始まるファイルを開くと タブにもバッファ選択にも出てこないのは何でなの〜?
ほんとだw 今まで気付かんかったなー
>>960 バッファ名の先頭がスペースのときは
いわゆる非表示バッファになるので仕様になるんじゃないかな。
バッファを固定することって出来ない? 2ch専ブラでいうタブ固定みたいなの。
964 :
名無し~3.EXE :2011/04/22(金) 02:35:37.80 ID:S8k4YMrO
さすがに作者が手を加えないと廃れそうな今日この頃だ。
sourceforge でメンテしようぜ みたいな話が昔登ってたけど、結局あれから誰も手を付けてないの?
xyzzyのメンテって、c++とlispの両方に精通していないと難しいのかな 普通のテキストエディタならともかく、common lispの処理系を積んでいるようなものだから それ相応のスキルが必要だと思う
本体はまあ今のままでもいいんだけど、 サイト閉鎖等で拡張lispが消えていってるのが痛い
もうEmacs使えよ! ということか?xyzzyの開発も止まったし。
WindowsでEmacs… 何度か挑戦してるけど、結局xyzzyに戻って来ている LinuxならEmacsで何も問題ないんだけどな xyzzyを知らなければEmacsで満足していたかもしれない…
Navi2chか…2ch-modeよりはメジャーかな?
外人巻き込んだコミュニティを作るのが一番な気がする。
各国語に別Lispを配布ってのは手間がかかり過ぎるから i18nをどこかで実装しないとだめだよね。 …俺にはスキルが足りない。
hookが存在しない時はソースいじるか諦めるしかないのかな? rename の直後に操作したいんだけど、 *after-rename-buffer-hook* がなくて困っとります。
>>973 hoge-rename つくって、キーバインド を設定すればOK
975 :
973 :2011/04/23(土) 18:01:10.09 ID:aSOBK3Uq
あー、save-as-dialog でも使っているから、 site-lisp に rename コピーして、自分で 好きなように再定義する方がベターかも
976 :
974 :2011/04/23(土) 18:05:41.70 ID:aSOBK3Uq
そういうときはencap.lという拡張にお世話になってる。
>>969 自分と同じだw
むしろlinuxでもxyzzy使いたい
励ましあうスレがなくなってもなんとも思わん新参ばっかり? でもユーザーが入れ替わってるってことはないよな
悪いが980突破させてもらう
さらば
Ubuntuでxyzzyを動かしたらとりあえず動いた。。。 けどやっぱりこの開発の止まったxyzzyだと、 もう見限ったほうがいいのかもしれない。
開発が止まったって 別に起動しなくなるわけじゃないからなあ
>>967 の言うように、site-lispがどんどん消滅していくのがキツいわ。
まあWindows自体、開発止まってるようなもんだしな、みんなの心の中で。
>>982 wineで一応動くんだよね
win32 apiで作られているから、wineと相性いいのかもね
xyzzyは開発止まってるけど、動かなくなったら、動かす人が出てくるんじゃないかと思う
このスレみてる人も、C++とlisp使う人結構いるんじゃないかな
988 :
987つづき :2011/04/23(土) 23:15:25.99 ID:xo5pzjrF
とりあえず消えた拡張lispのうち ライセンス上の問題がないものだけでも、どこかに保存しておこう
990 :
名無し~3.EXE :2011/04/24(日) 16:44:37.37 ID:zOY7hwab
EmEditorを買いなさい。xyzzyなぞゴミ。
EmEditorにゴミ言われた…w
>>990 EmEditorはいいエディタだと思う。
移行できる人は移行したら良いと思う。
Lisp モードがないみたいだからオレは無理だけど。
TeX使う分には問題ないしこのままでイクッ!
消えた拡張lispって具体的にはなんだっけ?
hexlとか?
使ってないけどtterm.lとか
997 :
名無し~3.EXE :2011/04/25(月) 01:14:27.80 ID:kpYXKCxO
お
998 :
名無し~3.EXE :2011/04/25(月) 01:14:49.12 ID:kpYXKCxO
わ
れ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。