- 亀井さん作成のエディタxyzzyのスレです。
過去ログや関連サイトなどは>>2-10あたり。
- 関連サイト
・謎のぺぇじ -- 作者の亀井氏のページ
http://www.jsdlab.co.jp/~kamei/
・Junk Scripts -- 2ch-mode,NetInstallerの作者服部氏のぺーじ
http://www.mirai.ne.jp/~gyo/
・XyzzyWiki
http://web.sfc.keio.ac.jp/~t01450ms/xyzzy/wiki/?FrontPage
・XyzzyWiki -- NetInstaller/配布パッケージ一覧
http://web.sfc.keio.ac.jp/~t01450ms/xyzzy/wiki/?NetInstaller%2F%C7%DB%C9%DB%A5%D1%A5%C3%A5%B1%A1%BC%A5%B8%B0%EC%CD%F7
・HIE no xyzzy -- 日江氏による QandA, Reference, Extended xyzzy lisp library
http://hie.3.pro.tok2.com/xyzzy/
・HIE no xyzzy -- リンク集
http://hie.3.pro.tok2.com/xyzzy/links.html
- 過去ログ
Part1 http://yasai.2ch.net/win/kako/979/979930156.html
Part2 http://yasai.2ch.net/win/kako/994/994321779.html
Part3 http://pc.2ch.net/win/kako/1001/10017/1001707308.html
Part4 http://pc.2ch.net/win/kako/1008/10080/1008057054.html
Part5 http://pc.2ch.net/win/kako/1013/10130/1013042550.html
Part6 http://pc3.2ch.net/test/read.cgi/win/1019691417/
Part7 http://pc3.2ch.net/test/read.cgi/win/1032910212/
Part8 http://pc2.2ch.net/test/read.cgi/win/1041613876/
Part9 http://pc2.2ch.net/test/read.cgi/win/1053880433/
- 忘れてた。
以上です。
- >>1
乙です。
- 乙かレーション
- モロトミ ヤスミツ 【ヨコチン大使】
〜伝説から神話へ〜
体育館で自らヨコチンを曝け出し、「汚い」「触るな」と虐められ泣かされていた。
その日を境にあだ名は【ヨコチン大使】になる。
「先生。○○君がヨコチン大使って言うねん」と朝の会で皆の前で泣き叫んでいた。
彼はまるで銀幕スターだった。銀シャリ食べたい。
- 局所ニュースさん復活してたのねしらんかった。
でも<noscipt>が閉じられてないのでIEでしか見えん…。
- ~/.www にイカを書いても *WWW SRC などのバッファタブが
表示されてしまうのは なぜなんでしょうか.
(setq www::*www-buffer-name-prefix* " *WWW ")
- >>9
(setq *www-buffer-src-prefix*
(concat *www-buffer-name-prefix* "SRC: "))
を書けば消える。
表示されているバッファの prefix が*www-buffer-name-prefix* でないだけの話。
- >>10 ああ,そうか. thxです.
今 dolist を元に (donlist (varlist listform &body body)...) なるものが見当たらないので,
がんばっているのですがうまくいきません.期待する動作としては,,,
(donlist ((a b c) '(x y z z y x))
(format t "~A ~A ~A~%" a b c))
x y z
z y x
nil
という結果が欲しいのですが.ぜんぜんうまくいきません.
- >>11
めっさ適当。
(defmacro donlist ((varlist list) &body body)
(let ((lst (gensym)))
`(let ((,lst ,list)
,@varlist)
(loop
(when (null ,lst) (return))
,@(mapcar #'(lambda (x)
`(setf ,x (pop ,lst)))
varlist)
,@body))))
- >>12
ありがとうございます. ,@ は便利ですね.gensym は,こういうの
必要じゃないのかと思いながらマクロ書いてました.勉強になりました.
dolistみたくreturnformだけ追加して使います.ありがとうございました.
- Wikiに神が現れたもより
- 前スレが1000になってしまったのでもう一度…。
katexの最新版をいれるとTeXのコメントに色がつかなくなるのは
私だけでしょうか?
- >>15
色はついてます.
- >>16
そうですか・・・。
インストールしなおしてみようと思ったら、バイトコンパイルのところで
`return-from'のキャッチャを参照できません: nil
とエラーメッセージが出てしまいます。
elisp.lはコンパイルできていますがemacs.lの途中でエラーが出ているようです。
- c-modeで
#define XXX \
xxx1, \
xxx2, \
xxx3, \
xxx4, \
みたいにした時ってインデント変になりませんか?
# define XXX \
xxx1, \
xxx2, \
xxx3, \
xxx4, \
だと一見普通に見えるけど
最後のxxx4, の末尾の','の有無で変わるような。
どこを直したらいいのか全然わかりません。
- >>17
ML で話題に上っていましたが一度 katex (emacs.l ?)を読み込まないようにしてから
バイトコンパイルしてみてください.
- >>18
ほんとだ。変だね。
でも、calc-c-indent って組み込みらしいから簡単にはいじれないね。
- >>19
ありがとうございます。
install.txtに書かれている「最終的に、」のあとの部分を
siteinit.lから削除してやってみました。
するとload-library katex/katexinsのところで
elispが見つからないといわれました。
それで、次に(require "elisp")だけを.xyzzyに追加してもう一度やってみると
今度はmakefileが見つからないといわれてしまいました。
load-pathにsite-lisp/katexを追加するコードを.xyzzyに追加してやると
load-library katex/katexinsをやると、今度は通って、
バイトコンパイルをすると >>17 と同じエラーが出ます。
なぜでしょう。
一応Meadow+YaTeXも使えるようにはしてあるのですが、
これが気になってなかなか原稿が書けません。
と、責任転嫁して心の平穏を保ってみる。
- >>21
私は siteinit.l から件の部分を削除して xyzzy.w?? を作り直す.
.xyzzy に (pushnew "~/site-lisp/katex" *load-path*) だけ入れて xyzzy を起動して.
load-library katex/elisp
load-library katex/katexins
elisp::katex-byte-compile
としたらば大丈夫でした.
励ましあうほうで続けるのが適切かしら?
- >>22
> 励ましあうほうで続けるのが適切かしら?
すみません。励ましあうほうで励ましてください。
- 前スレで(励ましあう方だったかな?)要望を書き込んだ者ですが、
Netinstallerの配布サイト自動更新、すばらしいです!
作ってくれた方、ありがとう!
- ファイラーでダブルクリックするとファイルが開かれるのをやめて
なにもしないようにしたいのですが、どうすればできるでしょうか?
- ファイラーでダブルクリックしない。
- >>25
ファイラーでマウスを使わない.
- 26と27の寿命がそれぞれ一年ずつ縮みました。
- まじで、filer をマウスで操作するくらいなら OS 附属の explorer 使った方がよいと思う
- katexを使うときに、数式環境内で記号補完をしようとすると固まってしまいます。
なぜでしょうか。。。。
バイトコンパイルとかは普通に通ったのですが。。
- libTest.dllに以下のような関数があって
int __stdcall callbackTest(int val, int (*fn)(int))
{
return fn(val);
}
lispから以下のようにすると
(c:define-dll-entry c:int callbackTest (c:int (c:void *)) "libTest")
(c:defun-c-callable c:int callback ((c:int val))
(* 2 val))
次の命令で落ちてしまいます。
(callbackTest 8 #'callback)
原因わかる方いますか?
別にdllを利用しようとして困ってるわけではないんですが、
wip/hellowin.lなんかでウィンドウプロシージャをlispで書いている例があったので、
自作のライブラリのコールバック関数にlisp関数を使えるかなーと思ったので。
- 英辞郎(www.alc.co.jp)の仕様がまた変わりましたね.
これ自体はeiliro.lをちょいちょいっと書き換えればいいことなんですが,
今回からフォーカスがブラウザ側(browserex.l使ってます)に移ってしまうようです.
正確にはブラウザにある単語を入力するフィールドにフォーカスが移っています.
以前のようにフォーカスをバッファに留めておく,
もしくはブラウザ側からバッファに戻す方法はないでしょうか?
- >>32
編集バッファにフォーカスを移す
- >>32
あります。
※ sleep-forする時間は調節してください。
(c:define-dll-entry (c:void *) set-focus ((c:void *)) "user32.dll" "SetFocus")
(defun ie-eijiro (from to)
(interactive "r")
(if (= from to)
(progn (message "単語を選択してください") (return-from ie-eijiro nil)))
(long-operation ; 砂時計
(let ((str (si:www-url-encode (buffer-substring from to))) type url)
(setq url (concat "http://www2.alc.co.jp/ejr/index.php?word_in=" str
"&word_in2=%82%A0%82%A2%82%A4%82%A6%82%A8"
"&word_in3=b645FDPrFJqCbRfXW8"))
(popup-navigate-for-eijiro url)
(sleep-for 1)
(set-focus (get-window-handle)))))
(popup-navigate-for-eijiro url)
(sleep-for 1)
(set-focus (get-window-handle)))))
更新すべきかせざるべきか…
- >>34
すみません。コードの下から3行分はごみです。
- eijilo.l で英辞郎を使おうとすると「トップページからやれ」と
言われるのですが、みんな使えてるのですか。
- >>31
int __stdcall callbackTest(int val, int (__stdcall *fn)(int))
- >>36
eijilo.lの該当部分を>>34のように書き換えれば"とりあえず"使えます。
- >>38
おー。なんか自分で調べずすまん。
いや、なんかフォーカスだけが変わったのかなーって。ごにょごにょ。
- 既出ならスマソです。
検索する時の単語単位の区切りに _ が含まれないようにする方法が知りタイのレス
- >>40
これを _ で区切られたくないモードのフックに引っかける
(set-syntax-word (syntax-table) #\_)
- calmemo
howm
wikilog
rd-memo
changelogmemo
オマエらどれ使ってる。
漏れはrd-memo, changelogmemo, howmだべさ。
- >>42
そろそろどれかが本命としてメジャーになってくれないかな。このジャンルは
決定版がないからとっつきにくいわ。
- >>41
おぉーできすた。
感謝感謝m(..)m
- howmをとりあえず入れてるけど、使い方になれるまでがめんどいね。
簡単なメモ程度ならhowmが一番使いやすそうで、
ある程度の分量になったら、普通に.txtにしてまとめてる。
rd-memoならhtml変換できるんだっけ?
- >>45
RDで書くんだから RDToolsで変換できるよ。
- あんま関係ないけど
RDを楽にワード形式に変換する方法ってないのかな?
出来たらいろいろ便利なんだが……
- OLE駆使すればできるでしょ。
- メタファイル書いてもいいかもな
- >>49
なにそれ?
- >>37
ありがとう。いけました。
- >>50 ワードパッド文書のことです。
- >>42
rd-memoからhowmに移行中。
>>43
「どのエディタがいい?」って聞かれている気分。
使い方や好みによっては、自由度が低い方が
メモとして優れていることもあるだろうに。
まあ、最大公約数的にはhowmかなとは思う。
迷ってるならhowm使ってみ。
もしくはツールに頼らず、慣れたエディタとOSで
そのままメモ取りしてみるとか。
そうすれば、どんな機能が欲しいのかはっきりするんでない?
>>52
rtfのこと?
- この際誰かrd2doc-mode書いてください。
オレはOLEわかんね。
- >>54
書くなら普通にrubyで書くんだろうけど。
ふむふむ、54が書いてくれると。
- >>54
この際あなたがOLE覚えて作ってください
しかしなぜモード?
- マウスで文字をクリックした時に
左半分ならその文字に
右半分なら次の文字に
カーソルが移動するような
そんなエディタになってほしい
- そんなエディタに 私はしたい
じゃないのかよ。ポエムっぽくて笑ったけど。
- howm-wrapperはhowm-1.1に対応するのかしら。
- 亀井さんて元気なの?
- >>57
うわほんとだ。メモ帳なんかはそういう動作すんだな。
ぜんぜん知らんかった。んでこれってどう便利なの?いまいちわからん。
- >>61
四捨五入的って感じ?
マウスでキャレット移動しないから興味ないけどなー。
- >>60
/ヽ | i i ヽ \ \ o *
__/ ヽ_ / | | | \ ヽ ヽ . .
\ / / / / ヽ | |+
. | ∧ | / / / | | |. . .
レ \| / / / | | | 。. ★ ☆
| | | | 。. .
| | | /\ /\ | . ☆ +
. | | | ..::::::::::::... ..:::::::... | +
| | | * ー―――― / . . ☆ 絵里は元気だよ。
/ / γ´~⌒ヽ. /☆ . * +. .
/ / / ヽ /⌒ヽ
- >>63
…おまえじゃない。
- >>61
ポインタが「I」の形だから、直感的に分かりやすいかな?
まあメモ帳の場合はキャレットも「I」みたいな形だからそうしてるんだろう。
ちなみに俺もそういう挙動のほうが嬉しい。
- ,,,,,,---ー---、、、
,.-'";:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:ヽ、
,,.;;;::;:;:;:;::;;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;!i`ヽ
/;:;:;:;:;:;:;:;:;:;:;:;:!!!!!!!!!''""":::;!!!!ノヾ;:;:\
/;:;:;:;:;:;:;:;:;::!!''" !;:;:;:;:;ヽ
|;:;:;:;:;:;:;:!'" ヽ;:;:;:;ヽ
|;:;:;:;i''" i!;:;:;:;|
|;:;:;:;| ヾ;:;:;:|
|;:;:;:;| ,,,;;:iii;;;;; ,.-==--、. `!;:;|ヽ
〉;:;:| ,.-''" ̄ ̄ ̄`ヽ⌒| --。、-、 ヽ-`' | >>60
i `u i -‐'"ヾ'" :: ::! : | ノ 私は元気です。
i | ノ ヾ、___ノ ::|
| | ヽ、__,.-i i 、 : :|
| | : : '" `〜ー〜'" ヽ : : ::|
`i ヾ ' ____ ;: ;: :|
\ -‐'''"~ ̄ ̄ ̄ ̄ ; ;: :/-、_
ヾ: : . ` " " " ,./ `ー-、
,,,--'\: : ,. ,.イ
_,.-‐'" |`ヾ;:;:ヽ....、 : : : / !
_,.--‐'" | `ー、;:;:;:;:;:;:;:;:;:;:,.-''" |
| `>ー‐< /
! / ,.'"\ !
| /~i / `/
- >>66
…おまえじゃない。
- >>66
ワロタ
- >>54
むりにdocを吐かずに、Wordのコンバータがそれっぽく処理を
してくれるようなHTMLを吐くのではダメなの?
どんなHTMLを吐けばいいのかわからんけど。
- >>59
VerUp に気づいてませんでした。
今取りかかってますが、emacs 独特の(エディタとしての)
機能が使われているようで、どこまで再現できるか怪しい感じです。
- >>70 神
無理せずマターリおながいしまつ。
- 現在の(point)が直前のタブストップから何文字目かを調べるのは
どうやるんでしょう.
あとタブストップは *tab-columns* で指定する以外にも,*tab-stop-list* が
textmode.l で定義されているのですが,両者の関係はどうなっているんでしょうか.
どういう条件で *tab-columns* がの値が使用され,どの条件で *tab-stop-list* の
値が使用されるのかがよくわかりません.
- howmの質問なんですけど、メニュー画面内のToDoリストのDoneしたやつってずっと消えないんですか?
- >>72
> 現在の(point)が直前のタブストップから何文字目かを調べるのは
> どうやるんでしょう.
(mod (current-column) (tab-columns)) かなぁ〜
# ローカルなタブの幅を得るにはどうしたらいいんだろ?
> あとタブストップは *tab-columns* で指定する以外にも,*tab-stop-list* が
> textmode.l で定義されているのですが,両者の関係はどうなっているんでしょうか.
> どういう条件で *tab-columns* がの値が使用され,どの条件で *tab-stop-list* の
> 値が使用されるのかがよくわかりません.
両者の関係は皆無(たぶん)
*tab-columns* タブコードの表示桁のグローバルな設定値
*tab-stop-list* 関数tab-to-tab-stopで使われる。
(タブコードが一つ挿入されるとは限らない)
- >>74
ありがとうございます.大体分かった気がします.
tab-to-tab-stopとこれが使われているところ,それに
untabifyを読んで自分なりに確認してみました.
> ローカルなタブの幅を得るにはどうしたらいいんだろ?
(tab-columns (selected-buffer)) のようです.
- MS-IMEがローマ字入力ではなく仮名入力でオンになっているときに
M-fのようなM-で始まるコマンドを打つと, たとえばこの場合なら,
単語一個分前に進むのではなく「ハ」と表示されてしまうのですが,
これって既出ですか?
- ほんとだね.既出ではないと思うけど,特に対応してもらわなくても(ry
- On Lisp のサンプルコード. xyzzy上で以下のコードだけエラーが出て
定義できなかったんだけど,なぜでしょう
(define-modify-macro concnew (obj &rest args)
(lambda (place obj &rest args)
(unless (apply #'member obj place args)
(nconc place (list obj)))))
- 【徹底的】プログラマーが語るviとemacs 7【バトル】
http://pc.2ch.net/test/read.cgi/prog/1064605855/
514 :仕様書無しさん :03/11/15 14:09
Vimの方がEmacsより速いとか言っていた馬鹿が居たなぁ
ttp://msdn.microsoft.com/seminar/shared/asp/view.asp?url=/msdntv/episodes/en/20031028lhorndb/manifest.xml&rate=1&WMPVer=9.0.0.3008
どう見てもEmacsの方が速いなプッ
以前のこれと比べてみろよ
ttp://seriss.com/people/erco/fltk-videos/tutorial-fltk-hello.html
ダセーーー(藁
なんか、Vim抜けてプロンプトでコンパイルしてまた開いてるよプッ
しかも、Emacsの方が断然速いな〜
いい加減乗り換えた方が良いんじゃねぇか(藁
それにしてもM$のプログラマホモくせーな
- 902 :KoRoN@Vim%Chalice ◆8XALICEsdk :03/11/15 20:30
トレンドに影響され易いんで、Vimを操作しているところをDivXでAVIにできる環境を整
えてサンプルムービーを作ってみました。90秒で1.6MB弱っていうところです。音声が
取れないので残念ながら舌打ちは入ってません。あとウホッも出てきません。
http://www.kaoriya.net/testdir/hellovim.aviOpen
環境を整える過程でWinkというチュートリアルを作るのに良さそうなソフトウェアも見
つけました。
http://www.debugmode.com/wink/Open
作ってみて感じたのですがこの手のムービーは見てると結構面白いですね。初心者とか
Vimを知らない人に見てもらう手段としても良いでしょう。何かネタがあれば。
- わざわざ両方(xyzzyがわからないヤシ)に貼り付けて何が言いたいんだおまいは。
- >>78
ほんとだ。
define-modify-macro の展開時に引っかかってるみたいだけれど……
setf.l 302 行目、
(return ``(setf ,reference (,',function ,reference ,,@nreverse ,(cadr l)))))
ここが展開時に引っかかってる?
他の define-modify-macro 使ったサンプルコードは動きました?
incf やら decf が動いてるんだから、うまく展開できるときとできないときがある、
てことなんだろうけれど。何だろう?
- perl モードを無効にする方法を教えてください。
perl.l ファイルを移動しただけではエラーが起こってしまうのです。
- >>83
(pushnew '("\\.pl$" . text-mode) *auto-mode-alist* :test 'equal)
とりあえずこれを .xyzzy にでも書いたらどうよ
- >>83
こっちのほうがいいかも
(delete-if (lambda (x) (eq 'perl-mode (cdr x))) *auto-mode-alist*)
- なぜか.xyzzyファイルは働かないので
siteinit.lの方に>>84を書いたらうまくいきました
(>>85の方はエラーがおきた)
どうもありがとうございました
- 85ではないが、
(delete-if #'(lambda (x) (eq 'perl-mode (cdr x))) *auto-mode-alist*)
ならいけるかと。
- Mozilla Firebird0.7(Win)でRSS Reader Panelというプラグインを使ってWikiの
RSSを読み込もうとすると、XMLパースエラーってのが出るんですけど、これ直り
ませんかね?どちら側の不具合なんでしょう?
- >>88
調べて報告してください。
- そのプラグイン入れて試してみたけど、俺も同じ症状だ。
他のところのRSSだと大丈夫。
- siteinit.lに
(setq *default-buffer-mode* 'lisp-interaction-mode)
とかくと,スタックオーバーフローするのはなぜでしょう
- ちなみにこれでもなる
(setq *default-buffer-mode* 'lisp-mode)
- emacs vs vi スレでめどぅ厨とバトり始めたのはここのヤシラか?
- 違うよ。ここはviはおろかemacs、Meadowすらほとんど話題に上らない。
究極の「我が道を行く」ソフト及びスレ。
- 現在のモードを,新規に作成したバッファにも適用できますか?
grep結果を検索元のバッファとモードと同じモードで表示させたいのですが
- ここはemacs系でも一番伝統とか実績に興味ない人の集うスレだろうからなあ。
自分が一番使いたい機能がある、実現できるエディタを使えば良しって感じ。
- linux zaurusでxyzzyを使いたいのですが、移植できないでしょうか?
- 頑張ってしてください。
- >>97
LinuxならXEmacsとか移植した方がよくない?
既にありそうだけど。
- >>95
自己解決しました.お騒がせしました
- 冗談抜きで Linux 上に xyzzy がほしい。
- >>100
俺にも教えてくれ。
- エディタより
エディタで何を作るかの方が大事ではないのか?
そこのところをここの人間は間違えているのではないか?
とおもったぞ。
- いや、手段と目的が入れ替わってこそエンジニアだと思うが。
- >>102
改行規制に引っかかって鬱.
直したい部分もあるので,修正後に公開します.
まだ先になりますが.
- >>70
「emacs 独特の機能」ってどのあたりですか?
- NetBIOS名.lというファイルを作成しておいて、.xyzzyの最後で
ディレクトリ等、マシン固有の設定を記述するようにしたら便利かと思っているのですが、
現在使用しているPCのNetBIOS名を取得することは可能でしょうか?
- 「.xyzzyの最後で」は「.xyzzyの最後で読み込み、」の間違いでした
- 2ch-mode で、sports2鯖にある板に書きこめないんですが(クッキーがどうたらと言われる)、
どうしてでしょうか。
- >>107
(machine-name)
- >>107
(require "foreign")
(require "wip/winapi")
(c:define-dll-entry winapi:DWORD GetComputerName (winapi:LPCSTR winapi:DWORD) "kernel32" "GetComputerNameA")
(let* ((sz 500)
(name (si:make-chunk nil sz)))
(GetComputerName name sz)
(insert (si:unpack-string name 0)))
でもごめん、これはAccess violationで動かない。
- >>110
がーん。
- >>112
元気出せ
- >>107
こうかな?
(defun get-computer-name ()
(unless (fboundp 'GetComputerName)
(require "wip/winapi")
(c:define-dll-entry c:long GetComputerName
(winapi:LPSTR (winapi:DWORD *)) "kernel32.dll" "GetComputerNameA"))
(let ((buf (si:make-chunk nil 15))
(size (si:make-chunk nil 4)))
(si:pack-int32 size 0 15)
(if (GetComputerName buf size)
(si:unpack-string buf 0))))
- >>110
俺もがーん
- WikiのRSSがFirebirdで読めるようになりました。
結局原因が判らずじまいだったんですが、直してくださったんでしょうか?
ありがとうございました。
- >>110
ありがとうございます。
自宅のXP HOMEで動作確認したので、明日は職場の98SEで試します。
ところで111さんが書いてくれてる方法なのですが、
こちらはAccess violationでxyzzyごと持って行かれちゃうんですね。
初めて見た事象で、自宅で一人笑ってしまいました。
114さんのはウチでは正常動作しています。
- >>117
そのへんは, (user-name) (machine-name) (get-env "USER") などの結果を
condで分けて書くのがいいかと.(os-platform) もありますね.
- (si:getenv "USERNAME") でした.やっぱり確認しないとダメだ
- diff-mode で
http://hp.vector.co.jp/authors/VA017396/software/Rekisa/
のように「文字単位の違い」を下線なり反転なりで表現できるようにしていただける
ハッカーはいないでしょうか。
- たまに話題に出るけど,分かりやすいdiffを作るのは難しい.あきらめろ
- あらら、そうなんですか…。
では要求のレベルを下げて単純に行内の違う文字が太字だけでもいいです。どうでしょうか。
- スルーされちゃったけど、もうちょっとだけ。
IE からなら書きこめます。
この鯖は他の鯖といろいろ仕様が違うので、クッキーの仕様も違うのかなとか
思ってるんですが。
sports2鯖上の板の例:
・ラウンジクラシック
・イラク情勢
・年末年始番組
・ワールドカップ
上記はいずれも×です。読むのは問題ありません。
他の鯖の板なら、(ここもそうですが)普通に書きこめます。
全鯖で確認したわけではありませんが。
他の人は問題ないのかなあ(泣
- >>122 両方とも set-text-attribute で同じように指定できるので,要求が全く下がっていません.
diff のコアはlispで実装されてなく コマンドの diff を呼び出してその結果を解析しているだけ
なので,コマンドが吐き出す情報に従い任意の色付けすることは可能ですが,その出力結果を自分で
調べる必要があります. そのように色付けして欲しいなら,そのような出力をする diff を自分で
探して,その正確なフォーマットと,現在対応しているdiffのフォーマットの違いを正確に説明すれば
だれか優しい人がそのような diff を作ってくれるのではないでしょうか.
質問ですが,aproposでできるバッファで jump-tag をしたいと思っています.
とりあえず *Help* バッファを lisp-mode にしようと思うのですが以下のコードではうまくいきません.
どうすればいいか,だれか知恵を授けてください
(user::encapsulate 'ed::apropos
'apropos-lispmode
'((interactive)
(apply user::basic-definition user::argument-list)
(lisp-mode)))
- diff コマンドの結果を解析するだけで出来ると思うのですが…。
lisp は知りませんが、diff.l を見た感じ、まず冒頭の +, -, ! を見ていますよね。
それに続く文字列を比較すればいいだけですよね?
perl/PHP なら新しい行を $new_line、古い行を $old_line として、
その 2 つを substr() で一文字ずつチェックして違うところから (HTMLなら) <b> を入れて…という感じですよね?
- >>125
> その 2 つを substr() で一文字ずつチェックして違うところから (HTMLなら) <b> を入れて…
そこまでは分かる。問題はその後じゃない?
行末まで違うとみなしていいなら、今のと大して変わらないし、
そうでないのなら、どうするの?
というか欲しい人が作ってください。期待して待ってます。
>>124
てきとーですが、こんなとか。
(defun apropos-lispmode (string &optional print-key pred)
(interactive "sApropos(Regexp): \np")
(apropos string print-key pred)
(set-default-directory "~/lisp/" (selected-buffer))
(lisp-mode))
- そのままだと書けませんね。>sports2系
sports2だけはひろゆき用の実験鯖だとかで他の鯖とは大きく仕様が違いますが、
発行しているクッキーも違うはずです。
- >>126
thxです. 参考になりました. aproposの定義コピーしてきて何とかできたんですが,
こっちのほうがいいですね.
encapsulate は interactive で入力待ちになる関数にはあまり向いてないんですかね.
便利なので時々 使うのですが,こういうのはダメなのかな.
しかし tag jumpに (set-default-directory "~/lisp/" (selected-buffer)) を指定するというのは
よく知られたことなんですか? 必死に探して create-tags-buffer を再定義し, ファイル名無しの
バッファに対してデフォルトのディレクトリを指定するようになおしました.でも これでいいのか,
自信ないです. find-tags-buffer も怪しい.
一応,こっちのほうが汎用的なので tag jumpはこのままいきます.
lisp-mode は色づけと tags-find-target の指定と,info が使えるようになったので便利になりました.
ありがとうございました.
- メモリの消費量を出来るだけ少なくして軽量化しようと思っています。
今は起動時に9.2MB消費してます。
何かいい方法があれば教えてください。
- >>128
ついこの間こんなの作った。
(defun jump-tag-other-directory (jump-command)
(let (nbuffer
(buffer (selected-buffer))
(dir (default-directory)))
(unless (and
(file-exist-p (merge-pathnames *tags-file-name* "."))
(funcall jump-command))
(unwind-protect
(dolist (l *tags-file-alist*)
(and (eq buffer-mode (car l))
(dolist (f (remove dir (cdr l)) test)
(cd f) (message f)
(setq test (funcall jump-command)))))
(set-default-directory dir buffer)))))
(setq *tags-file-alist*
(list
(cons 'lisp-mode
(list
(merge-pathnames "lisp" (si::system-root))))
(cons 'lisp-interaction-mode
(list
(merge-pathnames "lisp" (si::system-root))))
))
- >>125
>>126
行頭から走査して始点を確定して、行末から走査して終点を確定するとか。
行中に二カ所以上の変更点があった場合にはちょっとおかしくなるけれども、
必要十分な結果は得られると思われ。
- howm1.1出ましたね。入れた人います?
- >>131
違いが出てきたらどこまで違うか照合するのはどうでしょう。例えば
aaabbbxxxと
aaacccxxxという行で考えればaは無視し、bの所を記憶しxが出たら中止。
- >>133
そしてxが出てもまた違いがないか再帰で調べる、と。
- んなものdiffのアルゴリズム調べればいいだろ。
ttp://lecture.ecc.u-tokyo.ac.jp/~yamaguch/pub/cp2-9/LCS.html
まあ、自分で考えるのは楽しいけどね。
- >>132
現状のwrapperでは動かないはず(Test版は動かなかった)。
今、>>70の神が対応中のはず。
- >>136
モード毎にディレクトリを指定できるわけですね.jump-command は jump-tag とかを
与えるので いいんですか? いいですねこれ.
- >>136
大した知識もないのにこれから普通にインストールしようとしてました。
対応を待とうと思います。Wrapper作者様、どうぞよろしくお願いします。
- sports2鯖問題、とりあえずなんとかなりました。
過去ログのどこかに
「クッキー確認のページに<!-- 2ch_X:cookie -->が無いのが原因」
とあったので、http.lに
(defconstant *post-result-cookie2* (regexp-quote "<title>\x83\x4E\x83\x62\x83\x4C\x81\x5B\x8A\x6D\x94\x46\x81\x49</title>"))
を追加、http-post 関数の↓を
(cond ((string-match *post-result-cookie* body)
↓に変える。
(cond ((or (string-match *post-result-cookie* body) (string-match *post-result-cookie2* body))
ようするに、ページタイトル「クッキー確認!」でチェックしてるんですが、そのまま書いても
string-matchの判定がうまくいかなかったので、わざわざこんなふうにしています。
で、問題なく書きこめるようになりました(たぶん)。
ほんとは鯖名も見たほうがいいだろうし、不安がなくはないけども。
- diff-detail あげ
- >>130
(defun jump-tag-other-directory (&optional (jump-command #'jump-tag))
(interactive)
(let (nbuffer ・・・として使ったんですけど
lisp-tags-find-target が何回も呼ばれてしまうんですけど、
この関数定義を変えて、カーソル直下に単語がなければミニバッファから
入力するようにしているんです。 書いてて自分だけの問題だと気づきましたが
入力を1回で済ます何かよい方法があれば、よろしくお願いします
- こなんつくったけど、無意味?
(defun indent-for-2ch (beg end)
(interactive "*r")
(save-excursion
(save-restriction
(narrow-to-region beg end)
(goto-char (point-min))
(let (col)
(loop
(goto-bol)
(when (re-search-forward "^[ \t]+" t)
(setf col (progn (goto-char (match-end 0)) (current-column)))
(delete-region (progn (goto-bol) (point)) (match-end 0))
(insert (concat (make-vector (truncate col 2) :element-type 'character :initial-element #\ ))))
(unless (forward-line 1)
(return-from indent-for-2ch)))))))
(defun unindent-for-2ch (beg end)
(interactive "*r")
(save-excursion
(save-restriction
(narrow-to-region beg end)
(goto-char (point-min))
(replace-buffer "^ +" "" :regexp t)
(indent-region beg end))))
- Web制作板の方のスレに面白いものがあるぞ。
- >>141
どんな関数定義をしてるのかわからないので、はっきりといえないが
素の lisp-tags-find-target の (goto-char opoint) の所の下に、
(if (string= "" name) (direct-tag-jump) を書くと、うまくいった。
便利なのでそのアイデアもろた。
- すまん >>144 の追加のコードの最後に、) 一個追加
- >>144
こんなの定義しておいて,lisp-tags-find-target の中で呼び出しています.
direct-tag-jumpが分からなくて挫折中....
;; カーソル位置から文字列を取得する
;; prompt キー入力をと求める時のプロンプト表示文字
;; search カーソル直下に単語が無い時の動作
;; "strict" プロンプトから入力
;; "previous" 直前の単語で検索
;; "next" 直後の単語で検索
;; "ask" 直前の単語をデフォルトにしてミニバッファ入力
;; (確認付の previous)
(defun lookup-current-word (prompt &optional (search "strict"))
"カーソル直下の単語を検索"
(save-excursion
(or (and (pre-selection-p)
(buffer-substring (selection-point) (selection-mark)))
(cond ((syntax-word-p (following-char)) nil)
((or (equal search "previous")
(equal search "ask"))
(skip-syntax-spec-backward " ")
(skip-syntax-spec-backward "w") nil)
((equal search "next")
(skip-syntax-spec-forward " ") nil))
(and (syntax-word-p (following-char))
(let ((str (buffer-substring
(progn (skip-syntax-spec-forward "w_") (point))
(progn (skip-syntax-spec-backward "w_") (point)))))
(if (equal search "ask")
(read-string prompt :default str)
str)))
(read-string prompt :history 'search))))
- >>146
ごめん、144のやつは状況によって、挙動不審になるね。
>>direct-tag-jumpがわからなくて
俺も tags.l の内容は挫折した。。。
俺の所ではこんなので動いたけど
やっぱどっかまずいかもしんない。
(defun ed::lisp-tags-find-target ()
(let* ((opoint (point))
(name (lookup-current-word ""))
(functionp (or (and (not (looking-back "#("))
(looking-back "("))
(looking-back "#'"))))
(goto-char opoint)
(values nil name functionp)))
- >>146 そのlisp-tags-find-target と以下の組み合わせで使ってます.
いいのか悪いのか分かりません..
(defun jump-tag-other-directory (&optional (jump-command #'jump-tag-with-result) other-window)
(interactive)
(let ((buffer (selected-buffer)) (dir (default-directory))
file rsl class name functionp opoint)
(unless (and
(file-exist-p (merge-pathnames *tags-file-name* "."))
(progn
(multiple-value-bind (rsl class name functionp opoint)
(funcall jump-command)
rsl)))
(unwind-protect
(dolist (l *tags-file-alist*)
(and (eq buffer-mode (car l))
(dolist (f (remove dir (cdr l)) test)
(cd f) (message f)
(setq file (merge-pathnames ed::*tags-file-name* ".")
test (if (and name (file-exist-p file))
(ed::jump-tag-1 file class name opoint functionp)
(funcall jump-command))))))
(set-default-directory dir buffer)))))
(global-set-key #\F4 'jump-tag-other-directory)
- >>147 にでした. つづき
(defun jump-tag-with-result (&optional other-window)
(interactive)
(long-operation
(when (and tags-find-target tags-find-point)
(let ((opoint (point)))
(multiple-value-bind (class name functionp)
(funcall ed::tags-find-target)
(multiple-value-bind (file point functionp)
(ed::tags-find-entry class name functionp)
(if file
(progn
(goto-char opoint)
(ed::jump-tag-1 file class name point functionp other-window)
(values t class name functionp opoint))
(progn
(message "Not Found")
(values nil class name functionp opoint)))))))))
- >>148-149
重ね重ねすまん >>130 のコードが滅茶苦茶だった。下の方がましだと思う。
俺は、encap.l で、定義を置き換えてただけだから、まったく気づかなかったよ。
ただ、 *tags-filer-alist* に、複数のディレクトリを指定したときは、
ディレクトリ毎に呼ばれるのが、使い勝手が良くないかも。
(defun jump-tag-other-directory (jump-command)
(let* (nbuffer
(buffer (selected-buffer))
(dir (remove-trail-slash (default-directory)))
(list (remove dir (dolist (l *tags-file-alist*)
(and (eq buffer-mode (car l))
(return (cdr l))))
:test #'string-equal)))
(if (file-exist-p (merge-pathnames *tags-file-name* dir))
(pushnew dir list :test #'string-equal))
(unwind-protect
(dolist (f list)
(cd f) (message f)
(if (funcall jump-command) (return t)))
(set-default-directory dir buffer))))
- > ディレクトリ毎に呼ばれるのが、使い勝手が良くないかも。
そこなんですよね.. いっそのこと,カレントの XTAGS に見つからない時は
もーど毎にXTAGSファイルをマージしてものを容易 or 生成してしまうとか.
let* のとこの list はこっちのほうがいいかも.
(list (cdr (assoc-if #'(lambda (x) (eq buffer-mode x) *tags-file-alist*)))
間違えてたらスマソ
- > もーど毎にXTAGSファイルをマージ
それが一番いい方法だと思うけど、タグファイルに書いてるパスが、
相対パスになってるのがネックになるかも。
> let* のとこの list はこっちのほうがいいかも.
ありがとう。基礎がなってないのがばればれだね。
- 押すとポップアップメニューが表示されるようなツールバーボタンを作りたいのですが、
マウスカーソル位置にメニューを表示するような関数はないのでしょうか?
track-popup-menu だとキャレット位置になってしまいます。
- >>153
(track-popup-menu *my-popup-menu* :button2)
:button2 をつけるとうまくいくみたいです。
- >>154
バッチリうまくいきました。
ありがとうございます。
- xyzzy、ソースが公開されていると聞いたのですが
公式ページからリンクがないようです。
ソース非公開なんでしょうか?
- (T_T)こんなんだっけかな
- MLのアーカイブ検索したけど
ttp://www.jsdlab.co.jp/~kamei/(-_-)
こんな感じでしたね、404ですけど。
- おまいらホント適当だな(w
ttp://www.jsdlab.co.jp/~kamei/(T^T)/
- >>156
おおっぴらに公開しているというわけではないです。
- でも反応がないからソース公開やめようかなぁ、って言ってますよね。
- >>161
それはいやだなー.確かに見てもよく分からないけど,それでもたまに見るし.
- 一人で作ってるソフトってバグレポしにくいんだよね。
重大なものならともかく、細かい奴だとなんかケチつけてるみたいで
やる気そいでしまったりしないかなぁ、と(´・ω・`)
いやもちろん小心者である漏れが悪いわけだが。
- >>163
むしろ逆。
一人だけだと、思考が固まって気付きにくくなる事があるから
他のレポートって結構助かるもの。
- >>163
いい人だ。その気持ちを持ったまま「伝える技術」を学べばいいのだと思う。
今日たまたま
ttp://jibun.atmarkit.co.jp/lskill01/rensai/devgenba02/devgenba01.html
なんて記事を読んだよ。
- ウワァァン
- >>159
バグレポする前に一応読んどくか…と思ったが…
_| ̄|○
- デケデケ | |
ドコドコ < howm-wrapperまだ〜〜? >
☆ ドムドム |_ _ _ _ _ _ _ _ _ _|
☆ ズボハメ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨
ドシャーン! ヽ アンアンッ!! ♪
=≡= ∧_∧ ☆
♪ / 〃(・∀・ #) / アヘアヘ
♪ 〆 ┌\と\と.ヾ∈≡∋ゞ
|| γ ⌒ヽヽコ ノ ||
|| ΣΣ .|:::|∪〓 || ♪
./|\人 _.ノノ _||_. /|\
- >>168
アンアンッ、アヘアヘって何だよw
- =≡= ∧_∧ howm-wrapperマダ・・・?
/ |(・∀・| )
〆 〃⊂ ⊂) .∈≡∋
|| γ ⌒ヽヽコノ .||
|| | .|:::|∪〓 .||
./|\人 _.ノノ _||_ ./|\
- ズレタ...
- >>169
ズボハメにも突っ込んでやれよw
- howm-initでhilit-face以外の色の設定しても日付に色が付かないっす。
- ( ゚∀゚)ノ ドゾー http://homepage3.nifty.com/~ko-ji/archive/howm-wrap/howm-wrap_031201.zip
あいかーらずチャレンジャィ向け。
ページは週末くらいに用意しまつ…
>>73
これですかね?50件てのはデフォの値です。
;; todo 上位50件を表示
(setq howm-menu-todo-num 50)
>>106
>「emacs 独特の機能」ってどのあたりですか?
「put-text-property を使って一部テキストを非表示にする」
です。でも、非表示にした所を再度表示したりしていないよう
なのと、実際使ってる部分は2,3カ所程度なので、
delete-region を使うように再定義してごまかしてしまいました。
>>173
新版ではどうでしょ?
- >>174
神!
- 1.1用Wrapper試してみました。
howm-install.lを使用してのインストール中、
「初期化ファイルをコピーしますか?」の後、
ステータスバーに「ファイルが見つかりません: "edefs"」と出て、
インストールが中断してしまいます。
edefって何ですか?検索してもさっぱりでした…。
- >>176
漏れも出る。初心者ゆえ分からん。
elisp-lib.lのなかのなにかぽいが……
たすけて! 神様
- なんかいろいろ勘違いしてました。
>>174 で落とし直してみてください。
とりあえず逝ってきます ;y=ー( ゚д゚)・∵. ターン
- >>178
うまくインストールでけたよ(゚∀゚)
乙。
なんかカラフルになったね。
- お、howm新版出たのね。
前のデータからの移行は楽なんでしょうか?>経験者
- 修正ありがとうございました。
データ移行…初期画面にスケジュールとかが出てきません。
書式が違うんでしたっけ?
- 皆さんは howm の配色どうしてますか?
参考にさせてください.
- >>173
待ってました!!
早速入れてみました。一番最初のメニュー立ち上げがかなり遅くなって
しまっているのが残念です。リフレッシュしないなどの設定を入れても
ちょっと気になる遅さです。
>>180
howmのHPにある「旧バージョンの設定を受け継ぐ」部分を
initに追加すれば移行自体はそんなに苦ではないと思います。
- >>173
早速いれかえてみました、が…
ウチだとインクリメンタルサーチとか使えなくなったりしたんだけど、
みんなは大丈夫なのかなぁ?
- >>183
メニューファイルを直接指定
(setq howm-menu-top nil)
(setq howm-menu-file "0000-00-00-000000.howm")
- >>174
神キタ━━━━(。A。)━(゚∀゚)━(。A。)━(゚∀゚)━(。A。)━━━━!!!!
- http://www.forest.impress.co.jp/library/xyzzy.html
レッツ!ダウンロード!
ってXP対応してないじゃん
- >>184
私は diff が使えなくなった.
- >>184
漏れは使わんからよーしらんが
howm-init.l 見るとデフォルトがインクリメントサーチしないに変わった気がしる
- 補足。
howm以外でもインクリメンタルサーチが使えなくなるんです。
分かりにくかったかも。
>>189
あ、なるほど、デフォルトが変わってたのか。
設定みなおしたらとりあえずインクリメンタルは使えるようになりました。
でも、こんどはndiary-modeが不調になってた…
htmlに変換しようとすると
「不正なデータ型です::exec-directory: string」というエラー。
elisp-libあたりで定義されてるマクロが全体に影響してしまってるのが原因とみたけど…
どうすりゃいいのやら。
- http://homepage3.nifty.com/~ko-ji/archive/howm-wrap/howm-wrap_031202.zip
>>188>>190
call-process を shadowing してなかったせいでした(;´Д`)
>>190
>あ、なるほど、デフォルトが変わってたのか。
……コメントアウトし忘れてた_| ̄|○
- >>191
早速入れさせていただいたですが
なんかやたら検索に時間がかかるようになっちゃった気がするのは漏れだけでしょうか
メニュー表示するときもToDoとスケジュールのスキャンの時間がめちゃくちゃ伸びたような…
- ためしに 031201 に戻してみましたがやっぱり明らかに遅くなってるみたいです。
- >>185
- >>194
これは私へのレスだと思うのですが、私が比較してるのは
howm1.1にしてからの 031201.zip と 031202.zip ですのでこれは関係ないと言うか
どっちもそれを指定した状態での比較です。
- >>192
031202 遅い
031201 普通
て事でしょうか?
影響出そうな変更はしてないんですが。
手動インストールで
>4. `howm-wrap.lc' をロードする。
の後、
>6. xyzzy を再起動する。
してない。
位しか思いつきませんです。
他に遅くなったって人いますか?
- >>196
どうもすみませんです。私だけなのかなあ。
howm-install.lを使ってインストールしています。
031201 普通 → 031202 にしてみる。遅い → アンインストールして01に戻す。普通。
で、今また01をアンインストールして02にしてみたんですがやっぱり遅くなります。
アンインストール、インストールの手順はそれぞれ全く同じです。
01では瞬時にメニューが開きますが02ではステータスバーに scanning schedule... scanning todo...
とはっきり読み取れるくらいの時間がかかります。
表示そのものはこれといっておかしいところはとりあえず見当たりません。
- >>187
ん?
- >>185
「リフレッシュなど」にはメニューファイルを指定も含まれています。
それでもC-c,,を押してメニューバッファが表示され、font-lockが
終わるまでしばらくかかります。言葉が足らなくて申し訳ない。
ステータスバーには常に..doneとでています。
- なんとなくhowm 2003-12-01を試してみたのですが、
eval-after-loadでひっかかりました。YC対策のようです。
http://pc.2ch.net/test/read.cgi/unix/1063800495/274-281
eval-after-loadは現時点では他に使われていないようなので、
なにもしないダミーのeval-after-loadがあれば動きそうです。
- NetInstallerを使い始めたのですが。
これってパッケージをインストールするだけで
.xyzzyとかには何も手を加えないのですか?
要するに、そこは自分でやらないとダメって事ですか?
- >>201
(require "ni/setup")
(ni-autoload)
としておくと、対応しているものは自動設定されます。
- なるほど。
- auto-aborn で、aborn.ruleを書き換えても既に
表示されているメッセージには新しく書いたルールが
適用されません。 それ以降にはちゃんと適用されます。
これって俺だけですか?
- >>204
そういう仕様(そうじゃないと使いものにならないかと)。
readme.txtにルールを読み直して自動あぼーんをやり直す
キーバインドの設定例があるから設定して適用しなおせばok
- 私の検索能力では探し出せなかったのでご存知の方教えてくださいませ。
KaMail関係のバッファがバッファタブに載るのは邪魔なので
ttp://hie.3.pro.tok2.com/xyzzy/note/kamail.html#hide-buffer
ここのやり方に従ってKaMail関係のバッファを消しているのですが、これだと
KaMailのDraft書きながらちょっとViewerに戻って他のメールを見るということ
ができず困っています。
たとえば、KaMailフレームにはKaMail関係のバッファだけ、それ以外は
すべてFrame 1といった感じで、フレームごとにタブに載せるバッファを選択
することはできないでしょうか。
- >>206
参考になるかは分からないけど、オレはDraftだけ消さないように
(setq *kamail-buffer-draft* (concat "*Kamail:" "Draft*"))
とした上で、kamail-exitを一部書き替えて使っています。
具体的には
(let (regexp
(buflist (list *kamail-buffer-prefix*))
(frame (find-pseudo-frame *kamail-pframe-name*)))
の後ろに
(push *kamail-buffer-draft* buflist)
と付加しただけです。
- >>205 ありがとうございます。助かりました。
- >>183>>192
遅くなる理由をいろいろ考えてみましたが、
コンパイル済みファイルがロードされていない
という物しか思いつきませんでした。
.xyzzy に書いた
(require "howm-wrap")
を消して、↓の様にしてみたらどうでしょうか?
(load (merge-pathnames "site-lisp/howm-wrap.lc" (si:system-root)))
(load (merge-pathnames "site-lisp/elisp-lib.lc" (si:system-root)))
これで駄目だとちょっとお手上げかも(;´Д`)
>>200
検証どうもです。
canna は使ってないので分からないんですが、
xyzzy では無視しちゃってイイのかな?
- >>209
お手数かけてすいません。本当に感謝しています。
上記の通り.xyzzyに書いてみるとメニューの表示が格段に早くなりました。
また、そのあと元に戻すと、また遅くなることも確認できました。これが
何を意味するのか分かりませんが209の方法で行きたいと思います。
あと、一つ気が付いたのですが新規にエントリーを書くとき、アンドゥを
一回すればテンプレートが消えたように思います。今は二回ですよね?
1.1からの仕様でしょうか?
- >>209
もう一つ。call-processをshadowしたためか、メニューの「ツール>NTプロンプト」
やshell関係のスクリプトが動かなくなってしまいます。howm-wrapをrequireすると
起こります。
連チャン失礼しました。
- howm最新版入れました。以前から気になっていたのですが、
検索結果リストがファイル更新時刻順に並んでしまうのは、
どうしようもないんでしょうか?
昔書いたtodoなどをdoneしたりすると、
昔のファイルなのに最新になってしまいます。
ファイル名で並び替える方法があればお願いします。
- >>209
(eval-after-load "yc" (…))は、「ycがロードされたときに
(…)を実行する。ロード済みなら即実行。」という関数のようです。
現時点でxyzzyにycはないはずなのでロードされることがなく、
無視で大丈夫かと。
念のため「引数が"yc"なら無視をする」というのもいいかもしれません。
あと、
> C-c , D日付を挿入する。
> C-c , d複製を作成?
このバインドは1.1から入れ替わりました。
- "と'と`を入力したら自動的にもう一つ入力して、カーソルを真ん中に移動させる
というのを作りたくて以下のように書いたのですが、
「文字列が終了していません」と言われて、うまくいきません。
どこを変えたらいいでしょう?
(add-hook '*post-command-hook*
#'(lambda ()
(when (eq *this-command* 'self-insert-command)
(cond ((looking-back "\"") (insert """) (backward-char))
((looking-back "\'") (insert "'") (backward-char))
((looking-back "\`") (insert "`") (backward-char))))))
元々は
ttp://www.haide.net/~tsukushi/xyzzy/
にあった括弧を補完するって奴の括弧の部分を"とかに変えてみただけですが。。。
- >>214
(insert """)->(insert "\"")、です。
文字列内でダブルクォートを記述するためにはエスケープする必要があります。
- >>215
どうもありがとうございます
うまく行きました。
不思議なのは
ttp://www.haide.net/~tsukushi/xyzzy/
にある奴は
(looking-back "\(")はエスケープしてあるのに
(insert ")")となっていてエスケープしてない事
真似しただけなのに、括弧とダブルクォートでは何が違うんだろ。。。
- ダブルクォートで括られてるダブルクォートと、括ってるダブルクォートの判別がつかないから、
エスケープしてやる必要がある。
- howm最新版。
qサマリバッファと、コンテンツバッファを閉じる。
って動いてます?
コンテンツバッファで編集してセーブした後サマリバッファにフォーカス移して
qを押すと、上下に分割されたままメニューに戻ってしまいます。
昔のに戻そうかなぁ…。戻った人います?
- >>218
俺もそうなる。でもちゃんとウィンドウが閉じる事もある。
ようわからん。プチ不便。
- http://web.sfc.keio.ac.jp/~t01450ms/xyzzy/wiki/?plugin=attach&pcmd=open&file=popwindow.l&refer=Memo%2Fdictionary
にあるpopwindow.lの127行目、
*pop-window-width*と*pop-window-height*が逆のような気がします。
- >>220
wiki で(も)突っ込むのが仁義ってもんじゃないでしょうか、それは。
- >>221
そうしてきます。|ミ サッ
- >>219
コンテンツバッファを編集せずにリストに戻って q 押すと、
ちゃんと一画面に戻ってメニュー表示するようです。
あと日付順(ファイル名順))じゃなくファイル更新日時順に
なってしまうのはどうしようもないんでしょうか?
連結表示しても更新順なんです。
- >>206
> ここのやり方に従ってKaMail関係のバッファを消しているのですが、これだと
> KaMailのDraft書きながらちょっとViewerに戻って他のメールを見るということ
> ができず困っています。
右クリックメニューから,
Draftを開く
Viewバッファに切替え
とか,
C-c d
C-c v
とか。
- http://web.sfc.keio.ac.jp/~t01089ti/img/xyzzy/22/xyzzy-015.png
こんな感じに左にバッファのタブを表示するにはどうすればよいのでしょうか?
- つまんで左に持っていくと枠の形が変わるから、縦になったところでリリース
- >>226
できました。どうもです。
- >>224
ありがとうございます。
使い始めだったばかりだったので切り替え機能があるのを見落としていました。
結局複数ドラフトとか書けないから、それで十分なんですよね。
- ああ、日本語くるいまくってる・・・
- 作者さん、ちょっとやる気が出てきたみたい。
なので、ここでこそーり要望出してみる。
・ textの属性に hide を追加
- xyzzyページのやる気の量の事を言ってるなら、
リロードするたびに変わるぞ。
- >>230
大いに賛成。
アウトラインは別ウィンドウではなく、一体型でやりたい
- >>231
それで,アンテナでも更新されるようになったのか _| ̄|○
- >>233
昔からだぞ
- >>233
更新チェックの範囲がずれたんだと思われ。
誰か直してくれ(他力本願
- FreeLibrary() に相当する関数って何ですか?
他人のマシンのメモリを食いつぶしていると思うと
load-libraryするたびに罪悪感に浸ってしまいます。
- emacs lisp での [ ... ] は xyzzy では、どう書くのでしょうか?
- >>237
まず emacs lisp での [ ... ] が何かを説明してください。
- >>237
ttp://hie.3.pro.tok2.com/xyzzy/qanda/html/apart/qanda-00135.html
- 起動時のプロセスの詳細を見る手段はありますか?
.xyzzy の読込時、どこで失敗しているのか知りたいのですが。
- ちょっといじってみた部分とか、大体の目処が立たないか?
- >>238,239 thx です。
ある emacs lisp の移植をだめもとで try したのですけど、
また躓きました。 (symbol-function '\`) でエラーになります。
emacslisp では '\` , ,@ を別の関数名? に再割り当てなど
するようです。xyzzy では `-reader が backquote の処理を行ってい
るんでしょうか?
>>240
(toggle-trace-on-error) を .xyzzy の先頭に追加して再起動。
エラーを起こしているなら、その時点でのスタックダンプが表示される。
- >>241
普通はそれでいけるんですが、今回どうしても上手くいかなくて。
>>242
サンクスです。
それでいけました。
ところで拡張 browser.dll はもう配布してないんでしょうか?
- >>243
どうしても欲しいならmozillaで我慢。
ttp://www1.odn.ne.jp/ymtz/browser.html
- > emacslisp では '\` , ,@ を別の関数名? に再割り当てなど
> するようです。xyzzy では `-reader が backquote の処理を行ってい
> るんでしょうか?
やりたい事が判らない上に、emacslisp もよく判らないので何とも言えませんが、
` が `-reader に展開されるのか? ということでしたらイエスです。
処理をしているのか? というのもイエスでしょうか。
実際に処理系が評価しているのは `-reader です。
とりあえずマクロ文字は関数やマクロではないので
symbol-function じゃ対象を参照できないです。
て言うか symbol じゃないです、そもそも。
乱暴に言えば、( や " の機能を問い合わせようとしているのと一緒です。
- kamailってimap over SSL 使えますか?
どうもそういうことは書いてないようなんですが。
- ミニバッファをClaftLaunchの代わりに使えないかなぁ
- >>247
http://pc2.2ch.net/test/read.cgi/win/1041613876/236,242,251
こういうこと?しょぼいですが
(defvar *craft-path* "D:/bin/clnch/clnch.exe") ; パス
(defvar *craft-arg* "/wr /x50 /y40 /w100 /c2 ;") ; 引数
(defun send-to-craft ()
(if (filer-get-mark-files)
(setq files (format nil "~{~A~^;~}"
(mapcar #'(lambda (x)
(map-slash-to-backslash
(remove-trail-slash
(get-short-path-name x))))
(filer-get-mark-files))))
(setq files (map-slash-to-backslash
(remove-trail-slash
(get-short-path-name
(filer-get-current-file))))))
(when files
(shell-execute *craft-path* nil (concat *craft-arg* files)))
)
craftlaunchのオプションで、パスの区切りをスラッシュにしていると
不具合があるかも。
- howm-warpをいれるとcall-processがオーバーライトされるため、
(execute-shell-buffer "dir" t (selected-buffer))
のようなコードでエラーが出てきてしまいます。ほかにももう一個
シャドウイングによる挙動不審があったような…。ちょっと
思い出せませんが。何とかしていただけるとうれしいです。
- >>248
それとはちょっと違って、
まんま倉の機能を持ったモードみたいな感じ。
xyzzyも倉も両方常時起動してるから
そういうモード(関数?)があれば倉が要らなくなるなぁって思って。
- >>245
`-readerの定義を変更したいといいますか、lisp インタプリタを
作成するときに、 ` の展開時の動作を変更したいのです。
elisp の edebug が xyzzy でも使えないかと思いまして。` を展開
する動作をキー入力に応じて1ステップずつ実行したいというのが最
終的な目標になります。が、できれば edebug のコードをなるべく
利用したいので、何かよい方法はないのかと尋ねた次第です。
elispでは (symbol-function '\`) ができてしまうようです。。。
もともと自分が edebug を移植するなんて無茶なことだったんで、
素直にあきらめようかと思います。暇 というわけでもないし。
- >>251
(set-macro-character #\` fn)
で、マクロ文字 ` の定義を上書きできますが……
どうでしょう、ちょっと面倒な予感。
elisp の ` はただのマクロっぽかったけど。
て言うか elisp にはそもそもリーダマクロがないのかな?
>もともと自分が edebug を移植するなんて無茶なことだったんで、
>素直にあきらめようかと思います。暇 というわけでもないし。
それは残念。
- 貴重な情報どうも。 またうずいたら再開します
- >>249
howm-wrap 作者さんがちゃんと直してくれるまでのつなぎに, こんな感じは?
(試してないので, 動かなかったらごめんなさい)
diff -u -r --new-file howm-wrap_031202/elisp-lib.l howm-wrap_my/elisp-lib.l
--- howm-wrap_031202/elisp-lib.lSun Dec 14 14:33:42 2003
+++ howm-wrap_my/elisp-lib.lSun Dec 14 14:33:42 2003
@@ -929,7 +929,7 @@
;;;; 他
;; いろいろと……
-(shadowing-defun call-process (program &optional infile destination display &rest args)
+(defun hw-call-process (program &optional infile destination display &rest args)
(lisp::let ((command-line (or program ""))
(wait t)
output delete)
- つづき
# howm-wrap の web page 作ってもらえないでしょうか.
# 中身は最新版へのリンクだけで十分ですから…
diff -u -r --new-file howm-wrap_031202/howm-wrap.l howm-wrap_my/howm-wrap.l
--- howm-wrap_031202/howm-wrap.lSun Dec 14 14:33:42 2003
+++ howm-wrap_my/howm-wrap.lSun Dec 14 14:33:42 2003
@@ -258,6 +258,10 @@
;; howm が動くようにいろいろと設定。
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||#
+(defun howm-view-call-process-here (command args)
+ (let ((a `(,command nil (t nil) nil ,@args)))
+ (apply #'hw-call-process a)))
+
(defun howm-view-string<= (a b)
;(not (string< b a))
(string-lessp b a))
- >>78
激しく遅レスですが、
define-modify-macro の定義に問題がありました。
setf.l line.302
(return ``(setf ,reference (,',function ,reference ,,@nreverse ,(cadr l)))))
↓
(return ``(setf ,reference ,(list* (quote ,function) reference ,@(nreverse vars) ,(cadr l)))))
で、とりあえず concnew は動きました。
rest パラメータを使うものについては問題ないと思います。
他にもちょっと気になるところがあるので、
そっち何とかなったら……亀井さんにメールした方がいいかな?
- http://homepage3.nifty.com/~ko-ji/archive/howm-wrap/howm-wrap_031214.zip
> call-process の件
一応直ったのを確認しての 1202 だったんですが……
環境依存?
シャドウの方法を又変えてみました。
> テスト版
十四日版を見たらかなりファイル構成が変わってるんですね。
テスト版には追従できそうにないので、勘弁してつかぁさい。
>>212>>223
サマリで S すればソートし直せます。
>>213
> readme.txt
直しました。
>>218-219
Meadow でもそういった動作だったので、そういう物かと。
>>254-255
どうもです。
今回のでも駄目のようだったら取り込ませてもらいます。
ページも更新しますた。
- howmとhowm-wrap便利に使わせていただいています。
ところで
(setq default-case-fold-search t)
として検索に大文字小文字を区別しないようにしているのですが
M-x howm-list-grep もしくは c-c,g
で検索する時は問題ないのですが
メニューでg としたときだけ何故か大文字小文字を区別しちゃいます。
何か間違ってるのでしょうか。ヒントだけでもいただけると幸いです。
- 現在の point がモードで定義されたコメントの内部
なのか外なのか調べる関数はないでしょうか?
- >>259
(parse-point-syntax (point))
- >>260
即レスありがとうございます。
できました。
- xyzzyでwikipedia引くようにするLispってガイシュツですか?
- NetInstallerに出てくるパッケージは更新順にならんでいるようなのですが
辞書式順序に並び替える方法はありませんか?
- >>258
> メニューでg としたときだけ何故か大文字小文字を区別しちゃいます。
直しました。
- 真・スレッドストッパー。。。(`・ω・´) シャキーン
- xyzzyってUTF8での「〜」の扱いがおかしくない?
SJIS->UTF8->SJISと変換したら、「〜」が文字化けしたんだけど。バグかな?
- >266
ttp://www.ingrid.org/java/i18n/encoding/shift_jis.html
に関係した問題なのかなあ…。でも別に SJIS と Windows-31J が
混じっているわけではないから化ける理由がないような気もするけ
ど…
- 今手元で、
---
あいうえおかきくけこ
〜
---
っていうファイルを作って保存し、開いて utf8 にして保存し、
開いて sjis にして保存して、開いてみたけど化けなかった。
もしかして、別のところで Shift_JIS で保存したファイルを持
ってきて、xyzzy で utf8 に変換し、それを xyzzy で
Windows-31J に変換したことによって文字化けした…とか…?
- >268
ソースコードみれ
- >>269
kimoi
- 局所ニュース IEで見ると表示が崩れるの直して欲しいですね.
- >>271
IE6で別に崩れて見えないけどどこが?
つーかIEのいくつ?
- ::::... おれたち もう終わっちゃったのかなぁ?
::::... ∧_∧_∧
::::.(∀・( ´Д`) バカ野郎 まだ始まってもいねーよ。
r -( ( O┰O
..::ii'⌒< < ) 冊冊〉
::'、__,,l!しし(_)l!lJ´
'、__,l!j ::::..
::::
- >>272
あれそうなのか.IE6 SP1 なんですけど,箇条書きの部分で
一行目に検索文字列を入力しなかった場合、履歴変更ができない点を修正。
という文章が
「一行」 と 「正。」 が重なって表示されてます.
俺だけなのかなぁ.
- >>274
文字サイズが大以上になってるとそうなるみたい。
- >>272 >>274-275
申し訳ないです。修正しておきます。
他にも何かあったらよろしくお願いします。
- >>276
リニュ乙。かこいい。
- >>276
cvs-mode が csv-mode になっています。
- howm-wrapについて質問です。
readmeなどにはmigemo.txtについてなにも書かれて
いませんがどうするんでしょう、こいつ?
- >>279
migemo.txtって??
- >>278
thx。はずかしー……
- xyzzyでCをプログラムしているのですが,Emacsの様な或いはEclipseの様なIDEな感じにすることは出来ませんでしょうか?
既にやってるぜーって人がいればその方法を取りたいのですが,そこまで良い話はないと思うので多少は自分でも努力してみようと思います.
そこでEmacs時代に御世話になった
ac-mode http://www.taiyaki.org/elisp/ac-mode/
と,先日発見した
winbatch-mode http://hie.3.pro.tok2.com/xyzzy/mylib/winbatch-mode.html
の折衷型の様な補完lispを組みたい(あるいは移植したい)と思いました.
そこでLispでの開発方法やデバッグ方法を紹介した良いWebを教えて頂けませんでしょうか?
# C言語に対応したアウトライン解析や,GDBのフロントエンドとかがあればEclispもどきは近いと思うんですが…
# そんなに甘くない?
- >>282
ttp://www1.odn.ne.jp/ymtz/ の javatinyconsole とか参考にされては?
Lispでの開発方法やデバッグ方法を紹介した良いWeb はたぶんないと思われ。
開発については、
ttp://web.sfc.keio.ac.jp/~t01450ms/xyzzy/wiki/wiki.php?NetInstaller%2F%C7%DB%C9%DB%CA%AA%BA%EE%C0%AE%A5%DE%A5%AF%A5%ED%28%BC%AB%B2%C8%CD%D1%29
とかが参考になるかも。
- >>280
すいません、言葉が足りなくて。
howm-install.lを使えばmigemoが使えるのですがreadme.txtにしたがって
手動でインストールするときにmigemoを使えるようにするにはどうすれば
よいのでせうか。
あと、migemoが、メニューからは使える(C-c,,m)のにキーから(C-c,m)からは
(t nil)はエラーだと怒られてしまいます。なぜなんでしょう。
- >>282
> そこでLispでの開発方法やデバッグ方法を紹介した良いWebを教えて頂けませんでしょうか?
よいの知りません。とりあえず msgbox, messages で出力してみる。
エラーが出たら toggle-trace-on-error をしてみる。ぐらい。
> # C言語に対応したアウトライン解析や,GDBのフロントエンドとかがあればEclispもどきは近いと思うんですが…
cは書かないんで c-mode もよく知りませんが、gdbのフロントエンドはないと思います。
あとここでのアウトライン解析が何を指しているかよくわからないですが、lisp/cfns.l
が参考になるかもしれません。が、至難の業でしょう。いきなりこのレベルのプログラミングは
難易度高いと思います。もちろん、うまくできたならそれでいいんですが。
cでプログラム書くなら、c-mode + tag-jump + dabbrev-popup を使えば、それなりに便利だと思います。
http://web.sfc.keio.ac.jp/~t01450ms/xyzzy/wiki/wiki.php?cmd=read&page=%A5%BF%A5%B0%A5%B8%A5%E3%A5%F3%A5%D7&word=XTAGS
- >>282
デバッグの仕方としては >>285 さんに追加して
watch.l
step
なんてのもあります。
自分は使いこなせないので詳細は不明ですが。
- >>284
> 手動でインストールするときにmigemoを使えるようにするにはどうすれば
howm-migemo.l を site-lisp において、
howm-wrap.l をロードすれば勝手にコンパイルして
使えるようになるはずです。
> あと、migemoが、メニューからは使える(C-c,,m)のにキーから(C-c,m)からは
> (t nil)はエラーだと怒られてしまいます。なぜなんでしょう。
キー設定を上書きしてなかった所為でした。
とりあえず↓を howm-init.l に追加しておいてください。
(global-set-key '(#\C-c #\, #\m) 'howm-list-migemo2)
- 沢山のレスを頂戴して嬉しい限りです.
>>283
参考にさせて頂きます.
>>285
そのtoggle-trace-on-errorが欲しい情報でした.
勿論tag-jumpやdabbrev-popupは使用しています.
しかし前述のac-modeやnavi.elと比較すると,どうしても動的補完が使い辛いと感じます.
アウトライン解析はEclipseやViViを想像して頂けると分かり易いと思います.
>>286
情報有難う御座います.
きっと亀井さん等はVCを使用してxyzzyを作成された為に,私の様なIDE的な使用を疑問に思われる
のでしょうが,学生としてはxyzzyがIDEとして振舞ってくれれば十分な場合もあります.
それを実現したい…というのが私の書き込みです.
自力で頑張ってみますが,良ければ皆さんのお力を貸して頂けると幸いです.
# まぁVCとかVSをアカデミックで買えよ,って話になると反論出来ない訳ですが.
# そこはスルーということでよろしく.
- その意気や良し!
- >>288
oltは導入しました?
- > きっと亀井さん等はVCを使用してxyzzyを作成された為に,私の様なIDE的な使用を疑問に思われる
> のでしょうが,
すごい妄想…
- >>290
導入しました.
しかしC言語への対応はそれ程良くない,と感じました.
# 私の使い方が悪いんでしょうか?
>>291
やーVCなりVS持ってる人はエディタをIDEに拡張しようなんて思わんでしょう.
少なくとも私がそうであれば,思わないと思いますが.
- >>292
291 さんではありませんが、
亀井さんの開発環境は cygwin だったような。(昔)
私も VC は持ってるのですが、容量がぎりぎりなので入れていません。
というわけで、292 さんに期待。
- >>293
すいません.
ソースコードに付属の文章に,VC4にてメイクを確認とあったもので…
てっきりVCにて開発されているものだと思い込んでいました.
# しかし言い出したの自分とは言え,ここまでレスがつくと尻込みします…
- >>292
これを移植してくでせい...
http://ecb.sourceforge.net/
- >>295
292さんは,自分のしたいことで忙しいと思います.
欲しい人が作る!
がんばってください.
- >>292 = >>296
- Emacs の M-x doctor を思い出した.誰かこれ日本語化してないんだろうか.
- 思い出した人が(ry
- あぼーん
- >>212>>223
メニューファイル(menu.howmとか)に
%"e"%eval%(progn(howm-list-all)(howm-view-sort-by-date))
と書いておくと最初から日付順でソートされたサマリを表示。
こんなんでいいんでしょうか?
- >>>287
migemo、使えるようになりました。ただ、一回migemoからC-c mで
検索してしまうとC-c mのキーバインドがhowm-list-migemoに戻っています。
つまり連続でmigemo検索ができない状態です。
- >>302
これを howm-init.l に追加でどうでしょうか?
(when (member "howm-migemo" *modules* :test #'string-equal)
(global-set-key '(#\C-c #\, #\m) 'howm-list-migemo2)
(let ((m (member 'howm-list-migemo howm-default-key-table
:key #'cadr)))
(when m
(setf (cadr (car m)) 'howm-list-migemo2))))
- howm1.1.0.1 素のままでは16日版howm-wrapでは動きませんでした。
action-lock.l 119 行目
(howm-font-lock-mode) を
(elib::howm-font-lock-mode) に差し替え
howm-mode.l 1422-1424行目 コメントアウト
で一応動いているっぽいです。
とりあえず、次の版が出るまでのつなぎとして。
ところで、2chモードから書き込もうとすると不正なデータ型です。
nil string と出て書き込めないんだけど、俺だけでしょうか。
- だけです、多分。
- >>296
>>292さんのしたいことってまさにこれじゃないの?
- ちなみに個人的にはものすごく移植してほしいです。神さま〜
- Nullpochyの外部エディタとしてxyzzyを使っているのですが、
Nullpochyからxyzzyを起動すると、Nupochyから渡されたファイルでなく、
scratchが選択された状態で起動してしまいます。
Nullpochyから渡されたファイルのバッファを選択した状態で起動するにはどうすれば良いのでしょうか?
- >>308
試してないけど、xyzzycli を起動したらどうですかね
- >309
レスありがとう。
でも、Nullpochyは起動した外部エディタのプロセスを監視して
そのエディタが終了したのを検出するとファイルに保存されている内容を
Nullpochyに反映するようになっているため、
xyzzycli経由ではうまく動作してくれないのです。
本当はxyzzycli経由で使いたいのですけどね…。
- >>310
xyzzycli -wait じゃないか?
- >311
できますた!ありがとう!
- Explorerのほうで書き込み禁止したファイルを
xyzzyから解除・再度禁止をすることはできますか?
自分のロックだけならview-mode,toggle-read-only
でもよいのだけど、、、。
- Part8にあったaa_insert.lを誰か保存していないでしょうか?
HIEさんちからのリンクは404になっています。
- >314
こちらです (・ω・)ノ http://home.t04.itscom.net/poi/2ch_mode_enhance/aa_insert.l
ちなみに他BBS閲覧機能も URL が変わりました http://home.t04.itscom.net/poi/2ch_mode_enhance/2ch_mode_otherbbs.lzh
- otherbbsって書き込みは出来ないんでしたっけ?
- >316
できません(´Д`) x でブラウザを起動してそこから書き込んでください…
- >>317
わかりました。ご親切にどうもです。
- >315
多謝。
- migemo.dllが1.2になったわけだが。
- 現在編集中のバッファをファイルに保存し、そのバッファを削除。
他にscratch以外のバッファが無ければxyzzyも終了。
といったことをlispで自動化したいのですが、
どのようにすれば良いか教えていただけませんでしょうか?
- >>313
modify-file-attributes
>>321
現在編集中のバッファ
buffer-list, buffer-modified-p
ファイルに保存
write-region, save-buffer, get-buffer-file-name
バッファを削除
delete-buffer
scratch
buffer-name
xyzzyも終了
kill-xyzzy
- >322
ありがとうございます。
ただ、あと一歩、残ったバッファがscratchだけなのかどうか、
buffer-nameを使っての文字列の比較の方法がわからないのです。
もう一度ご教示頂けませんでしょうか?
- >>323
> buffer-nameを使っての文字列の比較の方法がわからないのです。
string-match, string-matchp
- >324
できますた!アリガトン
- >>325
できたんならLispコード書くよろし
- KaTeX のインデントについて質問です。
バッファ全体をインデントする S 式
(indent-region (point-min) (point-max))
を何回か繰り返し実行すると、
どんどん右にずれていくのですがこれはこういうものなのでしょうか?
バッファ全体をインデントしながら TeX を書きたいのですが・・・
- >326
元々の質問のレベルからもわかると思いますが、
lispは全くわからないのでツッコミどころ満載だと思います。
既存のものを流用しまくりですが何とか形になりました。
もっとスマートな方法があれば教えて下さい。
(defun xxxxxx ()
(interactive)
(if (buffer-modified-p)
(save-buffer-dialog))
(kill-selected-buffer)
(if (= (count-buffers) 1)
(if (string-match "*scratch*" (buffer-name (selected-buffer)))
(kill-xyzzy)))
)
- >>321
save-all-buffersとかsave-all-buffers-kill-xyzzyとかは?
- howmでgrep検索にCygwinのgrepコマンド使おうと思って
(setq elisp-lib::howm-view-use-grep t)
(setq elisp-lib::howm-view-grep-command "grep")
とやってみたんですが、実行してみると
不正なデータ型です: (t nil): number
てなエラーが。同じようなことやろうとして成功した方いらっしゃいます?
#激しく遅レスですが、一覧表示の時にS(sじゃなくてね)押せば好きなもので並べ替えできます。>>212
howm-wrap付属のreadme参照
- >>330
> 不正なデータ型です: (t nil): number
こっちの虫は潰してたんですが、違う虫が出てました。
一応直したんで確認お願いします。
- こんなのありました。
http://pc.2ch.net/test/read.cgi/unix/1050963280/710
xyzzy って画像表示できないんですよね?
- >>331
気づかないうちにバージョンあがってましたか。不適切な報告をしてしまって
ご迷惑をおかけしました。
最新版ですがインストール中にエラーがでます。031229版では問題ないので
たぶん手順は間違ってないとは思うのですが。今忙しいので後でエラーログ
を送らせていただきます。
変数が定義されていません: #:|]|
>CALL STACK 39: (eval #:|]|)
>CALL STACK 38: (system:*byte-code ...)
>CALL STACK 37: (compiler::record-defconstant (defconstant *elisp-reader- #1=#:|]| ...))
>CALL STACK 36: (system:*byte-code ...)
>CALL STACK 35: (compiler::process-toplevel (defconstant *elisp-reader- #1=#:|]| ...))
>CALL STACK 34: (system:*byte-code ...)
>CALL STACK 33: (compiler::compile-file-1 "D:/xyzzy/site-lisp/howm/elisp-lib.l" #<file-input stream: D:/xyzzy/site-lisp/howm/elisp-lib.l>)
>CALL STACK 32: (system:*byte-code ...)
>CALL STACK 31: (compile-file "D:/xyzzy/site-lisp/howm/elisp-lib.l")
- >>333
howmのバージョンはいくつ?
wrapperはいまんとこhowm 1.1.0.1にしか対応していないと思われ
- >>334
ドンピシャです。「1.1.0.1対応」って1.1はだめって事だったのね(つД`)
- >>332リンク先
すげー!こんなんもうエディタじゃないよなぁ・・・
- いじってたら、ふいに.howm-keysにきちんと記録されるようになって(゚Д゚ )ウマー
でも原因がなんだったのかは謎。
でもoltとの相性が悪化。保存時に6秒ほどかかるようになって(+д+)マズー
今までは一瞬。howm起動時は前も今も3秒ぐらい時間かかるけど、
保存ほど頻繁じゃないので気にならなかった。
olt非表示にすれば起動が1秒、保存が2秒ほどになるので問題ないけど、
olt常時表示も捨てがたい。困ったな。
ちなみにPen3-500MHz。
- >>336
Lisp 解釈機構だから、ということか。すごすぎ。
- > セーブ後の自動処理をしない
> (setq howm-menu-refresh-after-save nil) ;; メニューの更新
> (setq howm-refresh-after-save nil) ;; 下線の引き直し
とりあえずこれで解決しました。お騒がせスマソ。
- さらに追加。elisp-lib.lの
(create-new-buffer "*temp*")
を " *temp*" にして非表示バッファにするだけで改善されました。
olt併用時の動作全般が軽くなるので、
問題なければ取り込んでいただけませんか?>wrap作者さん
- howm導入挑戦中。
[[hoge]] っていうWiki風リンクって機能してる?
文字列を[[]]で囲んでリターン押してもふつうに改行されるだけ。
<<<や>>>はうまくジャンプするのに。
なんで?
- >>341
.howm-keysにないキーワードだとジャンプしないです。
ちゃんと登録されているキーワードだと、なにもしなくても
下線が引かれて機能します。
[[ ]]は色づけだけの働きしかしてないみたい。
メモ保存時に.howm-keysは更新されるはずなのですけど、
念のため.howm-keysの中身を確認してみてください。
- >>341
[[link]]の最後の"]]"にカーソルを置いてエンターは?
- >>343
知らなかった。。これ(・∀・)イイネ!!
- >>342-343
でけました!
どうもです。最後の"]]"とは……
- なぜ [[link]] の link でリンクされないの?
- >>346
それこそ>>342のことではなくて?
- howm入れたらispellが動かなくなったんですが、僕だけですか?
- 文字列 A の中に単語 B がいくつ含まれるかを返すような lisp は、
どうかけばよいのでしょうか?
(例 . A = "asadame" B = "a" => 3 )
できるだけ高速なものがよいのですが。
よろしくお願いいたします。
- >>349
charならcount関数でいける。(count #\a "abcabcabc")
stringならsubstitute-stringが置換回数を返すんだけど…(もっといい方法がありそうだけど)、
(cadr (multiple-value-list (substitute-string ...で、やれないことはない。
- 「飛び先が作成済みかどうか, 下線のつき方で見分けられる」
っていうとんちだったんだけど, 不評ですね.
[[link]] 全体が反応するように直します.
>>348
とりあえず,
「何をしたら, どうなってほしいのに, どうなった」
を具体的に教えてもらえると助かります.
howm のページから, 「バグの指摘をくださる方へ」を参照ください.
# …って, その中の (D) は xyzzy だとどうするのがいいんでしょう?
# (D) = 「設定ファイルを読み込まず, 手動で howm を起動」です.
- >>351
そんな仕組みだったのですね。
でも残念ながらxyzzyだと[[ ]]で括り終えた時点で下線が(あってもなくても)
消えてしまうので、見分けることができません。
どちらにせよ、wikiを知っている人ほど「びっくり」な仕様でしょうから、
全体で反応するようになるとありがたいです。
- テスト版は直しました. リリース版でも
(setq howm-wiki-regexp "\\[\\[\\([^]\r\n]+\\)\\]\\]")
(setq howm-wiki-regexp-hilit-pos 0)
(setq howm-wiki-regexp-pos 1)
で全体反応になるはず.
- >>353
をを! でけました!!
こりゃいいですな。乙です。
- >>350
> (cadr (multiple-value-list (substitute-string ...で、やれないことはない。
有難うございます。
substitute-string とは、目から鱗でした。
- タブが増えたときに2列にするのってできないんだっけ?
- >>356 Sleipnir もできないんだよね。
- >>334 >>335
一応 1.1 でのインストール、動作確認はしてたんですが、
フォローも無いようなので、うちでしか動いてなかったのかしらん(・ω・)
>>340
非表示バッファてのを忘れてただけで、全然問題ないです。
取り込ませてもらいました。
>>348
例の call-process っていうかシャドウイングの問題かなぁ?
ispell を入れて試してみましたが、動作しました。
*scratch* で
(eq #'call-process #'elib::call-process)
これを評価すると t になったりします?
>>351
># …って, その中の (D) は xyzzy だとどうするのがいいんでしょう?
># (D) = 「設定ファイルを読み込まず, 手動で howm を起動」です.
xyzzy にも -q オプションがあります。
他に細々と違いがあるので、うちのページにも、
「バグ報告を下さる方へ」を追加してみました。
http://homepage3.nifty.com/~ko-ji/howm-wrap_bug-report.html
- >>358
乙です。
しかしwrapper作者たんが対応バージョンを上げる日に
よく本家のバージョンがさらに上がるなあ……
- 肝心なことを書き忘れてた。
howm-wrap_040106.zipにてhowm 1.1.0.3うまくインスト出来ました。
しかし本家ではhowm 1.1.0.3はすでにDLできない罠……
あと要望ですが、howm-init.lに>>353をコメントアウトでもいいから
書いておくといいと思われ
- howmスレのほうでも話が出てたけどwrap作者さんは
対応しているバージョンのhowm本体も同じ場所で再配布されたらいかがでしょう。
howmはGPLのようですしライセンス的な問題はないですよね?
- >>358
レスありがとうございます。
>*scratch* で
>(eq #'call-process #'elib::call-process)
>これを評価すると t になったりします?
パッケージが存在しません: "elib"と怒られました。
1.1.0.3入れてみたのですが、僕の環境ではなぜかelisp-libをうまく
読み込んでくれないようです。(これが原因かも)
時間のあるときにもう少しいじってみます。お騒がせしてしまいすみませんでした。
- >359
もう気づいているかもしれないがちゃんと本家にある。<1.1.0.3
- コマンドラインから lisp プログラムを動かせて ハァハァ している者です.
pregexp が遅いですね...
エディタだからしょうがないとは思いますが,どうしてなんでしょう?
; xyzzy の関数を使えというのはもっともな意見ですが.
インストール不要の windows 用 lisp 処理系として使えるのが素敵です.
ポータビリティがすごいですよ.出先のマシンでも心強い味方です.
- >>361
howm作者さんの許可も事実上でたことですしね。
同梱配布ついでにNetInstaller対応を、と言ってみるテスト。
>>362
howm-wrapだとelisp-lib::にしなきゃいけなかったような。
- >>360
>あと要望ですが、howm-init.lに>>353をコメントアウトでもいいから
>書いておくといいと思われ
ですね。次の版ではそうしときます。
>>361 >>365
次からはセットにして配布します。
>>362
>僕の環境ではなぜかelisp-libをうまく読み込んでくれないようです。
インストール段階ではエラーになってないんでしょうか?
*scratch* で
(require "howm/elisp-lib")
するとエラーになります?
>>365
パッケージの別名として elib を定義してるので、elib:: でも桶です。
>同梱配布ついでにNetInstaller対応を、と言ってみるテスト。
一応考えてはいたんですが、もうしばらくお待ちを。
- >>364
詳細はわかりませんが、こういうことらしいです。
まあ、ライブラリの速度が処理系依存って、当然といえば当然な気もしますが。
http://pc2.2ch.net/test/read.cgi/tech/1069594582/637
あと、末尾最適化で差が出ているのかもしれません。下記の比較結果参照。
ttp://www.geocities.co.jp/SiliconValley-Oakland/1680/memo0308.html#27
- >>367
re-search-forward が速ければ,エディタとしては十分ですからね...
どうせ短いプログラムなので,xyzzy 用に書き直そうかな.
pregexp.cl をちょっと見ただけですが,末尾再帰が結構あるみたいです.
;; Hiroi さんのプログラムが完全に tail recursive になっていないような.
- 2ch の板リストや KaMail のフォルダリストみたいに
お気に入りリストを左側に表示できたらなぁ!
へ へ
@ @
し
M
- >>366様
*scratch* で
>(require "howm/elisp-lib")
>するとエラーになります?
これはtになりました。
実はインストールの時にhowm-installがまったく動かず、手動でやると
elisp-libが見つからないとか言われたので
(setq elisp-lib::howm-menu-lang 'elisp-lib::ja)
という設定だけしてませんでした。でhowm-init.lをコピーしております。
先ほどC:\howmとC:\howm-wrapを作ってそれぞれ解凍してから*scratch*に
(pushnew "C:/howm-wrap/" *load-path* :test #'string-equal)
としてからhowm-install.lを読み込ませてやるとうまくいきました。ispellも動きました。
適当なところに解凍といっても最初に解凍した場所が/site-lisp/howm
(インストールしたいディレクトリと同じ)だったのが悪いのか
こういうときはload-pathの設定を最初にしとくべきだったのでしょうか。
本当にお騒がせしました。そしてありがとうございました。
- 既に起動しているwindows上のアプリケーションのプロセスを取得して、
プロセスの標準入力に文字列を送りたいのですがよくわかりません。
part9の633あたりの list-process-base-name で得られるプロセス
オブジェクトはxyzzyのprocessオブジェクトではなさそうなので、
process-send-string を使って文字列を送ることはできませんでした。
どなたかよろしくお願いします。
- >>371
>xyzzyのprocessオブジェクトではなさそうなので
xyzzyの標準入力に文字列を送ろうとしているのですか?
- >>372
その逆で、xyzzyから他アプリの標準入力に送ろうとしてます。
make-process と process-send-string でできるかとおもった
んですが、少し難しそうです。
文字列を送りたいアプリが、linuxのコマンド line をwindowsに
移植したものを使って起動されます。
line aplication-name
そして、line のプロセスとアプリのプロセスと2つ生成されます。
make-process でバッファに関連付けられるプロセスは line のほう
ですが、文字を送りたいのは line が作るサブプロセスのほうです。
ためしに line に対して文字を送りましたが、何も変化しませんでした。
- >>373
はずしてるかもしれないけど。
FindWindowとかでサブプロセスのハンドルを取得して、
そのハンドルに対してPostMessage、SendMessage辺りを使えばいいのでは?
WindowsAPI使わないと無理かもしれない
- http://www2.bbspink.com/erog/kako/983/983906331.html
http://www2.bbspink.com/erog/kako/998/998559159.html
http://www2.bbspink.com/erog/kako/998/998784857.html
http://www2.bbspink.com/erog/kako/996/996078813.html
http://www2.bbspink.com/erog/kako/997/997099242.html
http://www2.bbspink.com/erog/kako/990/990685836.html
http://www2.bbspink.com/erog/kako/994/994662056.html
つい最近html化された過去ログですが、2ch-mode0.0.1.2+www-mode0.0.1.4-2で読み込めません。
- pink鯖URLを一般板に貼っては行かんぞ。
- >>374
やっぱりそう思いますか。その辺の知識がないのと、あってもあまり
使いたくなかったのです。しばらく棚上げしておきます。
- もしかして,今や xyzzy は windows アプリを **LISP で** 制御できる
ツールになっているの?
- >>378
できるといえばできます。
winamp.l など
*filer-jump-directory-dialog-template* を再設定するとディレクトリに
移動できなくなりました。ためしに、もともと設定されている値をそのまま
setq で与えてみましたが、同様にジャンプできません。なじぇ?
- >>378
そういったことが楽にできるようにすることが
xyzzyの生き残る道なんじゃないかなぁ。
- >>380
「winに適応したemacsもどき」という路線で競合するアプリが新たに
産まれない限りは、このままでも安泰でしょう。
- それとも最強五目並べソフト路線でいく?
- 五目以外にもroguelikeとかゼビウスとかやれるようにしようぜ
- テトリスもいいな
- >382-384
言いだしっぺが作るという慣例に習って、お願いします。
- テトリス欲しい!!
- あー rougelike はいいなあ。
- xyzzy使ってる人ってプログラマが多いと思うのだけども
みなさんどんな言語でクソジジってますカメ
- いえ無職が多いらしいです
- >>388
もっぱらRubyです。
>>389
職業の話ではないと思われ。>プログラマ
それに無職って、HTMLに限った話じゃなかったっけ。
- >388
C++かな。正直lispはワカンネ。勉強してないから。
- 質問です。
set-marker maker-point process-maker ってどういうものでしょうか?
- >>392
set-marker マーカーをセット
marker-point マーカーの指すポイントを返す
process-marker バッファに結びつけられたプロセスが出力する場所を設定
……かな?
(setq m1 (make-marker)) ; マーカーオブジェクトを作成
(set-marker m1 (point-max)) ; マーカーオブジェクトm1にバッファの最後のポイントを設定
(goto-char (marker-point m1)) ;マーカーオブジェクトm1の指すポイントに移動
process-markerはlisp/shell.lとかを参考にすればよろし
間違ってたらゴメン
- ×process-marker バッファに結びつけられたプロセスが出力する場所を設定
○process-marker バッファに結びつけられたプロセスが出力するポイントを返す
だったかも
俺もいまいち分かってないなw
- >>394
レスありがd。 何となくつかみかけてきました。
それで ls-color.l を更新してみました。
うまく動いているみたい。
- ゲームを xyzzy でしたいだけなら、ウィンドウを分割して
その中で拾ってきたのを動かせばいいだけなんでない?
- >>396
結局xyzzyで動くゲームが要るんじゃないの??
- >>397
browser.dllでFlashのゲームとか。無粋ですがね。
- perl-mode ではキーワードファイルからの補完はできませんか?
- ,.. -- 、
r'´:::: --;::`i
ト 、 ,r `;,r:、
!゙'ノ、''` i _/ >>390-399の力を借りて平慶彦が400ゲット
_ril l `__ ,l´!
l_!!! ,、 ,..-ヽー'',,.. ' ノ`丶--'ー--、 -―--、
| ! !_!|i::::::::::`´ー''´:::::::::::::::::::|:::::::::::::::::::::,..、::`ヽ
! ', ,|!::::::::::::::::::::::::::::::::::::::::::ヽ/---‐'´`\::::\
!、_,イ:::ヽ::::::::::::::::::::::├┤:::/::| \:::ヽ、_
',::::::',::::::|ヽ::::::::::::::::::::::::::::/:::::::l ヽ'◎ ヽ
',:::::::',::::! ヽ:::::::::::::::::::::::::::::::::,! ヽ __ '、
',:::::::::::| ',::::::::::::::::::::::::::::/| ヽゞー'
ヽ_ ノ ヽ::::::::::::::::::::::::::::::!
- >>399
perlを全然知らないから適当です。define-keyの#\TAB部分は自由に。
(require "perl")
(defun perl-do-completion ()
(interactive "*")
(if ed::*perl-keyword-hash-table*
(do-completion (point)
(save-excursion (skip-syntax-spec-backward "w_") (point));この"w_"、あやしい
:list (make-list-from-keyword-table ed::*perl-keyword-hash-table*))))
;毎回、make-list-from-keyword-tableしているけど、速度的には問題ないみたい
(define-key *perl-mode-map* #\TAB 'perl-do-completion)
- >>401
どうもサンクスです。
上手く動いてるようです。
- 2ch-modeのdolib.dllってどういう意味があるの〜〜?
- >>399
僕はlispをよく知らないからphp-modeの
(defvar *php-completion-list* nil)
(define-key *php-mode-map* #\M-TAB 'php-completion)
(defun php-completion ()
"キーワードから補完"
(interactive)
(or *php-completion-list*
(setq *php-completion-list* (make-list-from-keyword-table *php-keyword-hash-table*))
(return-from php-completion nil))
(let ((opoint (point)))
(when (skip-syntax-spec-backward "w_.")
(let ((from (point)))
(goto-char opoint)
(do-completion from opoint :list *php-completion-list*)))))
の"php"の部分を"perl"や"c"や"c++"に書き換えるだけでありがたくキーワードファイルから補完させてもらってます。
- >>403
Google すれば即分かると思うけど、2ch の有料化対応やね。
- >>405
なるほど、DAT落ちしたスレが読めるって言うやつか。
- (split-string "abc,def," #\, t)
が
("abc" "def")
になります。
("abc" "def" "")
になるようにしたいんですけど、自分で組む以外に何か方法ありますか?
- >>407
スペースをトリミングしてもいいなら
(split-string (concat "abc,def," " ") #\, t #\SPC)
- どっかにこんなコードかtipsって無いんでしょうか
>katex使っていて
>hoge.texの中に
>\include{tobimasu}
>って感じで使っているんですけど
>簡単にhoge.tex←→tobimasu.texのジャンプができるような方法
>ナイですかね
>google使ってもそれらしきtips見つけられなかったんで
>
>贅沢を言えば
>\include{tobimasu}の
>tobimasu上でダブルクリック,C-Return,M-Returnのいずれかあたりで
>tobimasu.texが開くと良いなぁと、
>戻りも何か適切なキーを押せばtobimasu.tex→hoge.texとしてくれるやつが良いんですけど
>(tobimasu.texは開きっぱなしでも閉じても良いんですが)
よろしくお願いします。
- 2ch-mode で、追っかけスレ一覧にスレを登録した時に、その追
っかけスレ一覧のバッファがあった場合はそれを更新するようにし
た。これにより、追っかけスレ一覧のバッファがすでにある時に、
その追っかけスレ一覧にスレを登録した後、その追っかけスレ一覧
をカレントバッファにしてそれからスレ削除、ソートなどをすると
先に行ったスレ追加が無効となる現象も回避できる。
(defun tracking-add (board &optional pos track-name dialog)
:
(tracking-write track-name tracking-list)
(let (buf win current-win)
(setq buf (find-buffer (tracking-buffer-name track-name)))
(when buf
(setq win (get-buffer-window buf))
(if win
(progn
(setq current-win (selected-window))
(set-window win)
(tracking-show track-name t)
(set-window current-win))
(save-excursion
(tracking-show track-name t)))))
(setq *tracking-list-all* nil)
(unless exist
(menu-update)))
t)
- >>409
F4, S-F4で行ったり来たりできます。
ちなみにC/C++の場合は "^#include[ \t]*\"\\([^\"]+\\)\""
; includeファイルにジャンプ
(defvar *filename-getter* "^\\\\include[ \t]*{\\([^}]+\\)}")
(defun jump-include ()
"includeされたファイルにジャンプします"
(interactive)
(when editor::*tags-push-position*
(or editor::*gmark-keep-column*
(goto-bol))
(editor::global-mark-add))
(and (save-excursion
(goto-bol)
(looking-at *filename-getter*))
(let ((name (match-string 1)))
(and (file-exist-p name)
(find-file name)))))
(defun jump-include-or-tag ()
(interactive)
(or (jump-include)
(jump-tag)))
(define-key editor::*katex-mode-map* #\F4 'jump-include)
- >>411
事故レス
(define-key editor::*katex-mode-map* #\F4 'jump-include)
は
(define-key elisp::*katex-mode-map* #\F4 'jump-include)
の間違いです。
- >>412
(add-hook 'el::katex-mode-hook
#'(lambda ()
(define-key el::*KaTeX-mode-map* #\F4 'jump-include)))
autoload なのでたぶん、こうだろう。
- xyzzyって何て読むんですか?
- >>414 セクシージジー.私はいつもこう呼んでいます.
- >>415
いやーん
- >410
自分は今までスレ追加したあとに "r" してたよ
- 皆痛いニュース板見れてる?
板一覧更新してもここだけ追加されない……
- >>408
サンクス。
今回はスペース削っても構わないので、これ使わせていただきます。
- >>418
問題なく見れてるが。
- >>411-413
ありがとうございます
S-F4で戻れてるところが特に楽です
- >>418
俺も見れん…
- 俺も問題無し>痛いニュース
- gnuplot-modeのxyzzy版はないのでしょうか?
- >>424
ないみたいですね。
というかgnuplotなんて初めて知った。
http://hie.3.pro.tok2.com/xyzzy/extlib/
にほとんど(全部?)の拡張ライブラリは載っているから、
Googleかここで調べれば、有無が大体分かると思う。
- 痛いニュースを見れないのは2ch-modeがデフォルトで参照している
BBS-menuの提供サイトが閉鎖してるからでは?
monazillaで他の提供サイトを見つけて書き換えれば見れると思う。
- と思ったらサイト復活してた…
>>426は無視してください
- サイトの板一覧の更新が遅かっただけで今はもう見れるとか?
- おおっ、見れる
- (setq *2ch-base-url* "http://zonutan.hacca.jp/")
とやってた。
- ;;; spiral.l
;; 渦 巻
;; き
;; に
;; 2
;; 。 8 す
;; よ 5
;; 。 る
;; た 氏
;; X や
;; し N T
;; つ
;; ま を
;; し 植 移
;; http://pc2.2ch.net/test/read.cgi/software/1074319808/285-288
- (provide "spiral")
(defun spiral-o-new (dr reverse-y)
`(,dr ,reverse-y nil))
(defun spiral-o-set-angle (spiral angle)
(setf (caddr spiral) angle))
(defun spiral-o-r (spiral angle)
(/ (* angle (car spiral)) (* 2 pi)))
(defun spiral-o-x (spiral angle)
(* (spiral-o-r spiral angle) (cos angle)))
(defun spiral-o-y (spiral angle)
(* (spiral-o-r spiral angle) (sin angle) (if (cadr spiral) -1 1)))
(defun spiral-o-angle-at-length (spiral l)
(sqrt (/ (* 4 pi l) (car spiral))))
- (defun spiral-string (str &optional (spiral (spiral-o-new 3 t)) (pitch 2) (ratio 1.5))
(setq str (substitute-string str "\n\\|\r" ""))
(let* ((line-count (+ (floor (spiral-o-r spiral (* (spiral-o-angle-at-length spiral (* (length str) pitch)) 2))) 2))
(line-length (floor (* line-count ratio)))
(center-x (floor (/ line-length 2.0)))
(center-y (floor (/ line-count 2.0))))
(let ((lines (make-array line-count
:element-type 'string
:initial-element (concat (make-sequence 'string line-length :initial-element #\ )
"\n")))
(adjuster 1)
(ret ""))
(dotimes (i (length str))
(let* ((angle (spiral-o-angle-at-length spiral (+ (* i pitch) adjuster)))
(x (+ (round (* (spiral-o-x spiral angle) ratio)) center-x))
(y (+ (round (spiral-o-y spiral angle)) center-y)))
(setf (aref lines y)
(concat (substring (aref lines y) 0 (- x 1))
(string (char str i))
(substring (aref lines y) x)
"\n"))))
(dotimes (i line-count ret)
(setq ret (concat ret
(aref lines i))))
(concat (substitute-string (substitute-string ret "^\\( +\n\\)*" "") "\n\\( +\n\\)*$" "") "\n"))))
- (defun spiral ()
(interactive)
(save-excursion
(let ((beg (progn (goto-bol) (point))))
(goto-eol)
(let ((str (buffer-substring beg (point))))
(delete-region beg (point))
(insert (if (eq *prefix-args* 'universal-argument)
(spiral-string (reverse str))
(spiral-string str)))))))
;; M-x spiral
;; C-u M-x spiral
;;; spiral.lはここまで
- 移植は適当なので間違ってたらごめんね。
- ボッキアゲスパイラルにも対応していますか?
- ぐ
っ 。
じ い
お
ょ ー
も 1
ぶ し ろ
3
! 4
! > >
- 思
っ は
て と
誰
い る
か 。
た が や
よ
が タ
… ワ ラ
- まーはしゃぐのもいいけどそのくらいにしとけよ。
- >439
空気読めよ
そこはスパイラルで諌める場面だろ
- ttp://chez-sugi.net/MovableType/000832.html
こんなのありましたが、ガイシュツ?
MovableType に乗換えようかな ....
-
ac Ma a Mca
M M c c M c a M
c a M c M c
a a a___a M
M c M c acMa 。。。等幅
- >>441
perl使わずに動作してくれると便利なんだけれどな。
- 激しくスレ違いなんだがMTのへポストツールいいのないか?
みんな外国製で文字化けして使えん。
- perl-mode で カーソル上の関数を ActivePerl に付いてくるような html リファレンス
から引きたいんだけど、誰かやってる方いません?
- php-mode でカーソル上の関数の引数が出てくるのって、誰かやっている方いません?
- Cのコールバックで、(char **argv, int argc)みたいな引数の物を
defun-c-callableで定義した時、このargvをCommonLispの方で
解釈する手は何かあるでしょうか?
argcだけひとつずつunpack-stringを実行したいのですが。
- 他のエディタでEOF有りで保存したファイルをxyzzyで保存すると
EOFがなくなってしまいます。
これは回避可能でしょうか?(私の設定が悪いだけ?)
励ますスレで回答貰えなかったので、本スレに来ました。
マルチで申し訳ないです。
- >>448
EOFって^Zって表示されるやつ?あんまり見かけないけど。
うちでは適当に編集しても消えなかったよ。
BSやDELで消しちゃったら無くなっちゃうけどね。
最後に0x1Aを挿入するだけなんだけど、俺にはlispはよくわからんのです。スマソ
- >>449
0x1Aのことです。
449さんのところで消えてないということは、組み込みんだ機能で何かあるのかも
知れないので、調べてみます。
私の職場だと付けるのが一般的なのでレスがいただけて助かります。
- .xyzzy、siteinit.l(siteinit.lcは未作成)を他のディレクトリへ移動し、
xyzzy.wxpを削除して試してみたのですが、0x1Aは削除されるようです。
私のオペミスの可能性もありますが、何か情報があれば教えて下さい。
- >>451
じゃあ、 C-q C-z でとりあえず我慢
- >>451
文末の^Zに関しては自分もそうなった。
- requireとloadlibraryの異いを教えてください
- >>454
loadlibraryでなくてload-libraryですね。
requireは、*modules*変数に、requireの引数であるモジュールネームがあれば、何もせず、
なければ、そのモジュールネームでload-libraryする。
*modules*は、provide関数を実行すれば、引数であるモジュールネームが、*modules*に登録される。
分かりやすくいえば、ほぼload-libraryと同じなんだけど、
すでにロードされているものはrequireではロードされなくなるということ。
(1回ロードすればいいんだから)
ただし、その判定を行うのは、provideをしているファイルのみ、という感じです。
(その上、モジュールネームが間違っていたら、駄目なんだけど)
あと、load-libraryだとインタラクティブに、ミニバッファで引数を指定して使えるけど、
requireはそうではない。
- そうだったのかー。ありがとー(^-^)
- xyzzyに最近使い始めて2ch-modeを導入してみました。
2ch-modeのスレッド一覧場面で、既読スレや追っかけ登録されたスレを
一番上部に表示させることはできないでしょうか。
- verilog編集モードをもとめて、
ttp://www.verilog.com/
でemacs lispのをもろてきたのですが、
commonに変換できそうにありません。
どなたかすでに変換なさってるかたいませんか?
あるいはほかのverilog編集モードお持ちの方いませんか?
- >>457
l
とか?
- KaMail についてなんですが、ここで勝手に要望を。
送信するべきでない文字があった場合、
エラーでなくて警告という形にしてもらえると嬉しいです。
相手が書いてきた文章はそのままで返信したいときに困っています。
とりあえず kamail-send.l の当該部分をコメントアウトして対処したのですが、
.kamail に何か書くとか、もっとスマートな方法ってありますかね?
- >>459
確かにそれでできますね、ふむ、どうもです。
>>460
私もそれで困ってしまいました。
- lで表示できることはできるのですが、更新スレッドがボールド表示されないので
イマイチ使い勝手がよくないのですがこのあたり解決策はないのでしょうか?
- (setq c-continued-statement-offset 4)
で C のソースを書いているのですが,if 文に関しては
if(a == b)
if(c == d)
return;
のように期待通りにインデントされるのですが,通常の文に関しても
int a = b +
c + d +
e + f +
g + h;
のようにインデントされてしまい,チト見栄えが悪いなぁと思っています.
emacs だと
int a = b +
c + d +
e + f +
g + h;
のように (意図通りに?) インデントされるのですが,
xyzzy でこれを実現するにはどのように設定すれば良いのでしょうか.
c-mode.l をいじらないとダメですかね…….
- 追加です.
>>463 と似たような現象だと思うのですが,
char *s[] = {
"aaa",
"ddd"
};
xyzzy で↑こうなってしまうのを
char *s[] = {
"aaa",
"ddd"
};
↑こうインデントさせる方法も知りたいです.
どなたかご存知でしたら教えてください.
- サイト作ったけど誰も来てくれないよ
どこが悪い教えて
欲しい本、パソコン、デジカメ、腕時計、家電製品、洋服、食料品などなど何でもそろう安さもピカイチ、ネット総合ショッピングサイトです
常時、40店舗がはいってる
http://www.jun0416.com
- xyzzy で1バッファで1000万文字を超えるとかなり重くなってくるのだけど
なんとかならないものですか.カーソルの移動ですら,ストレス感じます.
メモリ使用量は数10M程度だからもっと使ってもいいのに.
今の10倍程度を1バッファで無理なく使えるなら500Mくらい用意するのにな.
- >>463-464
>>466
何となくメーリングリストで聞いた方がいいような気がする。
- ttp://www.geocities.co.jp/SiliconValley-SanJose/7474/EmacsLisp.html
EmacsでMSN Messengerというサイトを見つけた
たぶん,これ今じゃ動かないのかもしれないけど
xyzzyでそういうことをやってるネ申はいませんか?
- すごいなーメッセまでできるんだ。
miranda使ってるけれど、確かにこんな機能があれば便利だな。
- long-operationの定義が
(defmacro long-operation (&rest body)
`(prog2
(begin-wait-cursor)
,@body
(end-wait-cursor)))
となっていますが,
(defmacro long-operation (&rest body)
`(prog1
(progn
(begin-wait-cursor)
,@body)
(end-wait-cursor)))
の方がいいきがします.
といってもいまさら修正効かないかもしれないので
とりあえず関数リファレンスに書いておくべきなのかな.
[返り値] bodyの中の式を順番に評価し,最初の式の結果をかえします.
- >>470
上下とも同じだと思いますよ?
(prog2
1
2
3)
=> 2
(prog1
(progn
1
2)
3)
=> 2
- >>471
2つのlong-operationの定義で以下の式は異なる値を返すと思う.
(long-operation
(setq a t)
(setq a nil))
- >>472
たしかに。
ML で亀井さんに伝えてくださいね。
- >>463
自分は、
int a = (b + ...
って逃げてる。
- 自己レスですが、結局argvをfor文でまわしてargv[i]に対してコールバックを
呼ぶラッパーをCで書いて妥協しました。
いい方法無いんですかね〜
- >>475
試してないから動かない可能性大です。
(c:*define-c-struct Args
(winapi:LPSTR arg0)
(winapi:LPSTR arg1)
(winapi:LPSTR arg2)
(winapi:LPSTR arg3)
(winapi:LPSTR arg4)
(winapi:LPSTR arg5))
(defun-c-callable void hoge-dll-func(((Args *) args) (int argc))
...
)
もっときれいに実現するには foreign.l をいじればよいのかもしれないけど
自分のスキルでは無理です(T-T)
- >>475
// argv.c
__declspec (dllexport)
void __stdcall call_callback(void (__stdcall *callback)(char **, int)) {
static char *arg[] = {"abc", "def", "ghi", "jkl"};
(*callback)(arg, 4);
}
; argv.l
(require "foreign")
(c:define-dll-entry c:int lstrlenA ((c:void *)) "kernel32")
(c:define-dll-entry c:void call-callback (c:int) "argv.dll" "_call_callback@4")
(c:defun-c-callable c:void callback ((c:int argv) (c:int argc))
(format t "argc=~d~%" argc)
(let ((chunk (si:make-chunk nil (* argc 4) nil argv)))
(dotimes (i argc)
(format t "~d: ~a~%" i
(si:unpack-string (si:make-chunk nil (1+ (lstrlenA (si:unpack-int32 chunk (* i 4))))
nil (si:unpack-int32 chunk (* i 4))) 0)))))
(call-callback #'callback)
- >>477
うぉっ!すげぇ。どうもです。
chunkのアドレス計算でなんとかなるかなぁ、とは思っていたのですが、
そうやるのかぁ。
そもそもsi:unpack-int32という物を知らなかった時点でダメぽ…
- xyzzy-messenger欲スィなぁ。
- >>464
最後の要素の後にも , をつけるとか。
char *s[] = {
"aaa",
"ddd",
};
- 477のおかげでdllのラッパー無しで作れるよーと思ったら…
元のdllが__stdcallが無い…
- >>496
はわわ。ぜんぜんわからないよう。
誰かリファレンスより分かり易くchunkの解説してー
- >>477の間違いです(T-T)
- katexをいれたら、キーワードとかの色が表示されずに全て黒になってしまった・・・
/xyzzy/etcにはちゃんとTEXファイルがあるのに・・・
なにか対処法はあります?
- >> 482
質問した人間だが多少は解説出来ると思うのでしてみる。
間違いあったら指摘よろ。
(si:make-chunk nil (* argc 4) nil argv)
で、argvというアドレスからはじまって、長さ4*argcの領域を確保する。
つまり擬似コードであらわすと
chunk = malloc(4*argc);
memcpy(chunk, argv, 4*argc);
という感じか?厳密にはchunkはアドレスじゃなくてアドレスを持つ
オブジェクトが入るから違うが。
で、
(si:unpack-int32 chunk (* i 4))
で、(chunk + (i*4))のアドレスから、4byteを、
intの値とみて読む。
これはchunk自体は単なるデータの列、つまりunsigned charの
配列みたいなもんなので、perlのunpackとかみたく、一定の
長さをもってintとみなす、みたいな感じじゃないと読めない訳だ。
続く
-
で、そこに入ってる値、というのはようするに、
(int)((unsigned char)argv+(i * 4))なので、argv[i]になる。
つまり
lstrlenA(argv[i])
と
(lstrlenA (si:unpack-int32 chunk (* i 4)))
がだいたい同じになるのかな。
後はchunkのあるアドレスからの文字列の再現方法、
つまりsi:unpack-stringが理解できればだいたいわかる
と思う。
漏れも素人なのでchunk回りは苦手です…
- 使い方がわからないやしスレで聞いています。
失礼しました。
- howm使い始めて、だんだんその便利さがわかってきました。
平岡さんkimuraさん感謝です。
howmの内容画面(howm-view-contents-mode)で、
リンクへのジャンプ(C-c , nやC-c , pに割り振られている
機能)をTABやShift-TABに割り振るにはどうしたら
いいんでしょうか。
howm-init.lのそれらしいところを変えようとしたんですが
わかりませんでした。
- >>488
<< howm-init.l >>
;; howm-menu-mode のキーカスタマイズをしたい場合以下を有効に。
(defun howm-menu-key-customize ()
(when (eq major-mode 'howm-menu-mode)
;; ここにキー定義を書く。
(define-key howm-menu-mode-map #\TAB 'elisp-lib::action-lock-goto-next-link) ←@
(define-key howm-menu-mode-map #\S-TAB 'elisp-lib::action-lock-goto-previous-link) ←A
))
(add-hook 'action-lock-mode-on-hook 'howm-menu-key-customize)
これで@は動きましたよ。
ただAは S-TAB がダメらしく怒られてしまいます。
ここどうすればいいんでしょう。どなたかお願いします。
- >>489
使ってないFunctionキーとかに登録してから、エイリアスさせるんだったような。
(set-extended-key-translate-table exkey-C-tab #\F19)
(global-set-key #\F19
'elisp-lib::action-lock-goto-previous-link)
- 直し忘れてC-tabになってるのはご愛敬。
- フラッシュメモリにxyzzyを入れようと思ってディレクトリのサイズを見たら357Mも有った。
辞書入れてるとはいえここまででかいと笑える
皆さん、どれくらい肥大化してますか?
- >>492
あなたには負けました。
普通です。38.58MB。Meadowより小さいな。
- 142MBそのうち.2chの容量が102MB……
- とうとう一年経ったか。
- >327
LISPがよく分かっていないのでコードがとても恥ずかしいですが,
とりあえずこれでどうでしょうか.
とりあえずindent-current-bufferの代わりです.
誰か書き直し求む.
;;KaTeX用偽インデント
(defun KaTeX-nise-Indent ()
(interactive)
(setq eofchk nil)
(do ()
(eofchk)
(goto-bol)
(if (looking-at "^[ \t ]*")
(delete-region (match-beginning 0) (match-end 0)))
(elisp::KaTeX-indent-line)
(setq eofchk (not (next-line))))
)
- >>489,>>490
ありがとうございます。
ただ、メニュー画面だけじゃなくって内容を書くバッファでも
TABでジャンプしたいんです。
minorーmodeがhowmの時にキー定義が有効になるように
できればいいんでしょうか?
- >>496
同じものを書き直してみますた。
;;KaTeX用偽インデント
(defun KaTeX-nise-Indent ()
(interactive)
(loop
(goto-bol)
(if (looking-at "^[ \t ]*")
(delete-region (match-beginning 0) (match-end 0)))
(elisp::KaTeX-indent-line)
(unless (next-line)
(return))))
- >>497
elisp-lib::howm-mode-map に define-key すればいけます。
- >>497
できました!ありがとうございます。めちゃ快適です。
howm-init.lに追加したもの
(define-key elisp-lib::howm-mode-map #\TAB 'elisp-lib::action-lock-goto-next-link)
(set-extended-key-translate-table exkey-S-tab #\F19)
(define-key elisp-lib::howm-mode-map #\F19 'elisp-lib::action-lock-goto-previous-link)
- リンク間違えました
>>499です
- >>492
拡張しすぎて693MB(辞書コミ)・・・そろそろCD-Rに入らなくなるかも
- >>492
179MBそのうち2chが150MB
- >>492
>>502
英辞郎がいるかいないかで激しく変わるんじゃない?
- ちょっと話ずれるけど、
>>492
> フラッシュメモリにxyzzyを入れようと思って
.xyzzy.historyとxyzzy.iniがユーザー名のフォルダに保存されちゃうから、
持ち歩いて出先で使ったりするのは不便じゃない?いちいちフォルダ名変えなきゃいけない。
- >>504
英辞郎は156MBですた。結構大きいね。
- 1.25GBってなんじゃこりゃああああ!
と思ったらbackupが874MBあった。
2chは303MB・・・
- >>505そうですね。
でもメモ帳やワードパッドを使う苦労よりもxyzzyを使いたい。
辞書と2chがネックだからそこを外せばなんとか。辞書はウェブ上にもありますし。
拡張を絞れば30MBくらいには収まると思うのですが
- >>505
http://web.sfc.keio.ac.jp/~t01450ms/xyzzy/wiki/wiki.php?cmd=read&page=QandA%20%A4%CB%A5%C4%A5%C3%A5%B3%A5%DF%A4%F2%C6%FE%A4%EC%A4%EB%2F3&word=USB
こういうのがあるけどそういうことじゃないのかな?
うちは 66MB ありました。ちなみに 2ch は別ドライブにしててこちらは 21MB。
- ええと、WZ の階層つきテキストで、
アウトラインツリーを横に表示するんでなく、
行の先頭にある . の数でその行を色分けしてくれるような
モードってあるでしょうか。
要は、
.大.見出し<青
..小見出し<緑
地の文<黒
みたいな感じで色分けするモードです。
行頭の.の数で色変えするっていうのを
どういうふうに指定したらいいのかさっぱりわからない。
- >>510
正規表現キーワードで指定する
質問です.バッファに関連付けられたプロセスがどれだけCPUパワーを消費しているか
調べる方法は無いでしょうか.プロセスが入力待ちか計算中かを調べようとしています.
process-status はこの目的では使えないみたいです.
どなたかお願いします.
- >>475-476
解説ありがとー。とてもよく理解できました(^-^)
- あ、また番号ずれてる…(T-T)
- >498
ありがとうございます.
ところで,KaTeXの
KaTeX-indent-line
がキー割り当てに登録されていなかったことに今気づいたですが,
これはどう
したらよいのでしょうか.
KaTex.lの
(define-key *KaTeX-mode-map* #\C-i 'KaTeX-indent-line)
だけが登録されていない(?)ようでLocal Bindingsに現れず,
Global Bindingsに
RET newline
が出てくるだけです.
- >>514
C-i は RET じゃないよ。TAB だよ。
RET は C-m のはず。
- >515
派手に間違えてました.なぜ知らないんだ自分.
ありがとうございます.母も非常に感謝しておりました.
早速C-mにキー割り当てをしてみようと思います.
- 正規表現による検索で,コンパイルはするものとして
正規表現の書き方で処理効率が結構変わるみたいなんですが,xyzzyでは
どんな書き方すると平均して早い処理時間ですますことができるんでしょうか.
コツみたいなものがあったら教えてください.
- 2ch-mode で、本文行頭の半角スペースを消すにはどうすればいいですか?
他にコピペするときなど、行頭スペースを消すのが面倒です。
- >>518
本文行頭の半角スペースを消してコピー(または ペースト)する lisp を書くのが
てっとりばやいと思います。
- >>518
私は矩形選択してる
- 2ch-modeでたとえば>>1みたいなリンクを
1までスクロールせずにポップアップみたいにできないのかな?
- >>521
ESC m してからマウスカーソルを合わせる
カーソルを合わせて p
- あとeとかEとか
- >518
これでどうだ。
(setq *thread-body-left-space* "")
(nsubst '("<[Bb][Rr]> ?" . "\n") '("<[Bb][Rr]> ?" . "\n ") *special-string-list* :test 'equal)
ところで、*special-string-list* 見ていて気がついたんだが、
&amp と &amp; は連想リストの最後にまわさないといけ
ないような気がする。そうしないと &amp;lt; とかが >
に変換されてしまうのでは…?
- ほんとうだ、いろいろあるんですね、サンクス
- バッファを閉じる際にWindowsみたいに「保存するか否か」を
聞くようにする方法、ありますか?
xyzzyそのものを閉じるときにそうするスクリプトは見つけたのですが...
- >>524
ありがとうございます!ちゃんと Lisp 勉強します。
- x,y,z,z,y,enter,shift
ってセコイよな・・・
- >>526
*query-kill-buffer-hook*でやろうとしたけど、難しかったので下のように書いてみました。
変な動きをしたら、自分でデバグしてください。
(defun kill-buffer (buffer)
(interactive "bKill buffer: " :default0 (selected-buffer))
(if (with-set-buffer
(save-excursion
(set-buffer buffer)
(if (run-hook-with-args-while-success '*query-kill-buffer-hook*)
(if (need-buffer-save-p buffer)
(if (yes-no-or-cancel-p
"~Aの内容は変更されています。\n変更を保存しますか?" buffer)
(save-buffer-dialog)
t)
t))))
(delete-buffer buffer)))
- 排他制御を切ってテキスト閲覧→「外部で更新がありました」
→いちいちうざい
ちょとワロタ
- >>529
ありがと。活用させてもらいます。
- インクリメンタルサーチで関数名だけ検索したいんですができますか?
関数リストがインクリメンタルサーチできればいいんだけど…
- perform-multiple-replace の引数と返り値の詳細について,referenceを
用意していただけませんか.lispプログラム内から使いたいのですが,引数に何を
与えればいいのかよく分かりません.
- とあるディレクトリのファイルサイズを調べたいんですが
どうすればよいですか?
- >>532
M-x list-function じゃだめ?
後は grep の結果のバッファでぐらいしか思いつきません。
つーか、何の関数?
>>534
ファイラで選択して C-u とか。
- 2ch_mode_otherbbs.l 入れると 2ch-mode の色付け設定が初期化されてしまう気がするんだけど俺だけですか?
>>1
↑こういうのとか。
- >536
それって数字リンクが黒くなってしまうということでしょうか?
2ch_mode_otherbbs.l 入れる前にはそうなっていなかったですか?
ちらっと見た限りではデフォルトでも数字リンクは黒くなってしま
うような気がするのですが…
- 俺は会社で見ているため、無理矢理リンクとかの装飾とかペインをとっぱらって
プレーンテキストで表示されるようにしてる。
- >>533
ども。
> perform-multiple-replace の引数と返り値の詳細について,referenceを
> 用意していただけませんか.lispプログラム内から使いたいのですが,引数に何を
> 与えればいいのかよく分かりません.
perform-multiple-replace
引数:
(pattern-replacement-list query regexp interactive-p noerror)
標準の perform-replace (lisp/search.l) との違いは、
pattern-replacement-list 引数のみ。
pattern-replacement-list:
pattern, replacement の cons pair を要素とするリストを指定。
ex.: (("pattern1" . "replacement1") ("pattern2" . "replacement2") ...)
query:
non-nil 置換問い合わせあり
regexp:
non-nil pattern-replacement-list の各要素内 car 部 (pattern 部) を
正規表現とみなす
interactive-p:
non-nil perform-multiple-replace の呼び出し元 function が interactive に
呼びだされたことを示す。
(pattern-replacement-list の保存、messege 出力を行う。)
noerror:
non-nil error を無視する。
(pattern にマッチしない場合のメッセージを出力しない。)
返り値:
置換した個数
- >>536
ども。
> 2ch_mode_otherbbs.l 入れると 2ch-mode の色付け設定が初期化されてしまう気がするんだけど俺だけですか?
> >>1
> ↑こういうのとか。
xyzzy Part5 の 389 に書いてみた thread-convert-anchor を適用していませんか?
標準では >>1 のようなものは色付けされません。
- >>539
ありがとうございます.使えました.
- >540
なるほろ…。
よろしければ、マージさせていただいてもよかですか…?
- >>537,>>540
あ、そうでした。
標準じゃなかったです。すみません。
で、上手く両立ってムリですか?
- 手元ではマージさせました。
一応コードを…。2ch_mode_otherbbs.l の thread-convert-anchor
を修正してください。
(追加 >536 さんは追加しなくても構いません)
(defvar *thread-fgcolor-anchor* *thread-fgcolor-body*)
(修正 2ヶ所あります)
(defun thread-convert-anchor ()
(save-excursion
:
'anchor
:bold t
:foreground *thread-fgcolor-anchor*)))
:
'anchor
:bold t
:foreground *thread-fgcolor-anchor*)))))
>540 さんがよろしければUPしている方にもマージさせますが…
もしよろしければおっしゃってください。
- ども。
>>542,>>544
> よろしければ、マージさせていただいてもよかですか…?
オリジナルのコードに 2 行ばかしゴミをくっつけさせてもらっただけのもの
ですし、どぞどぞご自由にしてください。
様々なコードがいいカンジになっていくのが一番です。
- >>535
>M-x list-function じゃだめ?
ありがとうございます。
関数は list-function で一覧できるものなのですが、
list-function ダイアログでインクリメンタルサーチが使えればいいのですが、
キーを打ってみても、一文字目しか検索してくれない
getter ,setter がいっぱいあるので getHoge と getFuge とか
結局カーソルキーで選択していくことになります
もしかして list-function 時に
ダイアログでなくバッファに展開して…とか設定ありますか?
- >545
マージしました。ありがとうございます…m(__)m
http://home.t04.itscom.net/poi/2ch_mode_enhance/2ch_mode_otherbbs.lzh
- LISPモードで関数名の補完ってどうやればよいのですか?
- ESC-tab か、
Ctrl-[ tab
- >>541
> もしかして list-function 時に
> ダイアログでなくバッファに展開して…とか設定ありますか?
(in-package "editor")
(require "listfn")
(export '(list-function-buffer))
(defun list-function-buffer ()
(interactive)
(unless (and (eq *list-function-buffer* (selected-buffer))
(eql *list-function-modified* (buffer-modified-count)))
(setq *list-function-list* (long-operation
(save-excursion
(funcall build-summary-function)))
*list-function-buffer* (selected-buffer)
*list-function-modified* (buffer-modified-count)))
(let ((file (file-namestring (get-buffer-file-name *list-function-buffer*))))
(with-output-to-temp-buffer ("*listfn*")
(dolist (fn *list-function-list*)
(format t "~A:~D ~A~%" file (car fn) (cadr fn))))))
- >>550
あう、自分も作ってたのに…。多少強化版なので一応コードさらしておきます。
>>546
site-lisp下にfnc-menu.lで保存してバイトコンパイル。(require "fnc-menu")してください。
(provide "fnc-menu") (in-package "editor") (require "listfn")
(defvar *function-menu-mode-map* nil)
(unless *function-menu-mode-map*
(setq *function-menu-mode-map* (make-sparse-keymap))
(define-key *function-menu-mode-map* #\q 'function-menu-close)
(define-key *function-menu-mode-map* #\RET 'function-menu-jump))
(defun user::function-menu ()
(interactive)
(function-list)
(if *list-function-selected*
(scan-buffer (format nil "^[ ]+~A[ ]+" (car *list-function-selected*)) :regexp t)))
(defun function-list ()
(unless (if (eq *list-function-buffer* (selected-buffer))
(eql *list-function-modified* (buffer-modified-count)))
(setq *list-function-list* (long-operation
(save-excursion
(funcall build-summary-function)))
*list-function-selected* nil
*list-function-buffer* (selected-buffer)
*list-function-modified* (buffer-modified-count)))
(let ((cfg (current-window-configuration)))
(with-output-to-temp-buffer ("*Function List*")
(format t " Line Function~% ---- --------~%~:{ ~8A ~A~%~}"
*list-function-list*)
(goto-char (point-min)) (function-menu-mode cfg))))
- ;;;続き
(defun function-menu-mode (cfg)
(interactive)
(kill-all-local-variables)
(make-local-variable 'kept-undo-information) (make-local-variable 'need-not-save)
(make-local-variable 'auto-save) (make-local-variable 'revert-buffer-function)
(setq buffer-mode 'function-menu-mode mode-name "Function menu"
buffer-read-only t kept-undo-information nil need-not-save t auto-save nil
revert-buffer-function #'function-list)
(unless (local-variable-p 'original-config)
(make-local-variable 'original-config) (setq original-config cfg))
(use-keymap *function-menu-mode-map*))
(defun function-menu-close ()
(interactive)
(set-window-configuration
(prog1 original-config (delete-buffer (selected-buffer)))))
(defun function-menu-jump ()
(interactive)
(let ((x
(save-excursion
(back-to-indentation)
(when (looking-at "[0-9]+ ")
(list
(parse-integer (buffer-substring (point) (progn (scan-buffer " ") (point))))
(progn (skip-chars-forward " ")
(buffer-substring (point) (progn (goto-eol) (point)))))))))
(when x
(setq *list-function-selected* x)
(function-menu-close)
(set-buffer *list-function-buffer*)
(goto-line (car *list-function-selected*)))))
- すみませんが教えてください。
2ch-modeを起動する時に必ず新しいウィンドウを開くようにするやり方がどこかにあった気がするんですが、Wikiとか探してもみつからない。
しかも2ch-mode起動中に新しいファイルを開いても2ch-mode以外のウィンドウに開いてくれるようなやつ。
どなたか知りませんか?
- >>547
536 です。ありがとうございました。
# backgroud の方も追加してみたら動いてるみたいです。
- >>553
> 2ch-modeを起動する時に必ず新しいウィンドウを開くようにするやり方
これはよく知らないけど、こんな奴かなぁ。
(defun foo ()
(interactive)
(call-process "C:\\xyzzy\\xyzzy.exe -f 2ch"))
> しかも2ch-mode起動中に新しいファイルを開いても2ch-mode以外のウィンド
> ウに開いてくれるようなやつ。
大久保さんとこの*scratch*にあります。
引用しておくと
;; 2ch-mode 時は別の xyzzy を立ち上げる
(add-hook '2ch::*2ch-start-hook* 'stop-xyzzy-server)
(add-hook '2ch::*2ch-exit-hook* 'start-xyzzy-server)
だそうです。
- >>555
後者のがまさに探していたものでした。ありがとうございました!
- KaTeXでIMEオンの状態で数式入力すると$の補完がはたらくけど
その際にIMEがオフになってしまうのが激しく大きなお世話です
これってIME解除させなくすることってできるんでしょーか?
- >>557
> KaTeXでIMEオンの状態で数式入力すると$の補完がはたらくけど
> その際にIMEがオフになってしまうのが激しく大きなお世話です
意味が分からん。
具体的にどういう操作をしているか教えてくれたら力になれるかもしんない。
- >>551
感謝です(;´д⊂)
- >>551
自分の使い方では、関数リストの一番上でなくて現在位置に来る方が良かったので
苦労して修正してみました 関数一つだけ
(defun function-list ()
(unless (if (eq *list-function-buffer* (selected-buffer))
(eql *list-function-modified* (buffer-modified-count)))
(setq *list-function-list* (long-operation
(save-excursion
(funcall build-summary-function)))
*list-function-selected* nil
*list-function-buffer* (selected-buffer)
*list-function-modified* (buffer-modified-count)))
(let ((cfg (current-window-configuration))
(listpoint 0)
(currentline (current-line-number)))
(with-output-to-temp-buffer ("*Function List*"))
(insert (format nil " Line Function~% ---- --------~%"))
(setq listpoint (point))
(dolist (x *list-function-list*)
(if (< (first x) currentline)
(setq listpoint (point)))
(insert (format nil "~{ ~8A ~A~%~}" x)))
(goto-char listpoint)
(function-menu-mode cfg)))
- すんません。使い始めたばかりです。
perlで[.plx]の拡張子を使っているのですが、
これをPerlスクリプトだと認識させる方法はどうやるのですか?
.pl .pm .cgi は認識するようにはなっているようですが。
- >>560
たしかにそっちの方が良いですね。
>>561
(pushnew '("\\.plx$" . perl-mode) *auto-mode-alist* :test 'equal)
ですか?
- >>562
/xyzzy/lisp/perl.l
に以下のような行があったんで書き足して見ましたが、駄目でした。
(pushnew '(perl-maketags "*.pl" "*.plx" "*.pm" "*.cgi") *maketags-list* :key #'car)
たぶん、とんでもない質問だと思いますが、
このあとどうすれば設定が反映されますか?
- perl.lc があったら削除して再バイトコンパイルかな?
- **.l **.lc **.ssn 用のアイコン配ってる所あります?
使うようになりだして、飾り気のないままなのが気になってきた…
- >>563
いや、だから>>562 でいけるばず。
/xyzzy/.xyzzy ファイルがなければ用意して>>562 の一行を書いて再起動でどう?
後、環境変数 XYZZYHOME に xyzzy.exe があるパスを設定するのを忘れずに。
/xyzzy/lisp 以下のコードを直接書き換えるのはあまりお勧めできない。
バージョンアップした時にまた書き直さないといけないからね。
# そういや最近バージョンアップないなぁ・・・
- >>566
すいません。物分り悪くて。
御指摘の方法でうまくいきました。
ありがとうございました。
- 開発中止?
- ( ゚д゚)?
- 疑問に思ったことなんだけど、
辞書モードにしたときに異常に重い時があるのは吾だけですか?
- >>570
変な拡張でもしてませんか?
- ここで紹介されている「キー割り当て一覧 をメッセージボックスで」って
どうしたら良いのでしょう?
ttp://hie.3.pro.tok2.com/xyzzy/note/keybind.html#describe-bindings-box
.xyzzyにそのまま貼り付けたんですけど、そこからどういう操作をすれば
いいのかわかりません・・・
どなたか教えていただけませんでしょうか。お願いします。
- >>572
> ttp://hie.3.pro.tok2.com/xyzzy/note/keybind.html#describe-bindings-box
>
> .xyzzyにそのまま貼り付けたんですけど、そこからどういう操作をすれば
M-x describe-bindings-box
割り当てるとか
- >>573
ありがとうございます。なんとかできました。
実は恥ずかしながらキー設定も初めてでした。
.xyzzyに書いても全然有効にならなかったので「違うのかしら?」と
しばし悩んでしまいましたが、siteini.lに書いてコンパイルしたら
うまく行きました。
どうもCraftLaunchから呼び出すと .xyzzyが無効になっちゃうみたいですね。
なんででしょ?
- >>574
> どうもCraftLaunchから呼び出すと .xyzzyが無効になっちゃうみたいですね。
CraftLaunch 2.08 から呼んでも有効ですが。
- >>574
XYZZYHOME
- >>575-576
お世話になってます。
過去ログ見たら既出でしたね。。。すみません。
XYZZYHOMEの設定はしてあったのですが、CraftLaunchの作業フォルダが
設定されていました。消してみたら読み込むようになりました。
恥かきついでにhowm-wrapについてお伺いしたいのですが、
励ますスレの方が良いでしょうか。。。なんだか申し訳ないです。
- 常にロシア語でものを考えろ。
- プレビューを見ながらHTMLソースを編集できるという機能があったような気がするのですが、
それを解説しているWebページが見つかりません。
あれは吾の気のせいだったのでしょうか?
- set-extended-key-translate-tableを使用して2ch-modeで
S-spaceをthread-previous-pageに使用しています。
この設定で困ったことが1点ありまして、私の場合、
IMEをオンにして文章を入力しているときS-spaceで
半角space入力をしているのですが、上記の設定を適用すると、
2ch-mode以外でもS-spaceで半角space入力が出来なくなってしまいます。
set-extended-key-translate-tableをmode限定にする等、
何か回避策はないでしょうか?
環境はXP Home、ATOK13、xyzzy 0.2.2.233です。
- >>580
試しに
.xyzzy に
(set-extended-key-translate-table exkey-S-space #\F14)
(global-set-key #\F14 #'(lambda () (and (get-ime-mode) (insert #\SPC))))
config.l に
(set-extended-key-translate-table exkey-S-space #\F15)
(define-key *thread-map* #\F15 'thread-previous-page)
と書いて見ましたが、問題なく動いているようです。???
- >>580
*global-keymap* の該当キーに
(defun insert-half-width-space (&optional (arg 1))
(interactive "*p")
(let ((*last-command-char* #\SPC))
(self-insert-command arg)))
これでも割り当ててみてくださいな。
- scheme-mode 誰かこっそり作ってないですか?
- >>583
ttp://fun.sci.fukuoka-u.ac.jp/RWiki/rw-cgi.rb?cmd=view;name=xyzzy
- >>579
html+-mode + browser.dll + browserex.lですね。
こことか。
ttp://www.uranus.dti.ne.jp/~shiro-/soft/xyzzy/browser.html
- CommonLispの勉強をしています。とある入門書に、
(defun powerset (lst)
(if (null lst) '(nil)
(let ((a (first lst))
(p (powerset (rest lst))))
(append (mapcar #'(lambda (s) (cons a s)) p) p))))
というベキ集合を調べる関数が載っていたのですが、
この関数をxyzzyで実行すると、
((a . #1=(b . #2=(c))) (a . #3=(b)) (a . #2#) (a) #1# #3# #2# nil)
という不思議な結果が返ってきます。本当は、
((A B C) (A B) (A C) (A) (B C) (B) (C) NIL)
という結果になるみたいですが、何故なのでしょうか?
- >>586
表記が違っているだけで有ってるよ
- >>587
あぁ、なるほど。
#1=(b c)、#2=(c)、#3=(b)と、#1#、#2#、#3#がそれぞれ
対応しているのか。注意力足りなかったです。
ありがとうございました。
- オークションでLispの本9000円で落としたやつ発見!
- 五目ならべ、コンピュータは4個並んでいるところがあっても、
こちらが33とかをやると、直ぐには5個揃えなくなることがある。
これでコンピュータを先手にしても勝てる。
Re:>>585 どうもありがとうございます。これを使うために環境変数を設定したいのですが、
xyzzyの起動と同時に環境変数XYZZYHOMEを設定して終了と同時にXYZZYHOMEを削除する機構はできますか?
- >>590
試してないしもしかしたらコンソール出てうざいかもだけど、
set XYZZYHOME=path
start c:\〜\xyzzy.exe
っていう.batもしくは.cmdなファイルを書くとかかな。
- xyzzyで以下のwwwサーバをたてて,
ttp://www1.odn.ne.jp/ymtz/tips.html#wwwsvr
(progn
(defun filter (proc in) (insert in))
(setq proc (open-network-stream (selected-buffer) "localhost" 80))
(set-process-filter proc 'filter)
(process-send-string proc "GET /\n"))
でアクセスするのですが,結果が得られません.
ブラウザでは結果が返ってきます.どうしてでしょうか.
- 昔からある言葉ではなく、ウィザードリーが発祥だと思われ。
- 1970 年代に作られた ADVENT ではなくて?
http://www.catb.org/~esr/jargon/html/X/xyzzy.html
1900年に書かれた『オズの魔法使い』の “Ziz-zy, zuz-zy, zik!”が語源なんて説も。
xyzzy って Wizardy ( I は 1981) で使われてたかなぁ。
英語版を遊んだことないけど、少なくとも呪文にはないよね。
- kamailに関して質問してもいいでしょうか?
最近IMAPのアカウントを二つ手に入れて、以前から使っているものを合わせて三つになりました。
そういうわけでそれらをkamailで使おうを思ったのですが、複数のアカウントは設定できない模様。
ぐぐって見ても解決策が見当らないのですがIMAPに関しては一つしか無理なのでしょうか?
ご協力お願いいたします。
- >>594
隠し呪文なんだそうな。詳しくは知りません^^;
- >>595
フォルダで設定すればいくつでもいけるはず
- >>592
(progn
(defun filter (proc in) (insert in))
(setq proc (open-network-stream (selected-buffer) "localhost" 80))
(set-process-filter proc 'filter)
(process-send-string proc "GET / HTTP/1.1\n\n"))
としてみなさい。
HTTPのrequestは以下のように定義される。
Request = Request-Line ; Section 5.1
*( general-header ; Section 4.5
| request-header ; Section 5.3
| entity-header ) ; Section 7.1
CRLF
[ message-body ] ; Section 7.2
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
すなわちRequest-line の最後のCRLFとヘッダとbodyを区切るCRLF
と2つ\nが必要なわけ。
で、一つしか送っていないからread-lineで刺さっている。
- >>598
open-network-stream のreferenceが間違っているのか。
yahooからならGETできるのはサーバ側でタイムアウトしてるから
だろうね。
- >>598-599
ありがとうございました.期待通りの結果がえられました.
- Re:>>591 どうもありがとうございます。でも、真っ黒のウィンドウがうっとうしいのでもう、XYZZYHOMEを入れました。
- >>601
一瞬で消えるはずなんですけどやっぱりうざかったですか。
WSHを書いてみたものの、環境変数がうまく伝播してくれないようなので没。
NAVも過敏反応するし。
というかXYZZYHOMEの切り替えが目的ではなく、たんに環境変数をセット
したくないだけなら、ini内に[init]homeDirの項目で指定すればよいらしいです。
- emacsで、この関数を使っているんですが、
xyzzyで使う場合、
どうしたらいいでしょうか?
;; →カーソルのすぐ左にある単語を大文字
;; →先頭だけ大文字
;; →小文字
(defun changecase-word (cnt)
(interactive "p")
(if (not (eq last-command 'changecase-word))
(setq changecase-word-type 0))
(cond ((= changecase-word-type 0)
(upcase-word (- cnt))
(setq changecase-word-type 1))
((= changecase-word-type 1)
(capitalize-word (- cnt))
(setq changecase-word-type 2))
(t
(downcase-word (- cnt))
(setq changecase-word-type 0 ))))
- >>603
自信ないけどこんなかな?
(defvar *changecase-word-type* 0)
(defun changecase-word (&optional (cnt 1))
(interactive "p")
(unless (eq *last-command* 'changecase-word)
(setq *changecase-word-type* 0))
(cond ((= *changecase-word-type* 0)
(upcase-word (- cnt))
(setq *changecase-word-type* 1))
((= *changecase-word-type* 1)
(capitalize-word (- cnt))
(setq *changecase-word-type* 2))
(t
(downcase-word (- cnt))
(setq *changecase-word-type* 0 ))))
- >>604
問題なく動作しました。
ありがとうございました。
- ミニバッファから文字列を取得する際、
\nとか\tをエスケープ文字として扱うのに巧い方法はないでしょうか?
- >>606 質問がよくわからん
- >>607
あ〜、例えば
(read-string "")
でミニバッファに
\n
と打ち込むとそのまま"\n"が取得されますよね?
これを改行のエスケープ文字として扱いたいんです。
(substitute-string (read-string "") "\\\\" "\\")
でも無理だし……。
- >>608
(decode-escape-sequence (read-string "") nil)
詳しくはreference.xmlを見てね。
- >>609
う、そんな関数がありましたか。
ばっちりです、ありがとうございました。
- Part1 http://yasai.2ch.net/win/kako/979/979930156.html
Part2 http://yasai.2ch.net/win/kako/994/994321779.html
Part3 http://pc.2ch.net/win/kako/1001/10017/1001707308.html
Part4 http://pc.2ch.net/win/kako/1008/10080/1008057054.html
Part5 http://pc.2ch.net/win/kako/1013/10130/1013042550.html
Part6 http://pc3.2ch.net/win/kako/1019/10196/1019691417.html
Part7 http://pc3.2ch.net/win/kako/1032/10329/1032910212.html
Part8 http://pc2.2ch.net/test/read.cgi/win/1041613876/
Part9 http://pc2.2ch.net/test/read.cgi/win/1053880433/
- ウィンドウの高さを変えたいのですがどうすればいいのでしょう?
ウィンドウといってもxyzzyで言うところのウィンドウではなくて
Windowsで言うところのウィンドウです(xyzzy自体)
右上のボタンでできる「最大化」ではなくて、縦幅のみ最大化したいのですが
- >>612
はへ?枠引っつかんで引っ張るだけだと思うのですが。
なんか漏れが誤解してるんだったらスマソ。
- lispで変えたいってんじゃないのか?
確か過去ログにWIN32APIを使ってウィンドウを最大化するコードがあったからそれをいじれば何とかなるはずだが、
肝心のコードがどこにあるか失念した。
- >>612
ttp://hie.3.pro.tok2.com/xyzzy/note/buffer.html#xyzzy-resize
- xyzzyのマニュアルってどこから読めばいいのか分からない。(ソフトの作者が書いたのではないようだが。)
とりあえず片っ端から読むのが正解なのだろうか?
- >>616
「習うより慣れろ」
というかマニュアルってどれ?なんの話?
- リファレンスのこと?
とりあえず、必要な機能を探すときにしか読まないけど・・・・。
- 片っ端から読むのもいいけど、
わからない→ぐぐる。これで十分。
- 呼んだ事無いな、MLのログなら読むけど
- >>616
cygwin スレでも言われたと思うが、本人以外でも理解できる文章の書き方を学んでくれ。
あと sage を覚えろ。
- 漏れも今はなんとか使えるようになったが、最初は何をどうして
いいのやらさっぱりわからなくて半年ほど投げ出してた。
で存在すら忘れかけてた頃にhtml+-modeをどうしても使いたくなって
ググって関連サイトを読む→意味わからん→もう一度読む
を繰り返し、ようやく使えるようになった。
あの頃は本当にマニュアルがあればなあと思ったよ。
でも一つモードを覚えるとかなりとっつきやすくなると思う。
って言ってもlispは相変わらずわからないし、
どうにかこうにか使ってるってレベルなんだけど。
- マニュアルとは言っても、人によって使うモードやコマンドが全然違うから
書こうにも書けないんだろうね。結局は本人が使いながら覚えていくしかない。
- 熟成された .xyzzy を見たいです。どこかないですか。
- ;熟成してないけどこんな感じ
(provide "my-xyzzy")
(export '(インクリメンタルサーチ 2ch-mode www-mode
送るでgrepダイアログっぽい emacsキーバインド
siteinit.lを再コンパイルして有効にする KaMail
タブ表示文字変更 リファレンス起動 C-zでアイコン化
終了時に必ず確認をだすようにする 高速移動用
デフォルトフォルダ設定 numbaric-dmacro .xyzzyを開く
バッファをKillしてウィンドウも閉じる コンパイルビルド))
- xyzzywiki に掲載コーナーがあるといいかも。
- .xyzzyは長いから、1つのページにまとめるのはきつそうだ。
.xyzzy掲載用のフロントページみたいなの作って、そっからリンク張っていく方式がいいのだろうか?
- .xyzzyは結構小さいとオモウ。
キーバインドにかんしては.xyzzyにあった方がいいと思うが
試してみたりするのには便利だけど、大きすぎると読み込みがとろくなるし
-
自分の場合、.xyzzy はカテゴリ別に分類された設定ファイルを load-file する
だけになってる。
(si:*load-library "hoge-conf" :if-does-not-exist nil)
こんなのが設定ファイル数分あるだけ。こうしとくとファイルが読み込めなくて
もエラーにはならないのでちょっと嬉しいかも。
- >624が見たいのは,.xyzzyとsiteinit.lの両方というか
.emacsに対応するもののことだと思われ
- >>630
そうです。他人の .emacs ってすごく勉強になりますよね。
- >>613-615
おお、そうです、lispで(というか一発で)変えたいのです
でhieさんとこの見てきたのでだいたいできました。
(defun xyzzy-resize-maxheight ()
"xyzzyの縦幅を最大化"
(interactive)
(when (not *old-size*)
(setq *old-size* (winapi:make-RECT))
(GetWindowRect (get-window-handle) *old-size*)
;位置/サイズを指定
(SetWindowPos (get-window-handle) 0
(winapi::RECT-left *old-size*) ;X座標
-5 ;Y座標
(- (winapi::RECT-right *old-size*) ;ウィンドウ幅
(winapi::RECT-left *old-size*))
1000 ;ウィンドウ高さ
0)))
- (list-bind (a b c) '(1 2 3 4) (+ a b c))
と入れると,
(let ((a 1) (b 2) (c 3)) (+ a b c))
と展開されるマクロを書こうとして,下のができたんですが
うまく動きません.
(defmacro list-bind ((&rest vars) vals &body body)
`(let ,(mapcar #'list vars vals) ,@body))
(list-bind (a b c) (1 2 3 4) (+ a b c))
こうなら動くんだけど.
だれか直してください
- >>633
ども。泥臭いですけどね。
(defmacro list-bind ((&rest vars) vals &body body)
(if (eq 'lisp::quote (safe-car vals))
(setq vals (cadr vals)))
`(let ,(mapcar #'list vars vals) ,@body))
(list-bind (a b c) (1 2 3 4) (+ a b c))
=> 6
(list-bind (a b c) '(1 2 3 4) (+ a b c))
=> 6
- >>634
レス thxです.
あー,こうだと vals に変数を使えないですよね.
変数リストは直接書いて値のリストは変数で指定したいのです.
言葉足らずでした,ごめんなさい.
(list-bind (a b c) (1 2 3 4) (+ a b c)) という使い方はしません.
使用例
(let ((x '(1 2 3 4)))
(list-bind (a b c) x
(+ a b c)))
=> 6
リストを構造体として使うと,
どこに何が入っているのか何回も調べることになるんで,リストの各要素に
名前を付ければ可読性が上がるだろうと思って,,,って,挫折中なのです
defstruct 使えっていうのは(ry
- >>633
実行時に変数xがどれだけの長さか決まるので、letとかmapcarではちときつそうです。
multiple-value-bindとvalues-listで一気に設定するのがよさげです。
(defmacro list-bind ((&rest vars) vals &body body)
`(multiple-value-bind ,vars (values-list ,vals) ,@body))
(let ((x '(1 2 3 4)))
(list-bind (a b c) x
(+ a b c)))
=>6
- >>636
ありがとうございます. こんな関数があったんですね.
期待通りの動作です.
multiple-value-bind の定義見て勉強しようと
思ったけど builtin でしょぼーん
- >>592, 598-599
xyzzywikiの方で、open-network-streamとconnectの例の修正を取り込んでおきました。
他にもあれば突っ込んでももらえると嬉しいです。
- >>637
http://www.paulgraham.com/onlisptext.html
これの p.230 以降 (コードは p.232)の dbind がお望みのものかなーと。
でも destructure しないなら >>636 さんのコードのが効率いいかも。
- >>639
destructure ですか.ちょっと難しそうだけど勉強してみます.
でもへたれなんで日本語の方で.thxでした.
- minorviewmodeを使っているとhowmがうまく動作しません。
toggle-read-onlyを変更すればできると思うんですが、
どなたかアドバイスいただけませんか?
- >>641
ad-hocに。
(defun toggle-read-only (&optional (arg nil sv))
(interactive "p")
(toggle-mode 'buffer-read-only arg sv)
(or (equal mode-name "HM")
(view-minor-mode)))
- >>642
うわー!! ありがとうございます。
どちらも思想がすきなので、とても感謝してます。
でもなんで直るか理解できない...
もうちょっと勉強してきます。
- xyzzyからfortranのコンパイルしたいんですが。
どのようにすればできますか?
fortran-modeは以下のものを使ってます。
http://member.nifty.ne.jp/seiya-suda/fortran.html
- C-x & でコンパイルコマンド流したんじゃダメなのか?
- >>644
コンパイルするのに打ち込むコマンド例を示さないと無理だと思われ.
コンパイラなんていくらでもあるでしょ.
- >>644
fortran-mode にそんな機能はありません。
Makefile を作って C-& から make するのが一番だと思う。
オレはそうしてる。
- C-x &
の後のgccエラーでもfirst-error、ダブルクリックjumpできるように
なりませんか?
- >>648
http://members.at.infoseek.co.jp/zauberer/microtips/xyzzy.html#grep
- replace-buffer の :literal の使い方が分からないのですが,どなたか
分かる人いませんか.単語単位の置換と思ったんですが,そうじゃないような.
う〜ん.
- メタ文字を意識するかしないか、の関係じゃないですかね たしか
- > メタ文字を意識するかしないか、の関係じゃないですかね たしか
メタ文字:
\0, \& 一致した文字列全体
\1 〜 \9 正規表現検索での\(\)に対応する文字列
これですね.dクス.
ところで referenceには scan-buffer に word-search というkeyがあると
書いてありますが,実際には無いですね.
- >>652
そう、word-search、ないみたいですね。
正しくは、:left-bound、:right-boundなんだろうけど。
指摘者ということで、
貴殿がxyzzyWikiの「リファレンスにツッコミを入れる」に投稿してくれますか。
- >>653
あぁ,これで単語単位の検索ができるんですね.
せっかくなので,気になった点をもう一つ.
builtin.l をみると, scan-bufferのkeyにはlimitが無いですけど,
実際に実行してみるとこのkeyは存在するみたいです.
このままだとldocでlimitが表示されないんで,buitlin.lを直接書き換えて
limitというkeyを追加してもいいんでしょうか.
とりあえずやってみたところ,おかしなことが起きないんですけど.
- >>650, >>652, >>654
名前が 651 になってますが、650 ですよね?
>>654
> このままだとldocでlimitが表示されないんで,buitlin.lを直接書き換えて
> limitというkeyを追加してもいいんでしょうか.
> とりあえずやってみたところ,おかしなことが起きないんですけど.
ML で聞くべき内容に思えるので、ML に投稿してください。
- 立ち上げたときに scratch が開くのですが、
lisp-mode 以外(text-modeとか)で開けるにはどうすればいいのでしょうか。
lisp-mode にいろいろ引っかけすぎて起動が重いのです…
- xyzzyでmaximaを使う方法はありますか?
それと、よろしければ起動時のモード(text-mode,Lisp Interactionなど)を変える方法を教えてください。
- >>657
(setq *default-buffer-mode* 'text-mode)
- >>657
http://xyzzy.s53.xrea.com/wiki/wiki.php?WishList%2F13
- >>656
(setq *initial-buffer-mode* 'text-mode)
- >>658
>>660
ど、どっちだー
- >>661
デフォルトと scratch の違い。
- >>629
おれの .xyzzy も load-librar だけなんで短い。 .xyzzy にコード書くと
バイトコンパイルされてない分起動が遅いと思うのだけど、実際は差は
ないのかな。
- 新規作成したファイルの、デフォルトの文字コードをEUCに、改行コードをLFにしたいんですけど、どうしたらいいでしょうか。
今は、(M)ツール→ローカル設定→もろもろ を毎回ちまちまいじっています。
- >>664
(setq *default-fileio-encoding* *encoding-euc-jp* *default-eol-code* 0)
これのようです。
C-x C-k で始まるkanji-mapもあります。
C-x C-k f で文字コード変更。大文字Fならデフォルトの文字コード変更。
C-x C-k n で改行コード変更(順々に変わっていく)。大文字Nならデフォルトの改行コード変更。
C-x C-k c でクリップボードエンコーディング変更。
文字コードもクリップボード...は、ミニバッファで入力するとき、タブで補完もできます。
- >>665
ぬおおおぉぉぉ!べりーさんきゆー!
まるで10年悩んだ痔がヒサヤで直ったときのような感激だ。
ほんとは痔じゃないけど。想像でいってみました。
- >>666 は痔だ。間違いない。
- ついでに、>>668も痔だ。
だまされるな!!!
続けます。。。
- テキストをソートすることは出来まつか?
また出来る場合、やり方を教えていただければありがたいでつ。
- 行ごとにcut & paste を繰り返す・・・
じゃなくて、CSVモードで出来るんじゃないですか?
- サンクスコ
やってみまつ
- ソートしたい範囲をリージョンにしてC-x |(←エルじゃないです。シフト押しながら\ね)と入力する。
で、ミニバッファにカーソル来るからsortと打つ。
選択した範囲のテキストをsort.exeというプログラムに渡して、処理した結果を
選択範囲と置き換えるというコマンドです。
(lispを使ったソート関数もあった気がするが、私はこっち使ってます)
こーいうsort.exeみたいなプログラムをフィルタと呼ぶ。
フィルタは便利だぞー。awkとか、uniqとか。これを期に、いろいろ使ってみるとよい。
まあ、windows標準インストールされてるフィルタはsortくらいしか無いんだが・・・。
- >>669
NetInstaller 対応になったばかりの sort-line もあるぞ。
http://ohkubo.s53.xrea.com/xyzzy/index.html#sort-line
- そこネットインストーラに追加したらエラー出る・・・
- lisp のコードを書いてる皆さんに質問なんですが、
皆さんどうやって lisp の勉強されました?
自分でも改造してみたいなと思いまして。
- 俺も知りたい。
とりあえず俺↓
ttp://www.gentei.org/~yuuji/elisp/
を見てちょっと勉強。
で、普段のxyzzy上の作業で、
こうできたら良いのにな と思っていないかを考えて
あれば、簡単なものからそれを実現する方法を考えて書いてみる。
ぐだぐだ本を読むよりは、とにかくやってみた方が
できるようになるんじゃないの、と思っている人なんで。
まだ、「書ける」って感じじゃない。
具体的には、パソコン上でのメモ取りが楽しいので、
howm とか、Emacs方面のEmacs Wikiとか、
Windowsの 紙2001 とか、その他アウトラインエディタをいろいろ見て参考に。
メーラ、ブラウザとの連携もできると良いね、な感じ。
なのでvi-modeの作者のファンだ。
- >>674
移転先の package.l を登録してる?
俺は問題ないよ.
- 俺は最初EmacsLisperでOnLisp読んだりSICP読んだりしてたんだけど、
xyzzyに出会ってgrepd.lとかden8view.lとかc-modeとかのソース多少
読んだら後はaproposとかapiリファレンスだけでだいたいやりたい
事は出来たかなぁ。
最短で出来るようになる事を目指すともっと遥かに近道があり
そうな気はするけど。
- すまぬ、
>>675
と書こうと思ってたら名を騙ってしまった。
- >>678-679
675じゃないけど、知りたいのはどちらかというと
EmacsLisper までの道のりなんでは
- >>675
やりたいことを細かく分けて、細かく分けた機能をテスト出来るような
コードを*scratch*に書いてC-jで確かめながら、とか。
分からない関数とかはマニュアルとか読んで、実際にコード組んで
確かめてみるとか。
他の人のコードはすごく参考になるけど、コードを読む、見るだけじゃ
なくて自分で少ない量でもいいからコードを組んで動かしながらやっ
てみればいいのでは?
- 皆さんありがとうございます。
>>680さんの言うとおり、lisp 自体まだあまりわかってません。
自分で実際に書いてみるのがよさそうですね。
簡単なものから挑戦してみます。
- EmacsLisperまでの道のりだと、変なオレンジに黒い線の入った、
薄いEmacsLispの入門書みたいなのを図書館で借りて、5時間
位で読んで、後はメジャーモードを書いてみたらだいたい一通り
は理解出来たかなぁ。
そこからはdescribe-functionとdescribe-key-bindingsを頼り
にガンガン書いたけど、xyzzyはdescribe-functionが役立たず
なんだよな…
- >>672
しらんかった。それ便利だなー。
Emacsでも使えないかな。
- xyzzyで、関数の一覧をみるにはどうしたらいいでしょう。
- >>685
何の関数によるからなんとも言えんのですが、
対応していれば M-x list-function で見る事ができます。
- >>686
emacsでいえば C-h f して TABキー押したときのようなやつ。
どんな関数があるかとりあえず調べたい。
なお変数の一覧も調べたいんだが、M-x set-variable のあとにTABキー押せばいいことがわかったんで、とりあえずこれでなんとかなっている。もっとスマートな方法あればいいけど。
- テキストの折り返しをxyzzy lispから制御するにはどうしたらいいですか。
メニューのツール→ローカル設定→もろもろ→テキストの折り返し で設定しているのをlispから行いたいんです。
- >>688
事故解決です。
(set-buffer-fold-width width &optional buffer)
width が nil ならfoldしない、tならウィンドウサイズ、数字ならその幅。
xyzzy/lisp/*.el を grep fold したら、それらしいのが見つかりました。
- >>687
> emacsでいえば C-h f して TABキー押したときのようなやつ。
xyzzy でも同じように M-x describe-function で TAB を押せばそれなりに。
こういうのもありますが。
ttp://www.netlaputa.ne.jp/~henmi/lisp/xyzzy/editor/ichiran.html
- xreaでMT導入してるから、mapae.lを使って更新しようと思ったんだけれど、
どうもうまくいきませんね。mt-xmlrpc.cgiの設定に一工夫必要なのかな?
誰かうまくいってる人いますか?
- だれか設定済みxyzzyぷりーず。
- 晒しage
Re:>>692 亀井さんのサイトに行け。
- >>691
漏れxreaで使ってるが書きこめる様子。
しかし、前にmapaeで書きこんだら
idが割り振られない空のエントリーが出来てしまって
再構築はもちろん空のエントリーの削除も出来なくなり
blogを作りなおさなければならない状態になったので
あまり使いたくないな。
- M-% で置換するときに、yやnで置換する、しないが選べますが、「置換してその場で終了」はどうしたらいいですか?
Emacsなら、ピリオドをうつとその部分を置換して終了してくれますが、xyzzyは違うようです。
- q?
- >>696
いいえ、qは「その場で終了」するけど、置換はしてくれません。
置換したうえで終了してくれる機能がほしい。
- かめーさん生きてるのかな(ボソ
- >>697
search.l 262-264 行目
(goto-char opoint)
(setq def 'quit)
(return))
↓
(setq def 'quit)
t))
search.l 286 行目
(when (eobp)
↓
(when (or (eobp)(eq def 'quit-and-back))
以上変更すれば、とりあえず . で変換後終了になります。
- お客様の中にどなたか、どなたかお医者様はいらっしゃいませんか!
いらっしゃるのなら2ch-modeみたいなRSS Aggregatorを至急作ってください!
おながいします。
- rss-modeじゃだめなのか?
- warata
- HIEさんのホームページを参照させていただいて、
;;ここから
;最近使ったファイルの削除
(defun del-file-name-history ()
(interactive)
(setq *minibuffer-file-name-history* nil))
;検索履歴の削除
(defun del-search-string-history ()
(interactive)
(setq *minibuffer-search-string-history* nil))
;メニューの追加
(add-hook '*init-app-menus-hook*
#'(lambda ()
(insert-popup-menu *app-menu*
(get-menu-position *app-menu* 'ed::window)
(define-popup-menu
(:item nil "最近使ったファイルの削除(&A)" 'del-file-name-history)
(:item nil "検索履歴の削除(&B)" 'del-search-string-history)
)
"メニュー(&M)")))
;;ここまで
これをsiteinit.lに記述して、メニューから最近使ったファイルの削除と検索履歴の削除ができるようにしてみました(これで本当に正しいのかどうかわかりませんが、とりあえず動いているようです)。
さらに、最近使ったセッションとGREPのディレクトリ履歴の削除もこのメニューに追加したいと思い、いろいろ試したのですがうまくいきません。
最近使ったセッションとGREPのディレクトリ履歴の削除をすることはできるのでしょうか?
- OHKUBO Hiroshiさんのpickup-patternを使用させていただいて、検索語の強調表示ができるようになりました(ありがとうございます)。
さらに、Grep結果(GrepダイアログとM-x grepの両方)からF10でジャンプした時とF11で次のGrep結果に移動した時に、Grepで入力した文字列の強調表示をすることは可能でしょうか?
お分かりになる方がおられたらお願いします。
- >>703
*session-file-history*
*grep-directory-history*
- >>705 追記
両方とも export されてなかった。
こっちが正解。
ed::*session-file-history*
ed::*grep-directory-history*
- 今、試してみたのですが削除できました。
705さん、ありがとうございます。
- >>699
そのままじゃうまくいかなかったけど、ちょいと修正したらうまいきました。
> search.l 262-264 行目
>
> (goto-char opoint)
> (setq def 'quit)
> (return))
> ↓
> (setq def 'quit)
> t))
t)) ではなく t) のようです。
> search.l 286 行目
>
> (when (eobp)
> ↓
> (when (or (eobp)(eq def 'quit-and-back))
'quit-and-back ではなく 'quit のようです。
以上で、とりあえず . で変換後終了になりました。
さんくす。
- >>704
(require "pickup-pattern") (in-package "editor")
(defun goto-error (next)
(when (and next *error-list*)
(setq *rerror-list* (cons (car *error-list*) *rerror-list*))
(setq *error-list* (cdr *error-list*)))
(when (and *rerror-list* (null *error-list*))
(rebuild-error-list))
(when *error-list*
(let ((error (car *error-list*)))
(if (= (count-windows 'arg) 1)
(progn (split-window *error-window-size*)
(set-buffer *error-buffer*))
(pop-to-buffer *error-buffer*))
(goto-line (cdr error))
(reverse-region (progn (goto-eol) (point)) (progn (goto-bol) (point)))
(recenter)
(let ((scanner (and *highlight-error* *find-error-scanner*)))
(other-window) (set-buffer (marker-buffer (car error)))
(goto-marker (car error))
(and scanner
(funcall scanner (save-excursion (goto-eol) (point)))
(eq *highlight-error* t)
(show-match)))
(recenter)
(pickup-pattern-set ;;編集
(make-pickup-pattern-item :pattern (match-string 0) :regexp t) t) t))) ;;編集
(in-package "user")
こんな感じ?(自分、pickup-pattern使わないから、よく分からないが)
たぶん色々問題があると思うので、
そのときは「編集」とコメントしてあるところを書き換えてデバッグしてください。
- ああ、間違いまくってた。
以下でましになったかもしれない。
申し訳ないです。
(require "pickup-pattern") (in-package "editor")
(defvar *error-pattern* nil)
(defun goto-error (next)
(when (and next *error-list*)
(setq *rerror-list* (cons (car *error-list*) *rerror-list*))
(setq *error-list* (cdr *error-list*)))
(when (and *rerror-list*
(null *error-list*))
(rebuild-error-list))
(when *error-list*
(let ((error (car *error-list*)))
(if (= (count-windows 'arg) 1)
(progn (split-window *error-window-size*)
(set-buffer *error-buffer*))
(pop-to-buffer *error-buffer*))
(goto-line (cdr error))
(reverse-region (progn (goto-eol) (point))
(progn (goto-bol) (point)))
(recenter)
(let ((scanner (and *highlight-error* *find-error-scanner*)))
(other-window)
(set-buffer (marker-buffer (car error)))
(goto-marker (car error))
(and scanner
(funcall scanner (save-excursion (goto-eol) (point)))
(eq *highlight-error* t)
- ;;710の続きです
(show-match)))
(recenter)
(if *error-pattern*
(pickup-pattern-set
(make-pickup-pattern-item :pattern (cadr *error-pattern*)
:regexp (cddr *error-pattern*))
t));;このtは謎。nilの方が良いのかも。
t)))
(add-hook '*grep-hook*
#'(lambda ()
(let ((regexp (equal *this-command* 'grep)))
(setq *error-pattern*
`(nil ,(if regexp *last-grep-regexp* *last-fgrep-pattern*) .
,regexp)))))
(add-hook '*grepd-hook*
#'(lambda ()
(setq *error-pattern*
`(t ,(car *minibuffer-search-string-history*) .
,*grep-regexp-search*))))
(in-package "user")
- >>709
回答ありがとうございます。
さっそく試してみたのですが、M-x pickup-pattern-unset-allをしても以前Grepで入力した文字列の強調表示が残ってしまいます。
私、他の方の書かれたものをちょっといじる程度でLispはさっぱりですので、対処していただけると助かります。
- >>712
うーん? 自分がやってみたところ、pickup-pattern-unset-allで消えますけど…
どういう状況でそうなりますか?
(しかし適当に書いただけだから、バグってもしようがないかな)
- >>713
すみません。私、Grep結果から複数のテキスト(バッファ)を開いていますので気づかなかったのですが、pickup-pattern-unset-allをしたバッファについては強調表示が消えています。
それで、なんだかかなり申し訳ないのですが、Grepに行くたびに開いているすべてのバッファに対してそれまでに入力した文字列の強調表示をクリアして、改めて新規文字列の強調表示をするということは、可能でしょうか。
- >>694
ようやくアク禁解除されました。
説明されてるとおりに設定して使えてますか?
うーん、となるとうちの設定がどこか間違ってるのかな。
ところで不具合があるのは困ったものではありますが、
やっぱりエディタから更新できるのはかなり魅力的なことですね。
- >>714
いい加減しゃっきりしたので、再び書き換えてみた。
*error-add-pickup-pattern-list*がtだと、*pickup-pattern-list*に、F10,F11した検索文字列が追加されます(たぶん)。
; >>710の (defvar *error-pattern* nil) の下の行にでも以下の一行を追加
(defvar *error-add-pickup-pattern-list* t);使わないならnil
; >>711の (if *error-pattern* の行から以下を差し替え
(when *error-pattern*
(let ((pickup-item (make-pickup-pattern-item :pattern (car *error-pattern*)
:regexp (cdr *error-pattern*))))
(pickup-pattern-set pickup-item t)
(when *error-add-pickup-pattern-list*
(setq *pickup-pattern-list*
(delete pickup-item *pickup-pattern-list* :test 'equalp))
(pushnew pickup-item *pickup-pattern-list* :test 'equalp)))) t)))
(add-hook '*grep-hook*
#'(lambda ()
(let ((regexp (equal *this-command* 'grep)))
(setq *error-pattern*
(cons (if regexp *last-grep-regexp* *last-fgrep-pattern*) regexp)))
(save-excursion
(dolist (buffer (buffer-list))
(set-buffer buffer)
(pickup-pattern-unset-all)))))
(add-hook '*grepd-hook*
#'(lambda ()
(setq *error-pattern*
(cons (car *minibuffer-search-string-history*) *grep-regexp-search*))
(save-excursion
(dolist (buffer (buffer-list))
(set-buffer buffer)
(pickup-pattern-unset-all)))))
(in-package "user")
- >>716
今、試してみたのですが、もう完璧という感じで流石ですね。
Grep該当行に複数の該当文字列がある場合などにそれを見つけにくくてちょっと悩んでいましたので、かなり助かります。
ずいぶんお手数をお掛けしてしまったのではないかと思いますが、どうもありがとうございます。
それでは、失礼致します。
- >>716
横からいただきました。
すばらしいです。ありがとうございます。
- http://auction.livedoor.com/detail?id=4319
これ買いだと思う?
- ずいぶん前にここで拾ったものですけど,ファイル名に空白含むと
うまく動作しなかったので修正しました.使っている人は更新したほうがよさげ
;; ファイラからCraftLaunchに送る
(defvar *craft-path* "c:/melted/clnch/clnch.exe") ; パス
(defvar *craft-arg* "/wr /x50 /y40 /w100 /c2 ;") ; 引数
(defun send-to-craft ()
(interactive)
(flet ((get-path-name (x)
(map-slash-to-backslash
(remove-trail-slash
(get-short-path-name x)))))
(let* ((mark-files (filer-get-mark-files))
(files (format nil "~{\"~A\"~^;~}"
(mapcar #'get-path-name
(if mark-files mark-files
(list (filer-get-current-file)))))))
(if files (shell-execute *craft-path* nil (concat *craft-arg* files))))))
(define-key filer-keymap #\F2 'send-to-craft)
- 動作の軽快さにひかれて、meadowから移行してきたのですが、
正規表現でのインクリメンタルサーチする方法がわかならくて、困っております。
isearch.l 内に *isearch-regexp* なる変数があるので、
正規表現での検索ができそうな雰囲気ではあるのですが、
どうもうまくいきません。
どなたかいい方法をご存知ではないでしょうか。
- >>721
(in-package "editor")
(defvar *isearch-reg* nil)
(defun isearch-regexp-toggle ()
(interactive)
(setq *isearch-reg* (not *isearch-reg*))
(if *isearch-reg*
(message "regexp: on")
(message "regexp: off")))
(global-set-key '(#\C-t) 'isearch-regexp-toggle)
(defun isearch-scanner (string no-dup)
(let ((*isearch-regexp* *isearch-reg*)
(pattern string))
(when *isearch-scanner-hook*
(setq pattern (funcall *isearch-scanner-hook* pattern)))
(setq *isearch-current-string* string)
(setq *isearch-last-match*
(if (and (scan-buffer pattern
:reverse (not *isearch-direction*)
:no-dup no-dup
:regexp *isearch-regexp*
:case-fold *case-fold-search*)
(setq *isearch-current-match-string* (match-string 0)))
t
(progn
(setq *isearch-current-match-string* nil)
(ding)
nil)))))
- (defun isearch-yank-word ()
(let* ((start (+ (point)
(if (and *isearch-last-match*
(not (eq *isearch-last-command*
'isearch-search-history-forward)))
(length *isearch-current-match-string*)
0)))
(end (save-excursion
(goto-char start)
(forward-word)
(point)))
(next-word (buffer-substring start end)))
(if (and *isearch-smart-case*
(eq *case-fold-search* :smart)
(not (string-match "[A-Z]" *isearch-current-match-string*)))
(setq next-word (string-downcase next-word)))
(isearch-push-status)
(isearch-scanner (concat *isearch-current-string* next-word) nil)))
(in-package "user")
これで動くかも。(C-tでregexpを使うかどうかのtoggle)
migemo では動かない。
- >>721
722さんを参考に,横から修正加えてみました
インクリメンタルサーチ中に C-t で,
正規表現で検索するかどうかを切り替えます.
切り替えた状態を保存して欲しくない場合は,#| と |# を消して
コメント解除してください.
;;.. インクリメンタルサーチで正規表現モードとトグル
(defun isearch-regexp-toggle ()
(interactive)
(let ((isearch-regexp (not ed::*isearch-regexp*)))
(setq ed::*isearch-regexp* isearch-regexp)
(if isearch-regexp
(message "regexp: on")
(message "regexp: off"))))
(define-key ed::*isearch-map* '#\C-t 'isearch-regexp-toggle)
#|
;;... 正規表現で検索するかどうかは現在の検索においてのみ有効
(encapsulate 'isearch-forward
'isearchf-regexp-local
'((interactive)
(let ((ed::*isearch-regexp* ed::*isearch-regexp*))
(apply basic-definition argument-list))))
|#
- 下のコメントを解除する場合は kia's website の
encap を入れて置いてください.netinstaller からも入れられます.
- 神様がいっぱい!
- >>721
俺も
(defvar *isearch-use-regexp* nil)
(setq *isearch-scanner-hook*
#'(lambda (p)
(setq ed::*isearch-regexp* *isearch-use-regexp*)
p))
(defun toggle-regex-isearch ()
(interactive)
(setq *isearch-use-regexp*
(not *isearch-use-regexp*))
(message "isearch ~[nomal~;regexp~]"
(if *isearch-use-regexp* 1 0)))
あきらかに、フックの使い方が違う。 _| ̄|○
- >>727
*iseach-scanner-hook*も元はmigemo用に追加されたようなものですし、
正規表現のisearchだけなら727のやり方が適切だと思います。migemoは
正規表現で検索すると同時に、パターンの拡張もしてるのが違うことぐらい
でしょうか。
いつも正規表現でisearchするならこれだけ。
(setq *isearch-scanner-hook* #'(lambda (p) (setq ed::*isearch-regexp* t) p))
- >>728
そうだったのか。解説あり
入力時にエラーになるので、以下の定義も追加
(define-key *isearch-map* #\[ #'(lambda () (interactive)
(setq *isearch-use-regexp* nil)
(message "isearch nomal")
(ed::isearch-self-insert)))
(define-key *isearch-map* #\\ #'(lambda () (interactive)
(setq *isearch-use-regexp* nil)
(message "isearch nomal")
(ed::isearch-self-insert)))
- >>722
>>724
>>727
>>728
わー、お答えいただきまして、ありがとうございます。
おかげで正規表現でインクリメンタルサーチができるようになりました。
ただ、'\'や'['などを入力すると、エラーが出てしまうようです。
>>729を見ると、これらの文字が入力されると、
通常の検索に戻すことで、エラーを回避しているようですが、
さすがにこうするしかないんでしょうか。
- (ed:minibuffer-prompt )で開いたミニバッファに
文字を挿入したりするにはどうしたらいいですか?
ミニバッファのバッファを
(ed:minibuffer-prompt )でミニバッファ開いて、
(set-buffer (window-buffer (minibuffer-window)))
(insert "hoge")
とかやってみたんですがうまくいかないんです。
- 何ですと?あのアルカイダが、ベッカムを標的にしてるですと?そうですと?
- >>731
上書きしちゃうのが一番手っ取り早いんではなかろうか。
- >>731
ごめん,あまり確認せずにwikiに書いてしまった.
(minibuffer-buffer) を何度やっても nil しか返ってこない.
けど (window-buffer (minibuffer-window)) ならminibufferが得られるのに
ちょっと驚いた.
M-x か ESC ESC と打ってからscractchに戻って
(progn
(set-buffer (window-buffer (minibuffer-window)))
(insert "hoge")
(set-text-attribute (point-min) (point-max) 'coloring :foreground 6))
とやったら期待通りの動きをした.
minibuffer-prompt をやってキーボードからの入力待ちにしておいてから
insert するとうまくいくかも.minibufferは常にあるバッファではないみたいなので.
あと selection-forward-char をやってみたけど選択されなかった.
選択されていたかもしれないけど,色が変わって見えなかった.
minibufferはやっぱりかなり特殊なのかな
- ここの
http://xyzzy.s53.xrea.com/wiki/wiki.php?tips%2Fiswitchb%A4%E2%A4%C9%A4%AD
「minibufferもバッファだから insertとかできないかな.
それから insertした文字を選択状態にすれば色も付くし 」
を見てそれならいっちょやったるか!と思ってたわけなんですが。
色々やってみた限りでは
ed:minibuffer-prompt のバッファ取得するのは無理な悪寒。
- >>735
> ed:minibuffer-prompt のバッファ取得するのは無理な悪寒。
今,少し触ってみた感じだとそんな気がします
ところで,minibuffer-prompt 使わずに (interactive "b")
ではどうでしょうか
このとき使われるキーマップがどれかは知らないけど,適当にコレを修正して
(defun hogehoge (buf)
(interactive "b")
(get-buffer-create buf))
を call-interactively で呼び出すようにすればいける気がしてきました.
wikiにあるのとは全然実装が変わってしまうけど.
こっちなら,minibuffer は (get-buffer-create " *Minibuf0*")
で取得できるし,勝手に補完も let で auto-fill *auto-fill-hook*
という変数をローカルに作った上で設定し,キーが押されるたびに可能なバッファ名
で補完することもできます.
キーバインドも適宜設定したうえで
call-interactively でhogehogeを呼び出すと良さそうじゃないしょうか
ただお疲れのようなので,無視してもらっても・・・
- >>736
言い出しっぺが作るっていう不文律があるかと思うのですが。
- >>737
欲しい人・作りたい人が作るのではないのですか?
- いいだしっぺにつっこむだけのレスはいいかげんうざい
参加できないならスルーしとけアホが
- バッファバーをマウスでクリックすることでバッファを移動した後、
元のバッファに戻りたいのですが
これは lisp で出来るのでしょうか?
- 2ch-modeで過去ログになっちゃった追っかけスレはどうすれば元に戻りますか!!!!!!1
- Alt+Shift+Kでいけまいsたよ!!!!!!!
- 741 [04/03/25 19:38 ID:VDiWHeJO] 名無し~3.EXE <sage>
long-operation中にも C-g で処理を止めることができますが,
このキーボード入力はいつ処理されるのでしょうか?
割り込みのように任意のタイミングで発生されるのか,
それとも sit-for などのごく一部の関数が実行される時のみに
キーボード入力がチェックされるのでしょうか?
>>740
とりあえず F2で我慢して
742 [04/03/25 20:29 ID:VDiWHeJO] 741 <sage>
>>740
追加報告です.
調べてみたけど,タブのクリックに対応する関数の割り当てを設定しているコードがありませんでした.
右クリック・左クリックともに.これらの関数は,builtinの中で指定されているので
普通には手出しできません.
next-buffer などが バッファ移動順のヒストリをどのように持っているかも調べてみましたが,
どうやらこれもbuitlinです.タブのクリックでも移動順のヒストリが変更されていればと思いましたが
だめでした.
タブをクリックしてバッファを移動するなら,直前のバッファに戻るのは難しいです.
それでは
- 742 [04/03/25 20:29 ID:VDiWHeJO] 741 <sage>
>>740
追加報告です.
調べてみたけど,タブのクリックに対応する関数の割り当てを設定しているコードがありませんでした.
右クリック・左クリックともに.これらの関数は,builtinの中で指定されているので
普通には手出しできません.
next-buffer などが バッファ移動順のヒストリをどのように持っているかも調べてみましたが,
どうやらこれもbuitlinです.タブのクリックでも移動順のヒストリが変更されていればと思いましたが
だめでした.
タブをクリックしてバッファを移動するなら,直前のバッファに戻るのは難しいです.
それでは
743 [04/03/25 20:53 ID:ixsZO+2F] 740 <sage>
>>742
情報ありがとうございます。
最初、*post-command-hook* を使ってなんとかできないかと考えたのですが、
調べたらタブのクリックがコマンドでないの分かって普通の方法では無理だろうと
思っていました。
ただ、マウスをタブのところに持っていくとファイル名(バッファ名)がポップアップ
表示されるので、神ならできるかもと思って質問しました。
WIN API を使っても無理でしょうか?
- 744 [04/03/25 21:39 ID:e1dJZOJk] 741 <sage>
直前のバッファが何であったかさえわかればできます。
タブがクリックされたというイベントを横取りして、
現在のバッファを取得した後、クリックのイベントを送ることができれば
一番きれいにできるのでしょうが、かなり大げさです。
*post-command-hook*でもいいですが、カレントバッファとその前の
バッファを記録していき、戻りたいときにこれらの情報からバッファを
セットすれ関数を呼び出せばできます。
745 [04/03/25 23:47 ID:aY6+w/FW] 名無し~3.EXE <sage>
740 です。
>>744
ありがとうございます。
自力では、どうにもならないことが分かりました。
おとなしく諦めます。
- ダブりすみません。手元の分だけ。
- ;;; nifetch.l - NetInstallerにフェッチオンリーの機能を追加する。
; `f' で現在のパッケージのファイルを取得する。
; 取得したファイルは多分 ~/.netinst/src にある。
(provide "nifetch")
(eval-when (:compile-toplevel :load-toplevel :execute)
(require "ni/setup"))
(in-package "netinst")
(define-key *apps-map* #\f 'app-fetch-current)
(defun app-fetch-current ()
(interactive)
(let ((app (app-current)))
(unless app
(return-from app-fetch-current))
(unless (yes-or-no-p "ファイルを取得しますか?: ~A~%~%( インストールはしません )" (app-file app))
(return-from app-fetch-current))
(when (install-app-fetch app)
(apps-print app-data)
(ni-msgbox "取得完了: ~A" (app-src-file app)))))
;;; nifetch.l はここまで
- ;;; nipacked.l - ni-autoload用のファイルを予め一つのファイルに纏めておく。
;
; *ni-packed-autoload-file* 纏める先のファイルのパス。随時破壊再構築される。
; ni-packed-autoload-pack 現在のautoload用のファイルを一つに纏めるコマンド。
; ni-packed-autoload 一つに纏めたファイルを読み込むコマンド。
;
;; インストール
; (1)site-lisp に入れて、load-libraryコマンドでこのnipackedを読み込む。
; (2)一度 ni-packed-autoload-pack コマンドを実行する。
; (3).xyzzyファイルの"(ni-autoload)"の代わりに次のように記述する。
; (require "nipacked")
; (add-hook 'ni::*ni-finish-hook* #'ni-packed-autoload-pack)
; ; NetInstallerの終了毎にファイルを作り直す。
; (4)Xyzzyを再起動する。
;
;; アンインストール
; (1).xyzzyの該当部分を"(ni-autoload)"に書き戻す。
; (2)site-lispに入れたこのファイル(とバイトコンパイルしたもの)を消す。
; (3)*ni-packed-autoload-file*で指定されているファイルを消す。
; デフォルトではsite-lispのnipackedrc.lファイル。
; (4)Xyzzyを再起動する。
- (provide "nipacked")
(eval-when (:compile-toplevel :load-toplevel :execute)
(require "ni/setup"))
(defvar *ni-packed-autoload-file*
(merge-pathnames "site-lisp/nipackedrc.l" ni::*install-directory*))
(defun ni-packed-autoload-pack ()
(interactive)
(unless (and (file-exist-p ni::*autoload-directory*)
(file-directory-p ni::*autoload-directory*))
(return-from ni-packed-autoload-pack))
(ni-packed-autoload-cat (directory ni::*autoload-directory*
:wild "*.l"
:absolute t
:file-only t
:recursive t)
*ni-packed-autoload-file*))
- (defun ni-packed-autoload-cat (src dest)
(let (tmpbuf)
(unwind-protect
(progn
(setq tmpbuf (create-new-buffer "*temp*"))
(set-buffer tmpbuf)
(dolist (f src)
(goto-char (point-max))
(insert (format nil "; ~A~%" f))
(insert-file-contents f)
(when (scan-buffer "(in-package") ; in-packageがあるときは為念。
(goto-char (point-max))
(insert "(in-package \"user\") ; by `nipacked'\n")))
(write-file dest))
(and tmpbuf
(delete-buffer tmpbuf)))))
(defun ni-packed-autoload ()
(interactive)
(and (file-exist-p *ni-packed-autoload-file*)
(load *ni-packed-autoload-file*)))
(ni-packed-autoload)
;;; nipacked.l はここまで
- >>747
>;;; nifetch.l - NetInstallerにフェッチオンリーの機能を追加する。
いただきました。どもです。
これでようやく ~/.netinst/config.l に記述ができました。
- モードに関わらす、
1.ほげほげ
ほげほげ
ほげほげ
ってなってくれるようなのAuto-Indentのトグルってありますか?
- sage
- >>752
行頭の空白が消えてますね。
具体的には、どんな規則に従ってインデントしてほしいの?
前の行が正規表現で"^[0-9]+."に一致したら、インデントを始めるとか?
その場合、どこでインデントを終了するかは、どうやって判断すればいい?
(752の例のようなインデントでは、
Pythonのインデントのように、エディタ側にはアンインデントする位置は分からない)
- 2行目のげの後でCtrl+Enterすれば良いのでは。
- マクロ苦手です。誰か添削してください。
;;.. typecheck
;; 使用法
;; (tc (or null listp) var)
(defmacro tc (typep var)
(let ((fun (gensym)))
`(cond
((listp ',typep)
(if (eq (car ',typep) 'or)
(block typecheck
(dolist (,fun (cdr ',typep))
(if (funcall ,fun ,var)
(return-from typecheck t)))
(error (format nil "不正なデータ型です: ~A : ~A"
,var (symbol-function ',typep))))
(error (format nil "Unknown type descriptor ~A" ,typep))))
((funcall #',typep ,var) t)
(t
(error (format nil "不正なデータ型です: ~A : ~A"
,var (symbol-function ',typep)))))))
- 今ひとつ何がしたいのかわからないけど、
(setq hoge 8)
(tc (or null listp) hoge)
でerrorが発生するのはいいの?
形式的なところだと、block名を固定にするのはどうかと。
(defmacro test (hoge)
(let ((tag (gensym)))
`(block ,tag
(return-from ,tag ,hoge))))
(macroexpand-1 '(test 8))
=> (block #1=#:G3596 (return-from #1# 8))
- >>757 ありがとうございます.
lisp は型にルーズなので,型チェックをするコードを作りました.
common lisp の the の機能限定(方言)版です.
とりあえずご指摘のところなど直しました.
(defmacro tc (typep var)
(let ((fun (gensym))
(typecheck (gensym)))
`(cond
((consp ',typep)
(if (eq (car ',typep) 'or)
(block ,typecheck
(dolist (,fun (cdr ',typep))
(if (funcall ,fun ,var)
(return-from ,typecheck t)))
(error (format nil "不正なデータ型です: ~W : ~A"
,var ',typep)))
(error (format nil "Unknown type descriptor ~A" ,typep))))
((funcall #',typep ,var) t)
(t
(error (format nil "不正なデータ型です: ~W : ~A"
,var (symbol-function ',typep)))))))
> でerrorが発生するのはいいの?
発生するのはいいのですが,違うエラーが出てました.
- まだよくわかってないんだけど、
第2引数で与えられた述語(または述語群)がvarに対して真なら t
それ以外ならエラーってこと?nilではなく。
どんな使い方するんでしょう?
- >>759
> 第2引数で与えられた述語(または述語群)がvarに対して真なら t
> それ以外ならエラーってこと?nilではなく。
そうです
(defun f (x y z)
(tc (or null bufferp) x)
(tc listp y)
(tc integerp z)
.... )
こんな感じで関数宣言の最初に型チェックを入れるのが一般的かと.
この場合, x は null か bufferで, y は list で z は整数であれば実行を続け,
一つでも満たさなければ,エラーが出て実行が終了します.
- the の仕様を知らないので違ってたら申し訳ないですが、
リストの場合orが先頭にないとエラーになるっていうのはどうなんでしょう?
素直にリストの要素がすべて述語とみなせばいいのでは?
以下テストしてませんが
(defmacro tc (predicate var)
`(cond
((consp ',predicate)
(unless (find-if #'(lambda (f) (funcall f ,var)) ',predicate)
(error (format nil "不正なデータ型です: ~W : ~A" ,var ',predicate)))
t)
((funcall #',predicate ,var) t)
(t (error (format nil "不正なデータ型です: ~W : ~A" ,var (symbol-function ',predicate))))))
- typecase 使えばいいじゃん、て思ったら、xyzzy って typecase なかったんですね。
てわけでこんなのでどうでしょう。
述語じゃなくて型で振り分けですが。型チェックするならこちらのほうが自然でしょう。
;;;ex.
;;;(tc (integer symbol) 0) => t
;;;(tc integer 0) => t etc...
(defmacro tc (type obj)
`(case (type-of ,obj)
(,type t)
(otherwise (error "不正なデータ型です: ~W : ~A"
,obj ',type))))
個人的には、エラーではなく nil を返させて、
(unless (and (tc (null buffer) x)(tc cons y)(tc integer z)) (error ...))
とかやったほうが汎用性があっていいかな、とも思いますが。
>>761
the っていうのは直後の式が返す値の型を指定する構文です。
複数の型は指定できないんじゃなかったかな?
戻り値の型が指定外の場合にはエラーになります。
最適化の際のヒントとしても使われたりします。
ex.
(the integer (+ 2 2)) => 4
(the (values integer integer) (values 2 2)) => 2 2
- 追加。妥当としたい型がひとつだったら typep 使ったほうがよいですね。
- 「タブバーを横書きにする」をチェックして、xyzzycli.exeを起動すると
ミニバッファが下に埋もれた状態で起動されるんですが、
これって有名なバグなんでしょうか。
「タブバーを横書き」にして「xyzzycli.exeから起動」することを前提に、
ミニバッファを正常な表示で起動させる策ってありますか?
- >764
うちの環境では正常に起動された。
タブバーの位置とか関係ありそうな設定とか、もうちょっと詳しく教えてくれる?
- >>761-763
どうも.いろいろ参考になります.
確かにエラーを返す部分とチェックする部分は分けた方がいい気がしてきました.
あと型だけではなくて,値のチェックもしたくなってきました.
つまり述語ってことですね.たとえば,
(tc (and integerp (lambda (x) (>= x 0))) y)
(tc (and integerp (or (lambda (x) (>= x 10))
(lambda (x) (<= x 0)))) y)
こんなこと書いてもいいかなと思いました.
またはこれらの簡易記法として
(tc (and integerp (>= x 0)) y)
(tc (and integerp (or (>= x 10) (<= x 0)) y)
こんなことが許されると.xのかわりに _ とかでもいいですけど
and や or を tc 内で認めなければ実装は楽になりそうですけど,
tc がたくさんになってしまうなというのがちょっとひっかかってます.
and or を使えるようにするにはマクロの再帰呼び出しが必要なので
そのあたり勉強してきます.
最終的には,これをつかって design by contract によるプログラミング
がしたいと思ってます.
theのように値を返すなら,返り値に tc をかぶせるだけで使えるし.
最終的に出来上がれば, tc の定義を上書きして検査しないようにできるので
便利じゃないかなと.
- >>765
解凍したてのxyzzyを起動して(xyzzyでもxyzzycliでも)
そのまま「タブバーを横書きにする」にチェックして
表示->ツールバーでいずれかまたはすべて(どれでも)を表示させる設定で
xyzzycliから再起動すると、>>764の症状になるんです。
他の設定はいじってません。
バーの位置は関係ないようで、表示されているか否か、それだけのようです。
位置を変えるとミニバッファは正常に一行分表示されるようになるんですが、
xyzzycliから起動するとやっぱり埋もれます。
もちろんマウスでドラッグしてミニバッファの大きさを変えようと思えばできますが。
万人に共通なバグではないようですね。
「さまざま」の「終了時の状態を保存する」にチェックしておくと問題なく起動できるようですが、
前回編集したファイルがバッファに残ってるのがどうも気持ち悪くて。
どういった環境でこんな状態になるのか見当もつかないので、
素直にxyzzy.exeから起動することにします。
- >>767
わからないけど,XYZZYHOME はちゃんと設定した?
- xyzzy0.2.2.233がsite-lisp/siteinit.lを読み込まないのですが、どうなっているのですか?
.xyzzyは読み込みました。
- siteinit.l 使ってないんで確かじゃないが、ダンプファイルも消さなきゃ拙いんじゃなかった?
- >>769
ttp://hie.3.pro.tok2.com/xyzzy/qanda/html/apart/qanda-00020.html
- 画面を縦2分割し,同じバッファを表示させた状態でolt-operation-down などを行うと,
現在のウィンドウのポイント位置を変更して欲しいのに,必ず左側のウィンドウのポイント
位置を変更してしまいます.これをカレントウィンドウのポイント位置の変更を優先させる
ようにはできないでしょうか.
- (progn
(let ((cm (copy-menu-items *app-menu* (create-menu)))
(menu nil))
(defun hoge () (interactive) (msgbox "hoge"))
(define-key ed::*lisp-interaction-mode-map* '(#\C-c #\b) 'hoge)
(setq menu (define-menu
(:item nil "hoge" 'hoge)
(:item nil "complete-symbol" 'lisp-complete-symbol)
(:item nil "box-drawings-right" 'box-drawings-right)))
(add-popup-menu cm menu "テスト")
(set-menu cm)))
これを実行すると、"ヘルプ"メニューの横に"テスト"メニューが追加されて、
"テスト"メニュー内に"hoge"、"complete-symbol"、"box-drawings-right"の
コマンドが表示される。"hoge"と"complete-symbol"コマンドの横には
バインドされてるキーが表示されるけど、"box-drawings-right"の横にはキーが
表示されない。どうもマイナーモードマップに定義されてるコマンドのキー
バインドは表示されないっぽい。
マイナーモードマップに定義されてるコマンドのキーバインドを表示させる
方法ってあるかな?
- >>773
本当だ。出来ないみたい。
- 「バッファタブを閉じる」をマウスの代わりに
ショートカットでやりたいのですが、
そのような関数はあるでしょうか。
- >>775
(hide-command-bar 'buffer-bar)
これ?
閉じたり、引っ込めたり
(defun toggle-buffer-bar ()
(interactive)
(if (cadddr (find-command-bar 'buffer-bar))
(hide-command-bar 'buffer-bar)
(show-command-bar 'buffer-bar)))
- xyzzy lispで、整数を格納した変数を使ってascii文字にして出力する方法はありますか?
例えば、xに33(10進)が入っているとき、xを参照することによって!を出力する方法はありますか?
- >>777
code-char
(unicode-char)
- >>776
全部を一度に閉じるのではなく、
現在開いているバッファタブ一つを閉じられると嬉しいです。
- >>779
じゃあこれか
(delete-buffer (selected-buffer))
あと、>>776の
>閉じたり、引っ込めたり
は
出したり、引っ込めたり
じゃん……俺、なにやってんだろ
- >>780
dlete-bufferでgoogleって
ttp://www.afis.to/~start/xyzzy/library/buffer.html#CB_delete
を見つけられました。ありがとうございました。
- Re:>>778
code-charの返り値は#が付いてくるのですが、このデータの型は一体なんですか?
p.s. (format t "~a" #\!) で!だけ表示されました。
- >>782
当然、char型。
(type-of #\!)
=>character
>>781
変更ありのとき確認して欲しければ kill-selected-buffer
- Re:>>783 どうもありがとうございました。
- win98機でlispを学びたいのですが、
cygwin-emacsでclispとxyzzyでlispのどちらが良いですが?
- ツールバーにバッファを表示して、howmを使っています。
howmに関するバッファタブがにツールバーを占有しているのですが、
どうすればhowm関係のタブは表示しないように設定できるでしょうか。
- >>786
ttp://hie.3.pro.tok2.com/xyzzy/note/kamail.html#hide-buffer
ここのKaMail関係のバッファをバッファリストに出さないように、のように
howmでバッファに関係する変数とか、バッファを作ってる関数で使ってる
局所変数全てにprefixとしてスペースを
追加すればよいのでは?
試してないから間違ってたらゴメン
- howm-mode-hook で rename-buffer するとか?
試してないから以下同文
- >>787>>788
情報どうもです。
似たような例をxyzzy の音から見つけました。
www-mode 関係のバッファをバッファリストに出さないように
ttp://hie.3.pro.tok2.com/xyzzy/note/www-mode.html#www-hide-buffer
2ch-mode 関係のバッファをバッファリストに出さないように
ttp://hie.3.pro.tok2.com/xyzzy/note/2ch-mode.html
けど、bufferを作ってる関数やlispについて知らないから要学習です。
- diff-buffer から diff-detail を使うにはどうしたらいいのでしょうか。
- >>790
diff-buffer.l の内容を 「diff」→「diff-detail」と全置換した
diff-detail-buffer.lを作成。diff-detail-buffer.lをインストール。
- global-markを保存して、次回起動時にもマーク位置に飛べるようにするにはどうすればいいのでしょうか。
お分かりの方おられましたら、お願いします。
- >>792
sessionを保存
- >>793
sessionを保存しても、mark-dialog-boxで設定したマークは保存されないようです。
やっぱりこれはかなり難しいんでしょうか。
- >>786
ttp://howm.sourceforge.jp/cgi-bin/hiki/hiki.cgi?Comment
- (progn
(let ((src '(a b c)))
(mapcar #'(lambda (x) src) src)))
この結果がCygwin emacs(GNU Emacs 21.2.1 (i686-pc-cygwin))だと、
((a b c) (a b c) (a b c))
xyzzy-0.2.2.233だと、
(#1=(a b c) #1# #1#)
となります。
xyzzy上でemacsみたいな結果が欲しいのですが、どうすればよいのでしょう?
- >>792
global-markはファイルを読み込んでいないと使えないようなので、
「終了時にファイル名と位置を保存」&「起動時にマークしなおす」
といういまいちな動作になってしまいました。
あんまりテストしてないので .xyzzy.history をバックアップして試してください。
(require "gmark")
(defvar *gmark-history* nil)
(register-history-variable '*gmark-history*)
(add-hook '*kill-xyzzy-hook* 'save-gmark-history)
(defun save-gmark-history ()
(setq *gmark-history* nil)
(dolist (x (ed::global-mark-make-list))
(pushnew (cons (get-buffer-file-name (second x)) (marker-point (first x)))
*gmark-history*)))
(defun set-gmark-history ()
(dolist (x *gmark-history*)
(and (car x)
(set-buffer (ed::find-file-internal (car x)))
(goto-char (cdr x))
(global-mark-add)))
(set-buffer "*scratch*") ; ここはお好みで
)
(add-hook '*post-startup-hook* 'set-gmark-history)
- >>796
(format nil "~A"
(progn
(let ((src '(a b c)))
(mapcar #'(lambda (x) src) src))))
"((a b c) (a b c) (a b c))"
慣れることだ
- >>798
どうも
(progn
(defmacro approx-inset-nth (n list object)
`(let ((i 0) (result nil))
(dolist (item ,list)
(when (= i ,n)
(push ,object result))
(push item result)
(incf i))
(when (= i ,n)
(push ,object result))
(nreverse result)))
(let ((index -1)
(src '(a b c))
(in-obj 'x))
(mapcar #'(lambda (x)
(approx-inset-nth (incf index) src in-obj))
src)))
=> ((x a x b x c x) (a b c) (a b c))
この結果を
(x a b c) (a x b c) (a b x c)
となるようにしたいのですが……。
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7043/#approx-search.el
このapprox-search.elがxyzzy上で動かないかなぁ、と思って。
勉強が足りなくてすいません……
- >>799
個人的には,こういうのは副作用を使わないですむ再帰の方がいいかと.
(progn
(defun approx-inset0 (lst object &optional result)
(if lst
(let* ((top (car lst))
(ret (approx-inset0 (cdr lst) object result))
(ret2 (mapcar #'(lambda (x) (cons top x)) (cdr ret))))
`((,top . ,(car ret)) (,object ,top . ,(car ret)) . ,ret2))
result))
(defun approx-inset (lst object &optional result)
(cdr (approx-inset0 lst object result)))
(format nil "~A" (approx-inset '(a b c) 'x)))
"((x a b c) (a x b c) (a b x c))"
- >>799
(defun approx-inset-nth (n list object)
(append (butlast list n) (list object) (last list n)))
- >>800 >>801
どうもありがとうございます。これで先に進めそう
- >>797
レスありがとうございます。
テキストに何も記入しないでしおりを貼るみたいなことができればいいな、と思っていたのですが希望の動作が得られました。
これでxyzzyがさらに使いやすくなりそうです。どうもありがとうございました。
- たびたびすみません。792です。
global-markの保存・復元をセッションの保存・セッションを開くのときにできないかと思い、
(add-hook '*save-session-hook* 'save-gmark-history)
(add-hook '*restore-session-hook* 'set-gmark-history)
などゝとやってみたりsession.lを見てみたりしたのですが、自分ではできそうもありません。
もうしわけありませんが、global-markの保存・復元をセッションの保存・セッションを開くのときにできるようにしていただけないでしょうか。
- >>804
> などゝとやってみたりsession.lを見てみたりしたのですが、自分ではできそうもありません。
できないわけはないので、解決に向け試行錯誤し続けてください。
- >>805
今時間的にちょっとヤバイので、とりあえず終了時の状態を保存するにチェックを入れて保留しておくことにします。
そのうちリファレンスやMLの過去ログなどを見てできるようであればやってみます。
ありがとうございました。
- approx-search.l
ttp://up.atnifty.com/upmini/file/20040411171612_.zip
オリジナルとはほど遠いけど、でもそれなりに動くようにはなりました
使い方はソース及びオリジナルを参照のこと
- (defmacro pc* (pred var)
(if (consp pred)
(case (car pred)
('or
`(pc-or* ,(cdr pred) ,var))
('and
`(pc-and* ,(cdr pred) ,var))
('lambda
`(funcall #',pred ,val))
(t
`(funcall #'(lambda (_) ,pred) ,var))
)
`(funcall #',pred ,var)))
(defmacro pc-or* (pred var)
(if pred
`(or (pc* ,(car pred) ,var)
(pc-or* ,(cdr pred) ,var))))
(defmacro pc-and* (pred var)
(if pred
`(and (pc* ,(car pred) ,var)
(pc-and* ,(cdr pred) ,var))
t))
(defmacro pc (pred var)
`(if (not (pc* ,pred ,var))
(error (format nil "不正なデータ型です: ~A : ~W" ',pred ,var))
t))
- (pc (and consp (= 2 (length _))) '(a b))
t
(pc (= 2 (length _)) '(a b c))
不正なデータ型です: (= 2 (length _)) : (a b c)
書き直してみました.今度のはどうでしょうか.
今のところ不都合無く動いていますが.
- いつの間にか、xyzzy QandAが移転。
- >>806
やる気に水を差すようでアレなんですが、作成済みでしたので。
ttp://xyzzy.s53.xrea.com/wiki/wiki.php?tips%2Fsession%A5%D5%A5%A1%A5%A4%A5%EB%A4%CBglobal-mark%A4%CE%BE%F0%CA%F3%A4%F2%C9%D5%B2%C3
>>797 のやつはヒストリ変数を使っているので外すときは
(unregister-history-variable '*gmark-history*)
を評価してください。
たいした影響はないとは思いますが、一応。
- >>795
ありがとうございます。
.xyzzyにただ貼り付けたのですが、
関数が定義されていません: lambda
と出てしまいました。
何か別の設定が必要でしょうか?
- >>812
>>2-3
- (lambda → #'(lambda かも?
- >>811
情報ありがとうございます。まだあまり試していないのですがかなりよさげですね。
しかし今初めて知りましたので、自分でも須田さんの bookmark.l を参考になんか作ってしまいました(ほとんどパクリかつ中途半端ですが(笑))。ちょっと使えないかもしれませんが、一応公開しておきます。
(provide "my-bookmark")
(in-package "editor")
(export '(bookmark-jump-to-bookmark bookmark-add-new-bookmark
bookmark-clear-all bookmark-menu
bookmark-edit-bookmark-list *bookmark-max*
*bookmark-list*))
;;; カスタマイズできる変数
(defvar *bookmark-menu-item-length* 16) ;; 引き出しに入れる個数
(defvar *bookmark-max* 400) ;; bookmark をいくつまで認めるか
(define-history-variable *bookmark-list* nil)
;;; ジャンプ
(defun bookmark-jump-to-bookmark (num filename)
(let* ((buffername (file-namestring filename))
(menu-item (cons num filename))
n)
(if (find-buffer buffername)
(switch-to-buffer buffername)
(find-file filename))
(goto-line num)
(goto-bol)
))
;;; リストの操作
;; utility
(defun get-buffer-filename ()
(let ((filename (file-namestring (get-buffer-file-name (selected-buffer)))))
filename))
- ;; 追加
(defun bookmark-add-new-bookmark ()
(interactive)
(let ((bookmark (cons (current-line-number) (get-buffer-file-name))))
(push bookmark *bookmark-list*)
(let ((exceed (- (length *bookmark-list*) *bookmark-max*)))
(when (> exceed 0)
(setq *bookmark-list* (nbutlast *bookmark-list* exceed))))
)
t) ;;; nbutlast (list &optional (n 1))
;;; the destructive version of butlast. If list has fewer
;;; than n elements, nil is returned and list is not modified.
;; 削除
(defun bookmark-clear-all ()
(interactive)
(setq *bookmark-list* nil)
t)
;; ソート
(defun bookmark-sort-bookmark-list-by-filename ()
(interactive)
(setq *bookmark-list* (sort *bookmark-list* #'string-greaterp :key #'cdr))
(unless (eq *last-command* 'minibuffer-exit) ;; ― ¶要検討¶
(bookmark-menu)))
;;; 編集
(defvar *bookmark-edit-mode-keymap* nil)
(unless *bookmark-edit-mode-keymap*
(setq *bookmark-edit-mode-keymap* (copy-keymap *lisp-mode-map*))
(define-key *bookmark-edit-mode-keymap* #\C-g 'bookmark-save-bmlist))
- (defun bookmark-edit-bookmark-list ()
(interactive)
(message "#\C-g で保存終了")
(set-buffer (get-buffer-create "*bookmark-edit*"))
(make-local-variable 'kept-undo-information)
(setq kept-undo-information t)
(use-keymap *bookmark-edit-mode-keymap*)
(insert "(\n")
(with-output-to-buffer ("*bookmark-edit*" (point-max))
(dolist (x *bookmark-list*)
(format t "~S~%" x)))
(goto-char (point-max))
(insert ")"))
(defun bookmark-save-bmlist ()
(interactive)
(message "変更を保存しました")
(set-buffer (find-buffer "*bookmark-edit*"))
(goto-char (point-min))
(replace-buffer "$" "" :regexp t)
(goto-char (point-min))
(setq *bookmark-list*
(with-input-from-selected-buffer (read)))
(delete-buffer (selected-buffer)))
- ;;; メニュ
(defun bookmark-menu ()
(interactive)
(continue-pre-selection)
(let ((menu (create-popup-menu))
(l (reverse *bookmark-list*)))
(dotimes (i (floor (length l) *bookmark-menu-item-length*))
(let ((popup (create-popup-menu)))
(add-popup-menu menu popup (format nil " Bookmark-~d" i))
(dotimes (i *bookmark-menu-item-length*)
(let* ((num (caar l))
(filename (cdar l))
(fn (file-namestring filename))
(menu-item (cons fn num)))
(add-menu-item popup nil (format nil "~A&~D: ~a"
(if (>= i 10)
(truncate i 10)
" ")
(rem i 10)
menu-item)
#'(lambda ()
(interactive)
(bookmark-jump-to-bookmark num filename)))
(pop l)))))
- (let ((c 0))
(dolist (b l)
(let* ((num (car b))
(filename (cdr b))
(fn (file-namestring filename))
(menu-item (cons fn num)))
(add-menu-item menu nil (format nil "~A&~D: ~a"
(if (>= c 10)
(truncate c 10)
" ")
(rem c 10)
menu-item)
#'(lambda ()
(interactive)
(bookmark-jump-to-bookmark num filename))))
(setq c (1+ c))))
(add-menu-separator menu)
(add-menu-item menu nil "しおりをはさむ(&N)"
#'(lambda ()
(interactive)
(bookmark-add-new-bookmark)))
(add-menu-item menu nil "ファイル名でソート(&S)" 'bookmark-sort-bookmark-list-by-filename)
(add-menu-item menu nil "編集する(&E)" 'bookmark-edit-bookmark-list)
(add-menu-item menu nil "すべて削除(&C)" 'bookmark-clear-all)
(track-popup-menu menu)))
;;; キーバインディング
(global-set-key '(#\C-c #\b #\n) 'bookmark-add-new-bookmark)
(global-set-key '(#\C-c #\b #\c) 'bookmark-clear-all)
(global-set-key '(#\C-c #\b #\m) 'bookmark-menu)
(global-set-key '(#\C-c #\b #\e) 'bookmark-edit-bookmark-list)
(global-set-key '(#\C-c #\b #\s) 'bookmark-sort-bookmark-list-by-filename)
(global-set-key #\S-F2 'bookmark-menu)
- ちなみにファイル名が無いバッファでC-c b nするとエラーになりますが、その場合はC-c b cで復帰できます。
- >>814
エラーは出なくなりましたが、
howm関連のバッファタブが開いてしまいます...
- http://www.auction.co.jp/pa1.asp?M=114374
- >>821
howm 使ってないのでよく分からないが、howm 関連のバッファを作ってから後に
バッファ名を変えても非表示にはならないよ。
howm 関連のバッファが作られる前にバッファ名を変更しておけばできるはず。
- http://www.auction.co.jp/pa1.asp?M=114374
- howm-view-contents-open あたりの find-file をどうにかする?
どうするのかはしらない
- 815から819の修正です。
@815の (defun bookmark-jump-to-bookmark (num filename)
の2行下の (menu-item (cons num filename)) を削除。
A815の (defun get-buffer-filename ()
からその2行下の filename)) までを削除して、
(defun get-string-from-line ()
(let ((str (buffer-substring
(save-excursion (goto-bol) (point))
(save-excursion (goto-eol) (point)))))
str))
に差し替え。
B816の (defun bookmark-add-new-bookmark ()
からその8行下の t) ;;; nbutlast (list &optional (n 1)) までを削除して、
(defun bookmark-add-new-bookmark ()
(interactive)
(if (get-buffer-file-name)
(let ((bookmark (cons (cons (current-line-number) (get-buffer-file-name))
(abbreviate-display-string
(string-trim '(#\SPC #\TAB #\ ) (get-string-from-line)) 54 nil))))
(push bookmark *bookmark-list*)
(let ((exceed (- (length *bookmark-list*) *bookmark-max*)))
(when (> exceed 0)
(setq *bookmark-list* (nbutlast *bookmark-list* exceed)))))
(plain-error "ファイル名がないよん。"))
t)
に差し替え。
- C818の (defun bookmark-menu ()
の9行下の (let* ((num (caar l))
からその3行下の (menu-item (cons fn num))) までを削除して、
(let* ((tmp (caar l))
(num (car tmp))
(filename (cdr tmp))
(str (cdar l))
(fn (file-namestring filename))
(num2 (format nil "~A" num))
(menu-item (concat fn "\t|" num2 "|" str)))
に差し替え。
D819の上から3行目の (let* ((num (car b))
からその3行下の (menu-item (cons fn num))) までを削除して、
(let* ((tmp (car b))
(num (car tmp))
(filename (cdr tmp))
(str (cdr b))
(fn (file-namestring filename))
(num2 (format nil "~A" num))
(menu-item (concat fn "\t|" num2 "|" str)))
に差し替え。
以上です。
- ●修正点
・ファイル名が無いバッファで C-c b n するとメニューが生成されなくなるエラーを修正。
・しおりをはさむ際、メニューの最後に論理行の行頭から行末までの文字列を追加する(行頭・行末のスペース・タブは追加しない、長すぎる場合は中間を省略)ように変更。
●インストール方法
1. 815の (provide "my-bookmark") から、819の最後の (global-set-key #\S-F2 'bookmark-menu) までをコピーして上記の修正を加えた上で、~/site-lispに my-bookmark.l という名前で保存する。
2. 必要に応じてバイトコンパイルする。
3. .xyzzy または siteinit.l に以下の記述を追加する。
(require "my-bookmark")
4. siteinit.l に記述した場合は xyzzy を再ダンプする。
5. 以前のものを使用していた場合には、C-c b c で以前のリストを削除して下さい。
●使い方
・C-c b n またはメニュー(S-F2 または C-c b m で表示)の「しおりをはさむ(N)」を選択すると、現在のバッファのファイル名・行番号(論理行)・行頭から行末までの文字列を取得してメニューに追加する。
・メニューからしおりを選択すると該当ファイルの該当行にジャンプする。
・C-c b e またはメニューの「編集する(E)」から編集画面を開いて不要な行を削除した後、C-g で、編集終了。
- >>792
Wiki にあげようよ。
- 添削お願いします。
(defun path-complete ()
(interactive)
(let ((bpt (save-excursion (goto-bol) (point))) (curp (point))
start end dir dir1 str files)
(save-excursion
(skip-chars-backward "^\\/")
(setq end (point))
(scan-buffer "\\(~/\\|[A-Za-z]:/\\|[A-Za-z]:\\\|//[A-Za-z]/\\)"
:regexp t :reverse t :case-fold t :limit bpt)
(setq start (point))
(setq dir (buffer-substring start end))
(when (< 1 (length dir))
(cond
((equal (substring dir 0 1) "~")
(setq dir1 (concat (si::system-root) (substring dir 2 nil)))
(setq str (buffer-substring end curp))
(when (and dir1 (file-directory-p dir1))
(setq files (directory dir1 :wild (concat str "*")))))
- ((equal (substring dir 0 2) "//")
(setq dir1 (concat (substring dir 2 3) ":" (substring dir 3 nil)))
(setq str (buffer-substring end curp))
(when (and dir1 (file-directory-p dir1))
(setq files (directory dir1 :wild (concat str "*")))))
((equal (substring dir 2 3) "\\")
(setq dir1 (map-backslash-to-slash dir))
(setq str (buffer-substring end curp))
(when (and dir1 (file-directory-p dir1))
(setq files
(mapcar (function map-slash-to-backslash)
(directory dir1 :wild (concat str "*"))))))
(t
(setq dir1 dir)
(setq str (buffer-substring end curp))
(when (and dir1 (file-directory-p dir1))
(setq files (directory dir1 :wild (concat str "*")))))
)))
(when files
(popup-list files #'(lambda (x)
(if (not (or
(string= "/" (buffer-substring (point) (1- (point))))
(string= "\\" (buffer-substring (point) (1- (point))))))
(delete-region (point) (save-excursion (skip-syntax-spec-backward "^_")(point))))
(insert x)
(refresh-screen)
(if (file-directory-p (concat dir1 x)) (path-complete)))))))
- NetInstallerでインスコできるcomplete-pathとどう違うんだ?
- >>829
これでいいのかわかりませんが、一応 Wiki に815〜819、826〜827をさらに修正したものをあげてみました。
- http://www003.upp.so-net.ne.jp/rex/
ここのdexplore.l使ってる人いますか?
うちでは次のようなエラーが出て使えないんです。
---------------------------
.NET Framework SDK ドキュメント
---------------------------
このダイアログ ボックスのヘルプはありません。
このアプリケーションのヘルプ コレクションがシステムに
インストールされているかどうか確認してください。
---------------------------
OK
---------------------------
;;; siteinit.l
(require "dexplore")
(setf dp:*default-help-collection* "ms-help://ms.netframeworksdkv1.1.ja")
(define-key ed::*csharp-mode-map* #\F1 'dp:search-selection)
- >>786
> howmに関するバッファタブがにツールバーを占有しているのですが、
> どうすればhowm関係のタブは表示しないように設定できるでしょうか。
「howmに関するバッファ」をどこまでとしているのかわかりませんが、
howm-init.l に以下のように書いておくことで得られる動作はどうですか?
(setq howm-menu-name-format " *howmM:%s*")
(setq howm-view-summary-name " *howmS:%s*")
(setq howm-view-contents-name " *howmC:%s*")
- >>832
complete-pathはdo-completionでリストをポップアップするだけじゃない?
C:/と打ったあと、ファイルに当たるまで(C:/Program Files/Xyzzy/.xyzzy)
ディレクトリを掘り下げていきたいんだけど。
- 例えば perl-mode で補完じゃなくタブをそのままワンキーで入れたいのですが、どうすればいいのでしょう?
(add-hook 'ed::*perl-mode-hook*
#'(lambda ()
(setq *perl-indent-column* (tab-columns))
(make-local-variable 'indent-tabs-mode)
(setq indent-tabs-mode t)))
↑こんな感じではダメでした。
text-mode みたいに、どこに居る場合でも tab 押したらそのまま TAB が欲しいのです。
- >>837
text-modeのときに「ヘルプ」→「キー割り当て一覧」をしてみると、
TABにはself-insert-commandが割り当てられていることが分かります。
ということで、例えばこうとか。
(add-hook 'ed::*perl-mode-hook*
#'(lambda ()
(define-key ed::*perl-mode-map* #\TAB 'self-insert-command)))
- >>835
教えていただいたとおり書いたhowm-init.lをxyzzy.exeと
同じディレクトリに置いたところ、期待通りの動作をしました。
ありがとうございました。
- xyzzy本体のソースファイルが公開されていると聞いたんですが、URLを教えていただけませんか?
作者さんに連絡とる必要があるとか、そういう配布方法なのかな?
- >>840
>>156-159
- ありがとうございました。既出でしたか、すみませんでした。
MLでそのURLは見たのですが、ふざけているのかと思いそのまま見過ごしてしまいました。
- >>836
うーん、自分の環境だと同じ設定方法で使えてます。
;;; siteinit.l
(require "dexplore")
(setf dp:*default-help-collection* "ms-help://ms.netframeworksdkv1.1.ja")
(define-key ed::*csharp-mode-map* #\F1 'dp:search-selection)
使えていない方多いのでしょうか…
- >>838
サンクス!!
助かりました。
- shell3で
1. サブプロセスが走っているときは
C-nで'shell-history-next
2. exitしたら、
C-nで下の行へ移動
という設定は可能でしょうか。
- >>845
(process-status (buffer-process (selected-buffer)))
の値を見て条件分岐してやればできそう。
- xyzzy の正規表現で日本語の全角文字一文字にマッチするのとかあったような気がしたんですが、探してみても見つかりません。
おしえてください。
- >>847
\sj
これかな?
referenceの「正規表現の表記」及びskip-syntax-spec-forwardを参照。
- .xyzzyの記述について教えてください。バージョンは0.2.2.233です。
(defun upcase-before-word()
(interactive)
(backward-word)
(upcase-word))
(define-key ctl-c-map #\u 'upcase-before-word)
.xyzzyに以上の記述をしたら「変数が定義されていません: ctl-c-map」という
ダイアログが出ます。
M-x apropos ctlとすると、*Help*バッファには「ctl-c-map」というのが一行目に
出てきます。
ctl-c-mapをctl-x-mapに変えるとダイアログは出てきません。
何が悪いんでしょうか?
- C-cの後に何か割り当てるなら、
(define-key spec-map #\C-b 'hoge)
とやってるが(これでC-c C-bでhoge実行)。
バージョンは0.2.2.228
最近のバージョンは違うんだろうか
- てす
- http://auction.livedoor.com/detail?id=10287
- >>849
(global-set-key '(#\C-c #\u) 'upcase-bofore-word) でもOK
- >>849
> .xyzzyに以上の記述をしたら「変数が定義されていません: ctl-c-map」という
> ダイアログが出ます。
> M-x apropos ctlとすると、*Help*バッファには「ctl-c-map」というのが一行目に
> 出てきます。
> ctl-c-mapをctl-x-mapに変えるとダイアログは出てきません。
> 何が悪いんでしょうか?
誤って ctl-c-map を使用しているのが悪いです。
上記で「ctl-c-map」が一行目にでてくるのは、define-key の記述の中で
ctl-c-map を誤って使用した際に、symbol が登録されたからです。
通常であれば、M-x apropos ctl では以下が出力されます。
----------------------------------------
ctl-x-4-map
ctl-x-4-prefix
ctl-x-6-map
ctl-x-6-prefix
ctl-x-map
ctl-x-prefix
mouse-ctl-left-motion
mouse-ctl-left-press
----------------------------------------
- >>850>>853>>854
ご教授ありがとうございます。
ダンプファイルを作り直したら、M-x apropos ctlの結果が>>854の通りになりました。
自分の間違い記述がずっと影響してたんですね( ´д`)
よい勉強になりました。感謝!(・∀・)b
- 質問です。
ActivePerlをインストールしてPATHも通しました。
コマンドプロンプトでperl -vしたらちゃんと
This is Perl, v5.6.1 built for 〜〜と表示されます。
が、xyzzyでM-x shellでperl -vしても
'perl' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されてません。
と返ってきます。
どうすればxyzzyでperlコマンドを実行できる様になりますか?
- echo $PATH を表示させてみる
- コマンドプロンプトからPATHを見てみるとC:\Perl\bin\; を確認出来ましたが
xyzzyのM-x shellでPATHを見てみるとC:\Perl\bin\;がありませんでした。
むむむ、これはどういう事でしょう。.xyzzyに何か書き込むのかなあ・・・。
- >>858
とりあえず
・OS
・PATHを追加した方法
を書いてみるべし
- 自己解決しました。
>>859さんの・PATHを追加した方法と言うのでぴんと来て以下の事を試してみました。
ActivePerlをインストールする時にインストーラがPATHを追加してくれる様に
チェックボックスにチェックを入れたのですが、これがまずかったのかと推測。
一度マイコンピュータを右クリックしてプロパティの環境変数のPATHからC:\Perl\bin\;を消去。
再起動後、手動で環境変数のPATHへC:\Perl\bin\;を追加。そして再起動。
これでxyzzyのM-x shellでコマンドプロンプトからperlコマンドを打てる様になりました。
スレ汚し大変申し訳ありませんでした。
- emacs だと Ctrl 5 f で新しいウィンドウでファイルを開けるんだけど
xyzzyだと左右に分割されちゃうよ!
新しいウィンドゥで開くにはどうすればいいの?
- C-x 4 f
- >>862
サンクス
と思ったけど、こんどは上下に分割されちゃいました。
- >>861
emacs でいうところの frame は xyzzy には無い為、同じことはできません。
しいて言えば、xyzzy.exe にファイルを渡す lisp コードを書くことでしょうか。
- emacsでいうところのフレームと,xyzzyでいうところのフレームって
全然違うものなの?
- 全然違う。
xyzzyのフレーム(もどき)はEmacsで言うとelscreenなんかに近い。かな。
- xyzzyかmeadowのどちらを導入するか悩んでます。
調べたところではxyzzyはかなり軽くてwindowsとの親和性も高いそうですが、
一方meadowはemacsとかなり近いためにそれはそれの便利さがあるそうです。
皆様がmeadowではなくxyzzyを利用されるのは、どのような理由からでしょうか?
- (前略)行けばわかるさ ありがとう〜
- >>867
そこまで分かっているのに
なぜ質問するんだい?
- xyzzyからtest
- >>867
Windowsアプリとしてxyzzyの方がはるかに完成度が高いから。
- html+-modeを使っています。
htmlファイルの文字コードをEUCに固定したいんですが、拡張子別に
保存する文字コードを指定できたりしますか?
- >>872
拡張子別と言うわけではありませんが、こんな感じでどうぞ。
(1)(defvar *html+-detect-charset* t)とする
(2)html本文中でcharsetをちゃんと指定する。<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
これでファイルに漢字などが含まれていなくても意図する文字コードで開かれる筈。
- >>873
こんな機能あったんだ. 全然コメント読んでなかったので知らなかった.
横からありがとん.でも defvar はあんまりよくない気がする.
(add-hook '*html+-mode-hook* #'(lambda () (setq *html+-detect-charset* t)))
とするか
(if (boundp 'ed::*html+-detect-charset*)
(setq ed::*html+-detect-charset* t)
(defvar ed::*html+-detect-charset* t))
した方が安全だと思う.この辺の違いを分かった上で defvar 使うならそれはそれでありだけど.
- >>873
サンクス!
でも (defvar *html+-detect-charset* t) 書いたら
名前が衝突するためにexportできません:editor::*html+-detect-charset*
とか怒られました。
- ホイールボタンクリックで "" クォーテーションの間を選択するようなことは出来ますか?
- >>876
(defun dquote-selection ()
(interactive)
(goto-last-mouse-point)
(unless (scan-buffer "\"" :reverse t :tail t)
(goto-char (point-min)))
(start-selection 2 t)
(unless (scan-buffer "\"" :no-dup t)
(goto-char (point-max))))
(global-set-key #\MBtnUp 'dquote-selection)
大体こんな感じでしょうか。
これを書いてて、goto-last-mouse-point関数をはじめて知った。
- >>872-875
html+-modeのことなら、それ用のスレがあるyo
xyzzyでタグ打ってる人の数 →
http://pc5.2ch.net/test/read.cgi/hp/1005046309/l50
- xyzzyをどれかのキー一つで起動するにはどうすればよいでつか
- >877
ウホ、dクス
- >879
繭とか。
- バックアップファイルを決められたディレクトリに一括管理することってできないの?
- >>882
「まずはぐぐれ,話はそれからだ」 は名言だとおもふ
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=xyzzy+%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97+%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA&lr=
http://www.netlaputa.ne.jp/~henmi/lisp/xyzzy/
- >>883
ε ⌒ヘ⌒ヽフ
( ( ・ω・)
しー し─J クス
検索ワードにディレクトリをいれ忘れてた・・・
- 素朴な疑問で既出かもしれんが、最近 verup が無いのは何故?
- >885
特にバグも無いようだし、新しい機能はlispで書いてねってことだろうよ。
- >>888
今まで月一でバージョンアップしてきたのがパタッと止まったのには
なにかあるにちがいない。間違いない。
- あるスクリプトでテキストファイルを生成したのですが、特定の行だけ
末尾に行番号や[EOF]と同じ色で^Mという文字がついています。
ファイル自体はeuc-jp,lfです。
気になってしょうがないのですが、xyzzyでは行末の^Mとは何を表しているのでしょうか?
多分改行コード関係だと思うのですが…。
- >>888
CR。スクリプトの改行コードがCR LFになってるんじゃないかな。
手っ取り早い方法はスクリプトの文字コードもeuc-jpでlfにしちゃうこと。
明示的に改行コードを指定することもできるはずなので、そっちの方が確実かな?
どっちにせよ多少の手直しは必要だと思う。
- >>887
もう飽(ry
- 亀井氏は現在、linux版xyzzyことkamecsを製作中です。
- S 式のなかで一時的に変数の値をおきかえるように
例
(let ((buffer-read-only nil))
(declare (special buffer-read-only))
--)
S 式のなかで一時的に関数を別のものにしたいのですが、
どんな感じに書くのでしょうか?
例えば、
(defun foo ()
(msgbox "foo"))
の時、
(let ((def (symbol-function 'foo)))
(setf (symbol-function 'foo)
#'(lambda () (msgbox "hoo")));foo の定義を書きかえる
(setf (symbol-function 'foo) def);foo の定義を元に戻す
)
のような処理をもっとスマートに書きたいのですが。
- リファレンスに取り込み保留の所を見て書いた。
labelsとの違いはあの説明じゃわからんな。
(defun foo ()
(msgbox "foo"))
(flet ((foo () (msgbox "hoo")))
(foo))
- >>893
トンクスです。
flet というのを知りませんでした。謝謝
- 一応書いておくと,
fletもlabelsも局所的な関数定義をするためのものだけど,
flet は,関数定義内での関数呼び出しにfletで宣言した関数を使わない.
labels は,関数定義内での関数呼び出しにlabelsで宣言した関数を使う.
簡単にいうと,flet で宣言した関数は再帰呼び出しが使えず,labelsで宣言した
関数は再帰呼び出しが可能.
- >>891
O.o
- >>891
> 亀井氏は現在、linux版xyzzyことkamecsを製作中です。
>
ホントですか
- ホントなら開発に協力できると思う。微力ながら。
- つーか、亀井さんは、Common Lispへの準拠度を上げる気はあるのかな?
- だれでもいいから CLOS を xyzzy の構造体の上なり,C++ で書かれた
ソースコードに手を加えるなりして実装してほしい.
Common Lispのライブラリって大抵 CLOSがかかわってるからなぁ
- KaTeXをインストールしたのですが、tab入力をインデントにしようと思い、
C言語モードの書式を真似て
(define-key KaTeX-mode-map* #\tab 'self-insert-command)
ってな具合にしてみたのですが、エラーを出してしまいます。
どなたか助言をおねがいします。
- >>901
KaTeX使ってないけど、
× KaTeX-mode-map*
○ *KaTeX-mode-map*
じゃないの?
> ってな具合にしてみたのですが、エラーを出してしまいます。
> どなたか助言をおねがいします。
どういうエラーが出たのかきちんと書くべし。
- ビジネスnews+がみれないのです
- 移転したからじゃ?
- >>900
>だれでもいいから CLOS を xyzzy の構造体の上なり,C++ で書かれた
>ソースコードに手を加えるなりして実装してほしい.
今ちょうど、CLOSをMOPに沿って実装しているので、完成したらxyzzyへ
移植するかも。構造体を利用するやり方です。ただし、symbol-macroletが
xyzzyに無いので、with-slots, with-accessorsはダメな予感。
みんな、こういう自作のパッケージを発表するのはどこでやってるの?
やっぱ、メーリングリストですか?
- >>902
焦ってたもので、情報が抜けてました。お詫びします。
*KaTeX-mode-map* だと、 「変数が定義されていません*KaTeX-mode-map*」
ed::*KaTeX-mode-map* だと、「変数が定義されていません editor::*KaTeX-mode-map*」
elisp::*KaTeX-mode-map* だと、「変数が定義されていません eslip::*KaTeX-mode-map*」
となってしまいました。
- >>906
(add-hook 'el::katex-mode-hook
#'(lambda ()
(define-key el::*KaTeX-mode-map* #\TAB 'self-insert-command)))
413 を参照。
- >>905
Wikiがありますよ。
- >>905
まってます
- >>908
なるほど、ありがとうございます。
それはそうとWebでは公開してあるんですけど、すでに書いてあるライブラリを、
ここで宣伝しときます。Xyzzyで、Common Lispの拡張loop構文を使えるようにするものです。
好事家しか興味ないかもしれませんけど、何かの移植時に役に立つかな。
http://homepage1.nifty.com/bmonkey/lisp/xyzzy/loop.lzh
Xyzzy Wikiの使用法がまだ分からないので、書き込んで無いんですが、
Wikiで、Xyzzyの100%Common Lisp準拠プロジェクトなんてどうでしょう?
- >>907
ばっちりTABインデント出来ました、ありがとうございます。
今度からは、もうちょっと頭を使ってスレ検索しようと思います。
- 100%準拠ってできるの?
- >>912
> 100%準拠ってできるの?
現状では、ユーザが Lisp レイヤで出来る範囲では無理。
引っかかるのは、一部の特殊オペレータが実装されていないってところと、
あと declare 回りもかな。ぱっと思いつくところだと。
まあぶっちゃけ 100% 準拠してなくても……
clisp あたりなんかも完全に準拠できてるわけじゃなかった気がするし。
準拠度が上がるのが有難いのは確かだけれど。
- >>912
> 100%準拠ってできるの?
>>913さんがおっしゃっているように、現状ではC++に手を入れないと辛い
部分もありそうです。景気つけに言ってみました。
Lispレイヤですぐにできそうなのは、マクロ類の一部です。
全部は調べていないのですが、たしかecaseが無かったので、そのような
マクロで足りないのがまだあるのではないかなと思いました。
とりあえず、今、俺が作業するとしたら、そういうマクロを調べて、macros.l
としてまとめることかな。
ただ需要はあるのでしょうか? XyzzyはWindowsのときしか使わないので自分として
の動機付けはいまいちといったところです。
みなさん、Common Lisp Hyper Specとか使っています?
「よろずや」さんが、辞書引き用のhyperspec.lを公開してますけど。
ttp://www.geocities.co.jp/SiliconValley-SanJose/7474/LispDevelopEnvironment.html
それともxyzzy用のreferenceが主流かな?
- BMP以外のunicode文字の入力and表示ができないんだけど、
改造のポイントの情報を教えてくださいな。
- 2ch-modeで就職板が開けないのですが、なぜでしょう?
他の板(Windowsとか)はOKなのです。。。
- >>916
移転したんじゃない?
板リスト再読込してみたら。
- >>916
君以外みんな就職決まったから。
- >>917
再読込はやってみたんですが、ダメです。
ちなみにブラウザではきちんと表示されます。
Windows2000
xyzzy0.2.2.233
- >>919
移転したんじゃない?
スレリスト再読込してみたら。
- 便乗質問。鯖移転などの場合、板一覧リストを取得することで是正するわけですが、
大抵半日ほどのタイムラグがあります。
これを手動で書き換えたいのですが(大抵xxx4.2ch.net→xxx5.2ch.netなどになる場合が多いので)
スレが数多くあると手作業では大変ですし、訂正し忘れや関連部分に破綻が生じる可能性もあります。
どのようにしたらスマートに解決できるか、識者の方ご存知でしたらご教授願います。
- >>921
半日待って是正するのがスマートな解決策。
- >>915
> BMP以外のunicode文字の入力and表示ができないんだけど、
> 改造のポイントの情報を教えてくださいな。
ML で聞くべきです。
- >>921
C-Rでbbstable取りに行って自動で書き換えるという動作を一部改編して、
古いURL入力ダイアログ → 一致するものがあれば新しいURL入力ダイアログ
としてtableを書き換えさせれば行けると思う。でも詳しいLisp書くはめどいので他の識者に譲る。
- バッファタブをダブルクリックしたらバッファを閉じるようにしたいの
ですが,そのようにできないのでしょうか?
- >>925
ぐぐれ
- >>926
愚愚っても見つかりません.
某所のnamazu検索でも それらしいものはヒットしません.
何も分からなかったので,何か知っているなら教えてください.
この問題,lispだけでは解決できない問題なのかと思っていたけど.
- >>926
925じゃないのですがぐぐっても出てこないのでキーワード教えてください。
- >>927, 928
現状では無理。諦めたほうがいいよ。
- >>925
妥協案
(global-set-key #\MBtnDown 'mouse-left-press)
(global-set-key #\MBtnUp #'(lambda () (interactive)
(close-selected-buffer)))
- >>925
(defun close-buffer-dblclick ()
(interactive)
(let ((click (mod *last-mouse-click-count* 6)))
(if (= click 2)
(close-selected-buffer))
(mouse-nop)))
(global-set-key #\LBtnUp 'close-buffer-dblclick)
こんなのじゃだめですよね。
バッファタブをクリックというのを取得できればいいんですが。
ところで、Grep結果から行単位(これは nazoking さんの、grep-mode.l(http://nazoking.s31.xrea.com:8080/k/grep-mode.l)で可能です)
ではなく、テキスト単位で絞込み検索をかけることは可能でしょうか。
つまり、Grep結果に表示されているファイルだけを対象にして、別のパターンで再度Grepをかけるというようなことをしたいのです。
Grepで1000件以上もヒットすると少し悲しくなるので、お分かりの方お願いします。
- >>925
> バッファタブをダブルクリックしたらバッファを閉じるようにしたいの
> ですが,そのようにできないのでしょうか?
あなたが winapi を駆使したコードを書けばできるのではないでしょうか?
- >>930,931
ども.
やはり無理でしたか.
ホイールクリックという代替案に当分の間 お世話になろうと思います.
ありがとうございました
> つまり、Grep結果に表示されているファイルだけを対象にして、別のパターンで再度Grepをかけるというようなことをしたいのです。
たぶん,まだだれもそういった lisp を公開してないと思います.
でも *grep* バッファの内容と grep のヒストリから,ヒットしたファイルに対して
もう一度 grep をかけることはできます.ただgrepのファイル名指定にディレクトリ名を
含ませることはできないので,かなり面倒だと思います.
cygwinに含まれているgrepについては全然知りませんが,ひょっとしたらそちらを使うと
楽に作れるのかもしれません.
とりあえずは ggrep or エクスプローラの検索 or grep-mode というのが,妥協点でしょうか.
ここまで書いておいてからggrepのコードをながめ,コーディングレベルの高さに感銘しつつ思ったことは
いうほど難しくは無いけど,やっぱり楽じゃないです.
>>932
winapiについては全くの無知なんですが,winapiを使えば xyzzy のバッファタブに対するダブルクリック
というイベントを捕まえることってできるんですか?
そういったことをやっている類似のコードがあれば参考にできるんですが現状では知らないのです.
winamp.l とかは,xyzzyから一方的にイベントを送り,場合によってはその結果をもらうといった処理を
しているのは分かるんですが.
- >>931
(1)*grep-directory-history* と grep バッファから、
Grep結果に表示されているファイルのリストを作成する関数。
(2)ファイルのリストに対して grep をかける関数。
を作ればよいのでは。
(1)は簡単。
(2)についても grep.l の grep1(buffer に対してgrep をかける) とか
参考にすれば出来るのでは。
そんなに難しくないと思いますよ。
- >>933
>ホイールクリックという代替案に当分の間 お世話になろうと思います.
ここの過去ログに既出ですが、こんなのもありますよ。
;閉じるボタンの追加
(add-hook '*init-app-menus-hook*
#'(lambda ()
(add-menu-item *app-menu* 'close-box :close-box
#'kill-selected-buffer)))
>でも *grep* バッファの内容と grep のヒストリから,ヒットしたファイルに対して
>もう一度 grep をかけることはできます.ただgrepのファイル名指定にディレクトリ名を
>含ませることはできないので,かなり面倒だと思います.
>cygwinに含まれているgrepについては全然知りませんが,ひょっとしたらそちらを使うと
>楽に作れるのかもしれません.
私もcygwinやemacsは全く知らないのですが、Grep結果からF10でファイルを開けているので、
何らかの変数にディレクトリ名を含めたファイル名を保存していると思われるため、
絶対できないということはないと思います。
>ここまで書いておいてからggrepのコードをながめ,コーディングレベルの高さに感銘しつつ思ったことは
>いうほど難しくは無いけど,やっぱり楽じゃないです.
確かにggrepはよく出来ていますよね。OR検索についてはggrepで問題ないのですが、
やっぱり絞込みは欲しいので、できるかどうかわかりませんが自分で作ってみようかと思います。
しかし、grep.l、grepd.l を見た限りではかなり複雑なので(glob.l も絡んでいるようです)相当時間がかかりそうですが。
- >>934
レスを書いている間に書き込んで頂いたようなので重複しますが、
参考にさせていただきます。
- >931
(1)grep時に既存のgrep結果を消去しない
(2)grep結果バッファからgrepを行った場合、カーソル行と履歴からファイル名・フォルダ名を読み取り
これができれば何とかなるかと。
- >>937
とりあえず今考えているのは *grep* バッファの先頭の : までを取り出して、
同一ファイル名の場合にはリストに追加せずに、*grep-directory-history* の car 部と結合させて
リスト化しようということです。
さっそく *grep* バッファのリスト化という所でつまづいています。
私xyzzyを使い始めて3ヶ月弱で(MLには今日入会しました)プログラミングも素人同然なので、
いずれにしてもかなり時間がかかると思います。
- >>931
http://web.sfc.keio.ac.jp/~t01450ms/wiki/wiki.php?%C6%FC%B5%AD%A4%C3%A4%DD%A4%AF%2F2004-05-15
- >>939で頂いた情報と grep.l、grepd.l を基にして、
Grep結果に表示されているファイルを対象に再度GrepをかけるというLispが出来ました(多分)が、
需要あります?
あればwikiにあげさせてもらいますけど。
- >>940
大いにあります.upおねがいします
- >>941
暫定版ですが、とりあえず動くようなのでupしてみました。
今手直し&多少の機能追加検討中です。
なにかおかしなところがあったら指摘たのみます。
- *regrep*バッファからregrepはできんの?
- >>943
まさに、それが検討中の機能だったのですが、
再びupしましたので今度はできるようになったと思います。
- ggrep キタ──────────(゚∀゚)──────────!!
変更履歴に AND 検索の修正が含まれてますが, このAND指定って
1行に含まれる単語の指定ですか?
- せっかく書いたのに無駄になった(T_T)
- 勉強になったからいいじゃないか。何よりの宝だ。
- >>946
せっかくだからここに貼ってみては如何でしょう。
あまり長いとあれかもしれませんが。
- 931さんじゃないのかなと思ってみたり
- ;;バックアップファイルを指定したフォルダに保存する
(require "backup")
(setq *backup-directory* "D:/Program Files/Xyzzy/backup-files")
(setq *hierarchic-backup-directory* t)
とsiteinit.lに記述したんですが指定のフォルダにバックアップファイルが作られません。
おまけに#hoge#とかいうよく分からないファイルもできてしまいます。
- >>950
siteinit.lcを削除したあと、xyzzyからbite-compile-fileでsiteinit.lからsiteinit.lcを再生成する。
そのあとxyzzy.exeと同じフォルダにある、ダンプファイルを削除してみた?
- すいません。
バックアップファイルを作るのチェックが外れてました・・・。
- ども。
>>945
> 変更履歴に AND 検索の修正が含まれてますが, このAND指定って
> 1行に含まれる単語の指定ですか?
です。AND も OR も一行内のマッチについてです。
>>946
ダイアログ内の収まりがよさそうだったので ggrep-dialog にも機能追加
してみました。
無駄なことなんてそうそうないですよ。
私のてけとー拡張スキルも日ごろの調査/編集効率に直結してますし。
何が役に立つのかよくわからない世の中です。
- 改行を全て吹っ飛ばすlispを熱望してみる
- >>954
こんなの?
(defun newline-all-delete ()
(interactive)
(goto-char (point-min))
(while (scan-buffer "\n+" :regexp t)
(delete-region (match-beginning 0) (match-end 0))))
- >>955
> (defun newline-all-delete ()
やっぱり delete-all-newline で。
- >>955
うおー
さんくすこ
糞みたいな大量のHTMLをJSに組み込みのに必要だった
マジthx
- >>954
replace-stringを使うべし
- Λ
↑
この文字、ギリシャ文字なんですが、このレスをブラウザで表示さ
せて、xyzzy にコピーアンドペーストすると、文字が化けます。文
字化けを無視して保存させて開きなおすと文字は元に戻るんですが、
2ch-mode で文字化けしたまま送信すると、さらに別の文字に文字
化けします。
この現象はどういう理屈で起こるんでしょう…
- >>959
参考にもならないかもしれないけど、うちでは大丈夫だった。
フォントはMSゴシック。
原因はクリップボードエンコーディングとかかなあ?
- >960
レスありがとうございました。自分だけなのか…('A`)
ちなみにフォントは自分もMSゴシックです。クリップボードエン
コーディングは Shift_JIS でした。OS は XP です。もう少し悩ん
でみます…
- 名前の由来はマインスイーパーの裏技のコマンドっぽい。
- Λ はラムダ
- >>961
保存して開きなおした時のエンコーディングは何なの?
sjis? euc? utf8?
- >962
それの更に元となったものがある。
ttp://en.wikipedia.org/wiki/Xyzzy
- >964
レスありがとうございます。
>保存して開きなおした時のエンコーディングは何なの?
sjis です。バイナリエディタで調べたところコードは 0x83a9
で、きちんとギリシャ文字になっているようです。
- 2ch-modeで、名前欄やIDから検索・抽出はできないのでしょうか。(/のような感じで)
- >>967
あなたは何を調べ、何がわかりましたか?
- ruby-modeをつかってます。キーワード do とかを認識してくれるのはいいんすが、
doc_title みたいな変数名も do というキーワードと誤認識してしまうらしく、
自動インデントが狂ってしまいます。結構困ってるんですけど、どうしたら直せますか。
ヒントでいいのでください。ていうかみんな困ってないのかな。
xyzzy 0.2.2.233
- >>969
ruby.lの*ruby-block-beg-re*からdoを削除すれば?
calc-ruby-indentの方でdoだけを別に見てるみたいだし。
- そろそろ次スレよろ
- よっしゃテンプレチェックして俺が立ててやるから待ってろ
- 関連サイト
・謎のぺぇじ -- 作者の亀井氏のページ
http://www.jsdlab.co.jp/~kamei/
・Junk Scripts -- 2ch-mode,NetInstallerの作者服部氏のぺーじ
http://www.mirai.ne.jp/~gyo/
・XyzzyWiki
http://xyzzy.s53.xrea.com/wiki/?FrontPage
・XyzzyWiki -- NetInstaller/配布パッケージ一覧
http://xyzzy.s53.xrea.com/wiki/?NetInstaller%2F%C7%DB%C9%DB%A5%D1%A5%C3%A5%B1%A1%BC%A5%B8%B0%EC%CD%F7
・HIE no xyzzy -- 日江氏による QandA, Reference, Extended xyzzy lisp library
http://hie.s64.xrea.com/xyzzy/
・HIE no xyzzy -- リンク集
http://hie.s64.xrea.com/xyzzy/links.html
- 過去ログ
Part1 http://yasai.2ch.net/win/kako/979/979930156.html
Part2 http://yasai.2ch.net/win/kako/994/994321779.html
Part3 http://pc.2ch.net/win/kako/1001/10017/1001707308.html
Part4 http://pc.2ch.net/win/kako/1008/10080/1008057054.html
Part5 http://pc.2ch.net/win/kako/1013/10130/1013042550.html
Part6 http://pc3.2ch.net/win/kako/1019/10196/1019691417.html
Part7 http://pc3.2ch.net/win/kako/1032/10329/1032910212.html
Part8 http://pc2.2ch.net/win/kako/1041/10416/1041613876.html
Part9 http://pc5.2ch.net/win/kako/1053/10538/1053880433.html
Part10 http://pc5.2ch.net/test/read.cgi/win/1067394259/
xyzzyの使い方がわからぬやし 励ましあえ その4
http://pc5.2ch.net/test/read.cgi/software/1073911622/
========ここまでテンプレ==========
これでどうよ
- ・M.Hiroi (xyzzy Lisp Programming)[自分で lisp 書きたい人向け]
http://210.153.89.190/SiliconValley-Oakland/1680/xyzzy_lisp.html
ここも. テンプレ復活きぼん
- howm-prefixを変えるにはどうしたらよいのでせうか。
- xyzzyでタグ打ってる人の数 →
http://pc5.2ch.net/test/read.cgi/hp/1005046309/
これも入れといたら?
- >>973 は俺が無職時代に作ったテンプレなので誰か作り替えて。
xyzzy 日記とかも入れたほうがいいと思う。
ttp://web.sfc.keio.ac.jp/~t01089ti/xyzzy.html
- >>970
ありがとうございます。そのヒントを参考にして、*ruby-block-beg-re* の正規表現を書き換えました。
具体的には、
"class\\|module\\|def\\|if\\|unless\\|case\\|while\\|until\\|for\\|begin\\|do"
となっている部分を、単語の境界線を表す\\<と\\>を各単語につけて
"\\<class\\>\\|\\<module\\>\\|\\<def\\>\\|\\<if\\>\\|\\<unless\\>\\|\\<case\\>\\|\\<while\\>\\|\\<until\\>\\|\\<for\\>\\|\\<begin\\>\\|\\<do\\>"
にしてみました。快適です。
- とりあえずまとめてみた.どうだろう
関連サイト
・謎のぺぇじ -- 作者の亀井氏のページ
http://www.jsdlab.co.jp/~kamei/
・xyzzy日記 -- xyzzy初心者 必読のページ
http://web.sfc.keio.ac.jp/~t01089ti/xyzzy.html
・XyzzyWiki
http://xyzzy.s53.xrea.com/wiki/?FrontPage
・XyzzyWiki -- NetInstaller/配布パッケージ一覧
http://xyzzy.s53.xrea.com/wiki/?NetInstaller%2F%C7%DB%C9%DB%A5%D1%A5%C3%A5%B1%A1%BC%A5%B8%B0%EC%CD%F7
・Junk Scripts -- 2ch-mode,NetInstallexxrの作者服部氏のぺーじ
http://www.mirai.ne.jp/~gyo/
・HIE no xyzzy -- 日江氏による QandA, Reference, Extended xyzzy lisp library
http://hie.s64.xrea.com/xyzzy/
・HIE no xyzzy -- xyzzyの情報がかなり網羅的に集まったページをNamazu検索
http://hie.s64.xrea.com/namazu/namazu.cgi
・xyzzy Lisp Programming -- M.hiroi氏によるlispでプログラミングを楽しもうのページ
http://210.153.89.190/SiliconValley-Oakland/1680/xyzzy_lisp.html
- 過去ログ
Part1 http://yasai.2ch.net/win/kako/979/979930156.html
Part2 http://yasai.2ch.net/win/kako/994/994321779.html
Part3 http://pc.2ch.net/win/kako/1001/10017/1001707308.html
Part4 http://pc.2ch.net/win/kako/1008/10080/1008057054.html
Part5 http://pc.2ch.net/win/kako/1013/10130/1013042550.html
Part6 http://pc3.2ch.net/win/kako/1019/10196/1019691417.html
Part7 http://pc3.2ch.net/win/kako/1032/10329/1032910212.html
Part8 http://pc2.2ch.net/win/kako/1041/10416/1041613876.html
Part9 http://pc5.2ch.net/win/kako/1053/10538/1053880433.html
Part10 http://pc5.2ch.net/test/read.cgi/win/1067394259/
関連スレ
・xyzzyの使い方がわからぬやし 励ましあえ その4
http://pc5.2ch.net/test/read.cgi/software/1073911622/
・xyzzyでタグ打ってる人の数 →
http://pc5.2ch.net/test/read.cgi/hp/1005046309/
- x
- hide-ifdef-mode ってのは飾りか?
『何か分からんけど cpp がエラー』って
それだけじゃわからんぞ
- 立てれんかったよペッコリ45度
- >>983
cppは入ってますか?hide-ifdefをやるには予めプリプロセッサへの
パスがとおってないとダメです。
- 亀井さんのページしんでる?
- 新すれ
xyzzy Part11
http://pc5.2ch.net/test/read.cgi/win/1085301777/
- >>985
> cppは入ってますか?
cygwin の /usr/bin/cpp でいいんでしょうか
;; ちょっと手元に xyzzy がないんで分かりませんが
- >>966
もうみてないかもしれないけど,バッファーモードラインに表示されている
sjis:crlf とかと,バッファ右クリック - エンコード - 日本語 でチェック
されている値は一致してないことがあることに気づいた.
ここで Shift_JIS を指定していれば,変にいじった環境でなければ正しく
表示されると思うのだが.
- >989
大変ご迷惑をおかけしました…うまくコピーアンドペーストでき
ました!お付き合いしていただいた皆様、ありがとうございました…(⊃д`)
>バッファーモードラインに表示されている
>sjis:crlf とかと,バッファ右クリック - エンコード - 日本語 でチェック
>されている値は一致してないことがあることに気づいた.
確認してみましたが、sjis:crlf でした。起動直後の xyzzy に
コピーアンドペーストしていたので…
で…結局原因はなにかといいますと…ブラウザに mozilla を使
っていたからでした…_| ̄|○
IE からだと普通にコピーアンドペーストができました。ほんと
にしょうもないことでお騒がせしましてすみませんでした…(多謝)
- >>979
すでにこのページに書かれてあった。
ttp://vision.kuee.kyoto-u.ac.jp/~nob/diary/mdiary.cgi?year=2001&mon=11
2001/11/10(土)のとこね。
- >>988
cygwin ってことはコンパイラは gcc ですね。
(setq ed::*hide-ifdef-cpp* "gcc -E")
みたいです。
[xyzzy:06873] 辺りより。
- >>992
了解です。
明日チェックしてみます。
; 多分、回答は来週末になりますが…
- y
- z
- z
- y
- xyzzy Part11
http://pc5.2ch.net/test/read.cgi/win/1085301777/
- xyzzy Part11
http://pc5.2ch.net/test/read.cgi/win/1085301777/
- 1000ゲッツ
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。