xyzzy Part19 [転載禁止]©2ch.net
亀井さん作成のエディタ xyzzy のスレです。
過去ログや関連サイトなどは >>2-7 あたり。
前スレ:
xyzzy Part18
http://peace.2ch.net/test/read.cgi/win/1333301089/ 作者の手から離れて有志の人がバージョンアップさせてたのさっき知ったわ
1年位更新止まってるけど内紛とかあった感じ? 内紛を起こすほどの人も活力も残っていない
高齢化&過疎の村です 有志の「個人」がやってるだけだからやる気がなくなれば元と同じように終わるだけ emacsに移行する準備するかなぁ
ライブラリemacs Lispに書き換えないと
ふぅ! 11人で引き継いだって窓の杜の記事呼んだからチームでやってると思ったけどもう人が離れて個人でやってたのか
そらやる気なくなったら更新止まるよなぁ その記事だけど、gitのページを見るとチームでやってたわけじゃなくて
動き始めにパッチを書いてくれてた人含めて11人ってことで
開始直後の活発な時期が2人、それを過ぎたらほぼ1人でメンテしてくれてたみたいよ このスレのレス番 45 が例の書きこみで壊されたようです 520エラーでブラウザじゃスレ読めなくなってるっていう騒動な
新しいスレを立てれば対策済なので大丈夫らしいけど既存スレはもう無理らしい
人が多けりゃスレ立てなおしていいと思うけど、ほっときゃ落ちそうかね?w
styleもv2cも使いづらいからやっぱり2ch-modeゴネゴネしてるけど
read.cgiで見れなくなるとちょっとだけやる気なくなるw ブラウザから見れるので直ったようです
よかったよかった Land of Lispの著者はxyzzyの存在なんか知らないだろうか 地元の図書館でオーム社『入門xyzzy』が放出されていたので
思わず引き取ってきた。
もうxyzzy使ってないのに。 >>55
わははははは
と爆笑してしまった
知るわけないだろ!に100円 >>58
つかCommon Lispのwikiにも出てこないのねxyzzy >>59
Cygwin Terminal上のGNU Emacs。
これが軽快に動くPC環境が当たり前になった今、
xyzzyって貧者のEmacsだったんだなと思わざるを得ない。 >>58
爆笑とは多人数の時の言葉で一人の時に用いる言葉ではない
と先生が言っていた >>55>>60
古文書(ML)を漁るとRMSにxyzzyを紹介し人とがいて
フリーウェアの定義で揉めてたことがある。少なくとも当時(2001年)のRMSはxyzzyを知っていたが
ライセンスにしか興味なかったようで
xyzzyが日本のemacsクローンとして記憶の片隅に、まったくないと思われる
そういうことがあり、英語圏めんどいし訴訟とか迷惑だしもう紹介するな!
という空気ができあがり以降は英語圏lisp圏での知名度は広まらなかった
英語のwikipediaやEmacs wikiにすらxyzzyの紹介は確認できない xyzzyで正規表現を使って置換をしようとしたら、
Undocumented win32 error なるものが表示されて失敗しました。
(その後諦めてNotepad++を使用)
このエラーはwin32関連のエラーでxyzzyの問題ではないのでしょうか? 私は主にTexで使っているけど他のものを使う気がしない。
守備に入っている。 xyzzyで、キーボード操作で置換ダイアログを呼出すやり方を教えてください >>75
メニューバーのヘルプ→キー割り当て一覧で表示されるバッファの中から
「replace-dialog」を探せ
その行に答えが書いてある Alt-x
replace-dialog
ENTER >>76 どうも m(_ _)m
それが見つからなかったのです
>>77 どうも m(_ _)m
確かにそれでOKなのですが、長い。
なんとか2タッチぐらいにならないでしょうか?
あんまり長いとマウスを使っちゃいます。 .xyzzyに
(global-set-key #\C-M-r 'replace-dialog)
みたいなのを書いておく
C-はCtrl, M-はAlt同時押し
2ストロークならこんな
(global-set-key '(#\C-c #\C-r) 'replace-dialog) >>79
すごい!大大大感謝です。 m(_ _)m で 設定したそのキーバインドを忘れて途方に暮れるまでがワンセット それくらいなら上のメニューから検索(S)をクリックすればわかるだろうに >>80
今すぐ「.xyzzy 'replace-dialog」などでググった方がいい
global-set-keyすら知らないままxyzzyを使っているなんてあまりにもお気の毒 2ch-mode + 2chproxy.pl で板一覧をアップデート
したら、2ch が見れなくなった。 初心者で申し訳ないのですが、質問。
ファイルを開くダイアログのファイルの種類のところが
すべてのファイル(*.*)
Lisp(*.l)
HTML(*.htm,*.html)
みたいになっていますが、ここに他の拡張子を
例えば .hpg みたいなのを追加登録するには
どうしたらよいのでしょうか? >>90
.xyzzy に
(setq *file-dialog-filter*
'(("テキストファイル(*.txt;*.doc;*.log)" . "*.txt;*.doc;*.log")
("C/C++(*.c;*.cpp;*.cxx;*.h)" . "*.c;*.cpp;*.cxx;*.cc;*.h;*.hxx")
("Lisp(*.l;*.lisp)" . "*.l;*.lisp")
("HTML(*.htm;*.html)" . "*.htm;*.html")
("HPGL(*.hpg)" . "*.hpg")
("すべてのファイル(*.*)" . "*.*")))
(setq *file-dialog-filter-index* 6) 現在開いているファイルに対して、検索した結果を別バッファで一覧化するのって、
grepで対象を現在開いているファイルを指定するしかないのでしょうか?
検索での一覧表示ってありますが、これは少し違うんですよね。。。
あと、検索 or grepした結果から該当箇所にジャンプして編集するのではなく、
直接grep結果を編集することで、その結果をファイルに反映させることって可能でしょうか?
(Emacsにはそんなのがあったような・・・?) >>93
egrep
ところで改行コードの自動判定って全行チェックしてないのかな?改行コードが混在していてもCRLF表示されてしまって区別がつかない。 >>93
> あと、検索 or grepした結果から該当箇所にジャンプして編集するのではなく、
> 直接grep結果を編集することで、その結果をファイルに反映させることって可能でしょうか?
filer-gresreg でいいのかな?
ファイラから対象をマークしてAlt-r押すとダイアログが出て
逐一確認しつつすることも一括でやらせることも可 xyzzyで正規表現を使って置換をする場合、
検索する文字列が複数改行を融資ている場合、
常に検索対象に\nを含めないといけないのでしょうか?
例えば、Notepad++とかだと、チェックボックス(matches newlineだっけ?)を押せば、
特に\nを入れる必要がないのですが。 /n入れたら効くのか
C-j入れるしかないんだと思ってた 5つ質問があります
@文字列を範囲選択し、その文字列の右にキャレットがある状態で全て置換する場合
範囲選択した文字列も置換対象に含める方法を教えて下さい
A文字列を範囲選択して置換ダイアログを表示した場合、検索文字入力欄ではなく置換文字入力欄に
フォーカスを合わせる方法を教えて下さい
B現在のバッファから右または左の全バッファを閉じる方法を教えて下さい
Cテキストボックス等で、ショートカットキーを使って全選択は出来ないんでしょうか
(selection-whole-bufferに設定したキーでは出来ませんでした)
Dバッファを1つも表示しない状態には出来ないんでしょうか
(scratchを表示してない状態で全バッファを閉じると、scratchが表示されてしまいます)
出来ない場合、scratch以外のバッファを表示したら自動的にscratchを閉じる事は出来ますか >>99
Bは bufmenu.l でできたと思う >>100
レスありがとうございます
bufmenu.lを使ってみたんですが、幾つか問題があったので対応策を知っているなら教えて下さい
@バッファのタブのコンテキストメニューから左or右の全バッファを閉じようとすると、正常に動作する
Axyzzyを起動後、@を実行せずにショートカットキーで左or右の全バッファを閉じようとすると
閉じる事は出来るが「不正なデータ型です:nil:string」というダイアログが表示される
Bxyzzyを起動後、@を実行してからショートカットキーで左or右の全バッファを閉じようとすると
右は正常に動作するが、左はバッファを移動するだけで閉じる事は出来ない
ABのバグが発生する条件の詳細は不明で、上記の条件は一例です >>99
@は、
.xyzzy に
(in-package "editor")
…
(in-package "user")
で。
…の部分は、lisp/dialogs.l の replace-dialog の関数定義を
(search (or (selection-start-end (start end)
(goto-char (min start end)) ; これを加える
(buffer-substring start end))
(if *regexp-search*
*last-search-regexp*
*last-search-string*)))
と変更したものを。「全て置換」に限らず「確認あり」の時も、
範囲選択した文字列を置換対象に含めることになると思うけど。
ACDはソースいじらないとできなさそう。 >>102
試したところ@は出来ました。ありがとうございます >>101
bufmenu.l を使ってないからわからないけど
ed::*buffer-bar-context-menu-buffer* って変数を使っているのかも知れない
これから得られるのは多分直前に右クリックとかしたバッファタブのbuffer
で起動直後の ed::*buffer-bar-context-menu-buffer* にはnilが入ってる
使うには基準としたいバッファタブを事前に右クリックしてやらなきゃダメかもしれないですね
(global-set-key #\C-F12 '(lambda() (interactive)
(track-popup-menu
(funcall *buffer-bar-context-menu-handler* (selected-buffer)))
))
書き方おかしいかも知れませんが
これでCtrl-F12押してお使いの環境で表示しているバッファのバッファタブのコンテキストメニューが出るかどうか
もし出たら ed::*buffer-bar-context-menu-buffer* に値が入るかもです
解決になってない気がしますが >>103
Aも…に、
(setq *replace-dialog-template*
'(dialog 0 0 242 115
(:caption "文字列の置換")
(:font 9 "MS UI Gothic")
(:control
(:static nil "置換(&R):" #x50020000 7 29 32 8)
(:combobox replace nil #x50210842 39 26 140 96)
(:static nil "検索(&S):" #x50020000 7 10 32 8)
(:combobox search nil #x50210842 39 7 140 96)
(:button case-fold "大文字小文字を区別する(&C)" #x50010006 39 46 113 10)
(:button word "単語単位で検索する(&W)" #x50010003 39 59 97 10)
(:button regexp "正規表現(&E)" #x50010003 39 72 63 10)
(:button escseq "エスケープシーケンスを理解しろ(&Y)" #x50010003 39 85 113 10)
(:button whole "バッファの先頭から(&O)" #x50010003 39 98 89 10)
(:button query "確認あり(&Q)" #x50010001 185 7 50 14)
(:button all "全て置換(&A)" #x50010000 185 24 50 14)
(:button IDCANCEL "キャンセル" #x50010000 185 41 50 14))))
を追加で。置換と検索のところを入れかえだだけで出来るみたいだ。 とりあえずxyzzyでは一つ一つ改行を意識しないと無理だという事なんですね。 >>104
bufmenu.lを確認したところ、*buffer-bar-context-menu-buffer*を使っていました
色々試してみたのですが、bufmenu.lは現在表示しているバッファから左or右の全バッファを閉じるのではなく
バッファのタブのコンテキストメニューを表示したバッファから左or右の全バッファを閉じる様です
ちなみに>>104のプログラムでCtrl-F12を押すと
現在表示しているバッファのタブのコンテキストメニューは出ました
>>105
説明不足ですみません
文字列を範囲選択して置換ダイアログを表示した場合は
検索文字入力欄ではなく置換文字入力欄にフォーカスを合わせたいのですが
文字列を範囲選択せずに置換ダイアログを表示した場合は
従来どおり検索文字入力欄にフォーカスを合わせたいのです >>107
105 のコードの
(setq *replace-dialog-template* …
を
(defvar *replace-dialog-template-1* …
と書き換え、replace-dialog を
(let* ((str (selection-start-end (start end)
(goto-char (min start end))
(buffer-substring start end)))
(search (or str
(if *regexp-search*
*last-search-regexp*
*last-search-string*)))
(replace (or str
(if *regexp-search*
*last-replace-regexp*
*last-replace-string*))))
(dialog-box (if str
*replace-dialog-template-1*
*replace-dialog-template*)
…
と変更で。105 は無理矢理感がひどく、もっとうまいやり方ありそう。 >>108
試したところAは出来ました。ありがとうございます 適当
(defun my-close-right-buffers()
"右のバッファをすべて閉じる"
(interactive)
(setq *buffer-bar-context-menu-buffer* (selected-buffer))
(bufmenu-close-right-buffers))
(defun my-close-left-buffers()
"左のバッファをすべて閉じる"
(interactive)
(setq *buffer-bar-context-menu-buffer* (selected-buffer))
(bufmenu-close-left-buffers)) >>110
試したところBは出来ました。ありがとうございます 教えてください。
マイナーモードがonしてる状態でメジャーモードを切り換えると、バッファローカル変数は初期化されるのにマイナーモードマップは残るのは仕様ですか? マイナーモードはそういうもんだと思うけど
どのへんが引っかかったのですか >>113
メジャーモードを切り換えることによりバッファローカル変数はリセットされるので、マイナーモード変数自体がnilになります。にも関わらず動作するので違和感がありました。
あと、作りに依るのですが、そのマイナーモードがバッファローカル変数を作成参照してたりすると動作しなくなります。取りあえず、kill-all-local-variblesを上書きして回避してみましたが、後者については行儀が悪いだけかもしれませんね。 >>114
確かに変な仕様な気がするが、通常、切り換えるメジャーモードのフックには
マイナーモード変数が nil になってしまうマイナーモードが引っ掛けてあって
マイナーモード変数が t に戻るので問題が表面化しないんだと思う。
kill-all-local-varibles を書き換えるよりはフックに引っ掛けるほうを推奨。
Emacs も同じ問題を抱えているかどうか検索したけど見つからなかった。 今までkatexのためだけに使ってたけど、新調したPCで久々にTeX環境構築したら
Texmakerが素晴らしすぎることに今更気づいた・・・
TeXエディタってどれもこれも糞しかないと思ってたけど、いつの間にか進化してたのね
今までありがとうxyzzy
てか、texliveがインストール便利すぎて笑った
昔はTeX環境構築ったら一苦労だったのに 置換について質問があります
@1,2行目に「1」がある状態で文字列を範囲選択せずに置換ダイアログを開き、検索欄に「11」を入力して「全て置換」ボタンを押すと
「文字列が見つかりません」と表示され置換されない
A1,2行目に「1」がある状態で1,2行目を全選択して置換ダイアログを開き、検索欄に「11」を入力して「全て置換」ボタンを押すと
置換される
BAを実行後、再度1,2行目に「1」がある状態にしてキャレットを1行目の頭に移動させ、文字列を範囲選択せずに置換ダイアログを開き
検索欄に「11」を入力して「全て置換」ボタンを押すと置換される
A、Bで置換されないのが正しい挙動だと思うのですが、対処法を教えてもらえますか >>117
ダイアログでは見えないけれど、検索文字列に改行が入っているのでそうなる
@とAは履歴が区別されていませんか?
選択して検索文字列を送るとか履歴を使ったりせずに、
ダイアログで直接入力すれば改行が入る余地はないはず >>118
>@とAは履歴が区別されていませんか?
区別されていました
>選択して検索文字列を送るとか履歴を使ったりせずに、
>ダイアログで直接入力すれば改行が入る余地はないはず
これで思い通りの挙動になりました。ありがとうございます ちかんに会いたい
ダメダメ
チカンに会いたい
ダメダメ
ちかんをやりたい
ヤレヤレ いい加減、Wikiスパム対策しろよ・・・
その辺にあるpluginとか入れるだけだろ バッファタブを入れ替える(並び替える)方法を教えて下さい
他のテキストエディタはタブをドラッグアンドドロップすると入れ替える事が出来ますが
このソフトは出来ないんでしょうか どういう誤爆だったんだ…
ちなみにxyzzyではバッファのタブのD&Dは普通に出来ると思うが そうなのか
知らなかった
(マウスつかわかんからなぁ) 2つ質問があります
@バッファの行番号をシングルクリック、ドラッグした行全体を範囲選択する方法を教えてください
(行番号をトリプルクリック、ドラッグした時の挙動をシングルクリック、ドラッグで行いたい)
Aバッファのキャレットがある行の行番号を何らかの形で変える(文字色、背景色等を変える)方法を教えてください
(行カーソルはアンダースコア等が見づらい為) マルチフレーム版のxyzzy、Windows10 pro 64bit で終了時に「xyzzy は動作を停止しました」がでます。
0.2.2.253版 だと問題ありません。
マルチフレーム版の方、対応お願いできませんか。 >132
Win10はしらんけど互換モードで実行してみては。