2013年07月ソフトウェア350: NTEmacs スレッド 3 (623)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
vim Part4 (873)
Jane Styleの質問に誰かが答えるスレ Part20 (123)
【●●】AI RoboForm(ロボフォーム) Part10 (820)
【Dropbox/SugarSync等】オンラインストレージ総合6 (455)
2ちゃんねる用ブラウザ 「A Bone」 Vol.82 (676)
【FRD】FreeRapid Downloader Part11 (869)
NTEmacs スレッド 3
1 :2012/01/03 〜 最終レス :2013/07/07 前スレ NTEmacs スレッド 2 http://anago.2ch.net/test/read.cgi/software/1221125611/ GNU Emacs http://www.gnu.org/software/emacs/ gnupack (cygwn + emacs package) http://sourceforge.jp/projects/gnupack/ GNU emacs(x64) http://hp.vector.co.jp/authors/VA052357/emacs.html NTEmacs JP Project http://ntemacsjp.sourceforge.jp/ CVS http://savannah.gnu.org/cvs/?group=emacs Git http://savannah.gnu.org/git/?group=emacs IME パッチ http://sourceforge.jp/projects/gnupack/downloads/46325/ MinGW でビルド http://homepage.mac.com/matsuan_tamachan/emacs/BuildNtemacs.html FAQ http://www.gnu.org/software/emacs/windows/ntemacs.html EmacsWiki http://www.emacswiki.org/ Mailing Lists http://savannah.gnu.org/mail/?group_id=40 Bug Report M-x report-emacs-bug RET
2 : あけ おめ いち おつ
3 : おつかれちゃーん
4 : おいおい、落ちちゃうぞ? 前スレ最後のテンプレ案に出てきてはじめてGNU emacs(x64)の存在を知った。 mingw64でもビルドできたりしないかな……。
5 : emacs64って速いのかなぁ 整数扱える範囲も28+32bitになってたりするんだろうか
6 : most-positive-fixnumは 2305843009213693951 だった。 0x1FFFFFFFFFFFFFFF だね。
7 : そういえば gnupack はなんで cygwin 版の ghostscript を使わず windows 版の ghostscript を使ってるんでしたっけ?
8 : >>7 またスレ違いとか怒られそうだけどコメントすると, w32tex.orgで配布されているバイナリが本家と違い オプション -dWINKANJI を使えるから,です. とはいえ,cygwin版をそもそも試したことがないので, なんかメリットがあれば教えてもらえると嬉しいです. それ以前に -dWINKANJIが日本語を含んだテキストの印刷に 関係あるのかも確かめてませんが…
9 : >>8 自分もこれから試そうかな状態なんですけど、以下の記事見てる感じだとcygwin版でも日本語扱えそうな感じがしたので。 http://www.akamoz.jp/you/uni/gs-cyg-ttf.htm 単純にこっちだと cygwin 側からも使いやすくていいかなーと。 それだけじゃなんなので・・・ doc-view.el も doc-view-ghostscript-program を設定してあげれば NTEmacs でも動くんですね。 まあ例によって日本語のファイル名だと動作が怪しいんですが・・・ coding-system-for-write を cp932 にしてるのに ちゃんと動いてくれないorz
10 : 先日からGNU Emacs(x64)を使ってみてるんだが、あまりにも普通に使えるんで 拍子抜けするくらいだ。 最近の32bit版Emacsの最大バッファサイズは512MB(29bit)とかなりデカいので、 64bit版のメリットを感じる局面は少なさそうだが。
11 : オレはお小遣い帳のオーバーフローで困っていたので重宝してるぜ。
12 : どんだけ金持ちなんだよ
13 : 太陽までの距離をミリメートルで表すみたいなもんだな
14 : GNU emacs(x64)って見たところかなり良さそうだな。 ただ、試す環境がねーw 値段は16bitで足りそうだが、俺の小遣い15bit...
15 : 正直32bitメモリ空間で足りなくなるような編集してないんだけど、 64bitになって動作が早くなったとかのメリットもあるんだろか。
16 : 64bit化のメリットじゃないけど、migemoが速いメリットはあるねぇ。 あと、使える機能が少ないとかいうデメリットも特にないので、俺はすっかり 乗りかえてしまったよ。
17 : Windows7 だとショートカットのエンコーディングが UTF-16LE になってるから w32-symlinks.el そのままじゃ使えないのな・・・
18 : 64bit版ってAtokのインライン入力や シェルの日本語も問題ないですか?
19 : こんなの発見 http://alexpogosyan.com/color-theme-creator/
20 : cygwin(bash) + ansi-term がうまく動いてくれないんだけど ちゃんとうごかせてる人いる? 素の bash だと画面がガタガタになるわ fakecygpty 版の bash だと何故か入力の echo バックだけないわで・・・
21 : 64bit使ってみたけど、 32bit版と比較すると-Qで起動しても 初期状態で仮想メモリ500MB消費してるってどうなの??
22 : emacs -qで起動した時のprivate working setサイズは20MBくらいだったが……。
23 : migemo の dll 版を直接使用しているとかが関係してるんでないの?
24 : 多分ページ管理のオーバーヘッドでしょう。 x64(4Kバイトページ)では0.2%程度のメモリがページ管理に使用されるけど、 デフォルトで256G予約という事なので256G×0.2%で理論値どおり。 メモリ予約サイズは環境変数EMACS_MAX_HEAPで制御可能とどこかに書いてあった。
25 : そう言われてコミットサイズを見るとたしかに500MB超えだった。なるほど。 まあ、そのサイズ分予約されてるだけなんで、あまり気にならんが。
26 : いや、その500MBは管理用領域として実際に使っている。 デフォルト256Gというのは取り過ぎ。 環境変数EMACS_MAX_HEAPを実メモリの1-2倍程度にしとけばいいんじゃないかな。 EMACS_MAX_HEAP=8Gで37MB
27 : 実際どんな状況になったら 256G 使うような編集が出来るようになるんだろう 1年ぐらい立ち上げっぱでバッファ開きまくりとか?
28 : 動画編集.elとか。
29 : GNU emacs(x64)ってパッチは公開してくれないんだろうか…
30 : インストールすればdistfilesにまとまってると思うけど。
31 : emacs-24.0.92-20120120.exe で C-g (keyboard-quit)で落ちるのは 拙者だけでしょうか。
32 : gnupackで配布している奴? うちでは落ちなかったよ。 "GNU Emacs 24.0.92.1 (i386-mingw-nt6.1.7601) of 2012-01-20 on GNUPACK" on Windows 7 64bit
33 : ちょっと関係ないけど公式で配布しているemacsバイナリよりemacs-init-timeが0.1秒縮まったぜ。
34 : >>32 http://sourceforge.jp/projects/gnupack/releases/?package_id=10839 ページにある http://sourceforge.jp/projects/gnupack/downloads/46675/emacs-24.0.92-20120120.exe/ ですが、それって64bit版?
35 : >>34 そう、それ。 i386だから32bitじゃない?
36 : >>35 WinXPで使用32bitと思っていたが、>>32 で「on Windows 7 64bit」あったので。
37 : >>35 別のWinXP上もC-gで確実に落ちる。 >>868 24.0.90-20110929 の時と全く一緒。 24.0.90-20111008 〜 24.0.92-20111211 で問題なし。"877" で対処法あり。
38 : http://d.hatena.ne.jp/ksugita0510/20120122/p1 > 追記:configureのオプションを間違えたっぽく,C-g連打で落ちる問題が発生します.大変申し訳ありませんが,ひとまず,上記の公開は一旦停止とさせてください.
39 : >>38 emacs-24.0.92-20120123.exe でWinXPでもC-gで落ちるのがなくなりました。ありがとうございました。
40 : 教えてください。dired 上で日本語のファイル名は表示できているのです が、'f' で開こうとすると File no longer exists; type `g' to update dired buffer とか言い出す始末です。設定はいろいろ試しました。 環境 Windows 7 GNU Emacs 23.1.50.1 (i386-mingw-nt6.1.7601) of 2009-11-03 on LENNART-69DE564 (patched) 試した設定 (set-language-environment "Japanese") (prefer-coding-system 'utf-8) 上記だけだと表示もままならないので (set-language-environment "Japanese") (setq file-name-coding-system 'utf-8-dos) にすると表示はできるようになりますが、例のエラーがでます。他の coding-system も試しましたが上手くいきません。このエラー自体は、 file-exists-p が nil を返すのが問題なようです。教えてください。
41 : これでどうかな? ;;(set-language-environment "Japanese") (prefer-coding-system 'utf-8) (setq default-file-name-coding-system 'japanese-cp932-dos)
42 : ダメ文字でしょ。 回避できるようなのを file-name-handler 利用して作ったことがあるけど、 虚しくなって使っていない。
43 : ダメ文字対策はcのソースレベルでパッチ書いてる人いたけど あの手のが未だに残ってるってのも結構どうかと思う。
44 : windowsとemacs間のファイルアクセスにはにSambaを噛ませる実装にしちゃえよと
45 : ダメ文字って何?
46 : >>45 http://ja.wikipedia.org/wiki/%E3%81%A0%E3%82%81%E6%96%87%E5%AD%97#2.E3.83.90.E3.82.A4.E3.83.88.E7.9B.AE.E3.81.8C5C.E7.AD.89.E3.81.AB.E3.81.AA.E3.82.8A.E3.81.86.E3.82.8B.E3.81.93.E3.81.A8.E3.81.AB.E3.82.88.E3.82.8B.E5.95.8F.E9.A1.8C
47 : いやいや、japanese-cp932-dos使えば、\を2バイト目に含んだ 芸能界\構わない.txt 芸能界\表示方法.txt とか、普通にdiredとかfind-fileできるけど?
48 : >>47 芸能界 は?
49 : 違った。 芸能界\一覧表 とかは?
50 : 文字コードの設定しなくてもだいじょうぶなんですけどね。
51 : 俺のところだと「一覧表」って名前のフォルダ「がある」フォルダに dired で移動しようとするとアウト。 version は GNU Emacs 23.3.1 (i386-mingw-nt6.1.7601) of 2011-08-15 on GNUPACK c:\users\hogehoge\documents\一覧表 ってフォルダがあった場合、 c:\users\hogehoge から documents に移動しようとすると Format specifier doesn't match argument type がでる。 ちなみに file-name-coding-system は cp932 gnupack 標準配布の状態から設定変更なしな。
52 : なお、file-name-coding-system を japanese-cp932-dos にしても同様だった。
53 : ソース見たけどfile-name-coding-systemでどうこうできる問題じゃないよ。
54 : おお、ファイル名(含むフォルダ名)の「末尾」の文字の 2バイト目が0x5cのときだけダメなんだな。
55 : NTEmacs23.2 Shift_JISパッチ (日々の反省1) http://highmt.wordpress.com/2010/10/20/ntemacs23-2-shift_jis%E3%83%91%E3%83%83%E3%83%81/ で公開されているパッチを、23.3のソースに(一部手動で)当て直したもの。 ※上記のパッチで '' になってる部分は、'\0'が抜け落ちたものとして補完してある http://www1.axfc.net/uploader/File/so/74859 gnupackで公開されてるemacs-23.3-ime-2012-01-22.patchを当ててから、 こいつ(emacs-23.3-cp932-damemoji.patch)を当てると、 「一覧表」フォルダがあるフォルダにもdiredで移動できるようになったよ。
56 : 前スレ>>919 です。 前スレ>>919 のパッチはframe-parameterのime-fontの設定は使用していなかっ たのを、使用するようにしました。 http://www1.axfc.net/uploader/File/so/74913
57 : どれへのパッチか書き忘れてました。 >>56 は emacs-24.0.92 + emacs-24.0.92-ime-2012-01-22.patch へのパッチです。
58 : 56のパッチを当てたNTEmacs 23.4を使用しています。 普段常用している.emacs.d/init.elの中で、 initial-frame-alist(default-frame-alistにもコピー)にime-fontを追加すると、 最初にIMEをオンにした瞬間にw32fns.c/w32_abort()のダイアログが出て、 Emacsがappcrash(例外コード40000015)します。 デバッグ情報を含めてビルドした23.4のバイナリをgdbから起動して、 同じ事をすると、 Program received signal SIGTRAP, Trace/breakpoint trap. 0x760b3e2f in KERNELBASE!DeleteAce () from C:\Windows\system32\KernelBase.dll となります。
59 : もちっと原因を絞り込めないかと調べてるところなんですが、 ・56のパッチを当てたgnupackの24系、23.3系バイナリでも、 普段常用している.emacs.d/init.elを読み込むと同じ結果(appcrash)になる ・ime-fontの設定を外して、フレームのfontをそのままIME用に使うと 正常に動作する ・initial-frame-alistやw32-ime-initializeなど最小限の設定のみを書いた minimal.elを作成し、-Q -l minimal.el で起動すると、 正常に動作する(ime-fontで指定したフォントがIME用に使われる)
60 : これは、普段読み込んでいるelispパッケージの何かとコンフリクトしている のではないかと思い、 ・minimal.el に.emacs.d/init.elの内容を少しずつ追加していったら auto-install.elを読み込んだ後、auto-install-compatibility-setupを 呼び出すとappcrashした ので、auto-install.el おまえcarっと、確認のために、 ・minimal.elに最小限の設定 + auto-intall.elの読み込みと auto-install-compatibility-setup を追加した場合には正常に動作する 直接コンフリクトしているのではないみたい。ちなみに、 ・普段常用している.emacs.d/init.elの場合は、 auto-install-compatibility-setupの内容の末尾にある message(4行ぐらいミニバッファに表示する)をコメントアウトすると、 正常に動作する。
61 : >>58 そのパッチは使ってないので経験則だけど、そういう症状はGCがらみの場合が多い。 frame_param_ime_fontが怪しい。
62 : GNU Emacs(x64)使ってみたけど、32bit版に比べて遅い気がするんだが・・・。 何処といわれるとパフォーマンス計測したわけじゃないので明言はできないが、 EDEでC++ソースなどを開いた際や編集した際に semantic-dbやlispによるパースなどが行われているのか 数秒間固まる事がある。 タスクマネージャーでCPU時間をみてると5秒間ずっと17%ぐらい占有したままの状態になった。 結構頻繁にあるので困ってます。 32bit版でも、同様のシチュで重くなることはあるけれど 64bit版にくらべるとかなり軽微な感じでした。
63 : >>58 あらら…私の環境では起きなかったので気付きませんでした。すみません。 私も調べてみたいとおもいますがどうもうまく現象が再現できません… (auto-install.el読み込み後auto-install-compatibility-setup呼び出しても 起きない) >>61 GCまわり詳しくないのですが何か手がかりになりそうな情報ご存知でしたら ご教示いただけるとありがたいです。
64 : >>63 スマン。 最近のemacsはコンサーバティブGC使ってるので>>61 はウソだ。忘れてくれ。
65 : >>56 いえいえ、わざわざ調べてもらってすいません。 私自身も普段はime-fontを設定していない(フレームのfontをそのまま利用)しているのですが、せっかく現象が起きる環境があるので、試行錯誤の末、ime-fontを設定した場合でも問題が起きない実装にしてみました。 http://www1.axfc.net/uploader/File/so/75179 どうやら、58さんがスレ2で作成したパッチのうちの、 >#あと w32_set_ime_font 呼び出しを w32_set_ime_conv_window 内へ移動。 が、appcrashを起こす原因になっていたようです。 それ以前の実装を参考に、WM_IME_NOTIFYでw32_set_ime_fontを呼び出し、w32_set_ime_conv_windowでは呼び出さないようにしたらappcrash しなくなりました。
66 : 以前からIMEとemacsでフォントが異なるのが気になっていましたが、 触発されていじってみました。23.4+IMEパッチ(2011年11月頃)へのパッチです。 (フォント設定の修正だけでなく、プロトタイプ宣言の追加等も入っていますが、 うまく切り出せなかったのでご容赦)、パッチのオフセットはずれていると思います。 当初、フレームの日本語フォントとime-fontの設定を分ける意義がわからなかっ たので、フレームの日本語フォントと同一にするだけにしようと思っていました が、ime-fontで別フォントにする機能もなんとなく作りこんでしまいました。 ・フレーム属性ime-fontにfontset名またはxlfd名を指定できます。 ・指定がない場合はフレームの日本語フォント("あ"を表示するフォント)を使用します。 ・フォントのサイズはface-font-rescale-alistの設定を適用します。 ・フォント設定(w32_set_ime_font)と、変換ウインドウ位置設定(w32_set_ime_conv_window)呼び出しの最適化。 http://hp.vector.co.jp/authors/VA052357/23.4-ime-font.patch.gz >>62 32bitでsemanticは使ったことがなかったので、こんなもんかと思っていましたが、 プロファイルかけてみます。
67 : >>66 さっそくバグ発見してしまったので、差し替えました。 2/11 0:28以前に取得した方は再取得してください。 ime-fontにfont-specも許すようにしました。(こんなの誰が使うんだ?) (default-frame-alist `((ime-font . ,(font-spec :family "あずきフォント" :size 12))))
68 : >>65 解決してよかったです。自分のしょぼいパッチが迷惑かけたかと思って冷や汗 ものでした^^; >>66 #…もしかしてBOWの方? ime-fontの設定しなくても日本語部分のフォント使うんですね。すごいです。 ただ、(>>65 ,>>66 どちらもで)ちょっと気になるので一点だけ。 w32_set_ime_fontの呼び出しがそこだと ・2つフレーム開く ・一方のフレームでフォント設定変える ・「IME ONのまま」フレームを切り替える (frame-parameterのime-fontの設定はなし) などとするとフォントがあわなくなるようです。 #まあ、普段そんな使い方してるわけではないので気にしなければいいだけですが よくわかってないですがとりあえずWM_IME_NOTIFYで wParam == IMN_OPENSTATUSWINDOWの時にもw32_set_ime_fontを呼び出すように してみるとうまくいっているような気がします。
69 : >>66 >当初、フレームの日本語フォントとime-fontの設定を分ける意義がわからなかっ >たので、フレームの日本語フォントと同一にするだけにしようと思っていました >が、ime-fontで別フォントにする機能もなんとなく作りこんでしまいました。 これは、当初の実装でフォントセットを正しく扱うのが(当時のパッチを 書いた人にとって)面倒だったからじゃないかと思ってます。 フォントセットでASCII部分と日本語部分に別のフォントを割り当てた場合、 フレームのフォント(hfontでハンドルが得られるやつ)は、ASCII部分の フォントで、IME用にこれをそのまま割り当てると、それが英語フォント だった場合は、(暗黙または明示的な)フォントリンクによって、 日本語部分とは別のフォント(たとえばMS UIゴシックなど)が IME用に使われてしまいます。 で、正統的な解決法はOOTAさん(じゃなかった、66の中の人)みたいに 日本語部分のフォント(のうちのどれか)を取得して設定することなんだけど、 それが面倒だったので、「ime-fontで明示的に設定してね」ってやった のではないかと。 フォントセットの日本語部分のフォントを取り込めるなら、ime-fontを使う 場面は、「目が悪いので変換時はデカイフォントがいいんじゃ」みたいな ものしか思い浮かびません...
70 : あっヤバいことに気づいてしまった。ハングしないのはまぐれですね。w wndメッセージを処理するスレッドとlispスレッドは別なので、 メッセージループから直接lispデータに触っちゃだめじゃん。
71 : gnupackのemacs-23.3-ime-2011-03-13.patchではsrc/w32term.cの w32_read_socketでやってますね。最初見たときなんでここでやってたのか よくわかりませんでしたが>>58 さんの現象、たぶんここ変えちゃったからです よね。
72 : あー、2011-03-13で、w32fns.cのWM_IME_NOTIFY受け取ったところで、 my_post_msgでWM_MULE_IME_SET_FONTをポストしてるところだ。 で、w32term.cのほうでそのメッセージを受け取ってw32_ime_fontを 呼んでIME用フォントの処理をする、と。 こんなまだるっこしいことしてるのはスレッドが別だからなのか。 確かに、gdbで挙動追いかけてるときに、ime-fontの指定があるときに 呼び出してるfill_in_logfont()でクラッシュすることが多かったんだけど、 そこでもさらにいろいろlispデータにさわってます。
73 : my_post_msgでポストして、lispスレッドからset_ime_fontを呼び出すようにすると 何故かIMEフォントが設定できない。なにか間違ってるのだろうか… RECONVERSIONの方もヤバそうだけど、こっちはwnd_procスレッドの方で結果を返さ ないといけないから、厄介ですね。 >>56 > #…もしかしてBOWの方? はい。
74 : gnupackのIMEパッチ(2011-03-13)を参考にして、論理フォントの生成と IMEへのフォント設定を別の関数に分離してみたもの。 gnupackの最新IMEパッチ(2012-02-05)を当てた後で当ててください。 http://www1.axfc.net/uploader/File/so/75265 WM_IME_NOTIFYを受け取ると、my_post_msgでWM_MULE_IME_SET_FONTをポストし、 w32term.c/w32_read_socket()でそいつを受け取ったときに 論理フォントを生成する関数が呼び出されます。 なお、関数名は、わかりやすさを考慮して、元のw32_ime_font()から w32_set_ime_logfont()に変更しています。 あと、68での指摘を受けて、WM_IME_NOTIFYで wParam == IMN_OPENSTATUSWINDOWの時にも 同様にメッセージをポストするようにしています。 これで、w32_set_ime_font()は、生成済みの論理フォントを IMEに設定するだけのシンプルな内容に戻りました。 こいつは、w32fns.c/w32_wnd_proc()の中で、 WM_IME_STARTCOMPOSITIONと WM_MULE_IMM_SET_CONVERSION_WINDOWを 受け取ったときに呼び出しています。
75 : やはりBOWの中の人でしたかw さすがです。 #BOWって何?って人はBSD on Windowsでググってみてください
76 : GNU Emacs(x64)ですが 23.4のビルド、デバッグでおこなわれてませんか? 実行するとサイドバイサイド系の警告吐くので、再配布パッケージがらみなのかな。 いちおう動作していた23.3と23.4のマニフェスト確認してみたけど 23.3がMicrosoft.VC90.CRT 23.4がMicrosoft.VC90.DebugCRT になってました。
77 : うっ、すみません。作り直します。 反応があるのはうれしいのですが、「ここはサポート掲示板じゃねーぞ」と 言われないようにblogかvectorの方にコメントしていただけると幸いです。
78 : >>77 > うっ、すみません。作り直します。 > 反応があるのはうれしいのですが、「ここはサポート掲示板じゃねーぞ」と > 言われないようにblogかvectorの方にコメントしていただけると幸いです。 あ、了解です、すいません。
79 : >>58 さんのパッチ(>>74 )と>>66 さんのパッチを組み合わせてみました。 パッチありがとうございます > >>58 さん、>>66 さん emacs-23.4用 emacs-23.4 + emacs-23.4-ime-2012-02-05.patchにあててください。 http://www1.axfc.net/uploader/File/so/75508 emacs-24.0.93用 emacs-24.0.93 + emacs-24.0.93-ime-2012-02-05.patchにあててください。 http://www1.axfc.net/uploader/File/so/75509
80 : >>79 の続き ・gccでのビルドだとフォント名が日本語のものがIMEのフォントに設定できな かったので strcpy(ime_logfont.lfFaceName, SDATA(family)); を strcpy(ime_logfont.lfFaceName, SDATA(ENCODE_SYSTEM(family))); にしました。 #環境がないのでわかりませんがMSVCだと問題ないのかな。 ・WM_MULE_IMM_SET_CONVERSION_WINDOWで毎回w32_set_ime_font() ((ImmSetCompositionFontProc)())を呼ぶのは冗長な気がしたので (一応>>56 のパッチでは設定が変わってなければ(ImmSetCompositionFontProc)() は呼ばれないようにしていたつもり)、 w32_set_ime_logfont()後にメッセージを送ってw32_wnd_proc()で w32_set_ime_font()を呼ぶようにしてみました。 #w32_read_socket()でw32_set_ime_font()を呼んでもIMEのフォントに設定 #されないようなので。 #よくわかってないけどこんなんでいいのかな… ・>>68 に書いた、フレームのフォントが異なるフレーム間をIME ONのまま移動 するとIMEのフォントがあわなくなる、というのがC-x 5 oとかで移動する場合は なぜか起きなくなったのですがマウスクリックでの移動だと起きてしまいました。 IMEで文字入力を開始したときにWM_IME_NOTIFYでwParam==269なのが飛んできてる ようなので、そのときもWM_MULE_IME_SET_FONTをポストするようにしてみると 一瞬違うフォントがみえることがあるけどIMEのフォントがあうようになったので そうしています。#怪しいです^^;
81 : >>79 emacs-24.0.03 の方ですが、 私の環境では、IME-on するたびに警告音がなります。 *Messages* バッファに、 completing-read-default: Wrong type argument: stringp, (nil . "jisx0208*-*") などと出るのですが、私の環境だけ? init.el の中を探してもそれらしい場所は見つからず。
82 : RECONVERSIONがwindowスレッドからlispデータにアクセスしていてまずそうなので、 大改修しました。APC(Asyncronous Procedure Call)でLispスレッドに関数を送り込み、 Lispスレッドで処理します。メモリアロケータもwindowsスレッドから呼べるよう、 排他制御しました。IMEフォントもこの機構を使ってLispデータから情報を取るように しました。ついでにIMR_DOCUMENTFEED(前後参照変換)にも対応してみました。(Win7/MS-IMEで動作確認) IMEフォントの切り替えの作りこみが不十分(フレーム切り替えとか)だと思いますが、 しばらく時間的にいじれなくなるので、公開します。 x64版での変更からは独立するようにしたつもりなので、32ビット版でもいけると思っています。 2011年11月頃のimeパッチからの差分になっているはず(はずばかりで申し訳ない) http://hp.vector.co.jp/authors/VA052357/23.4-ime.patch.gz .\configure.bat --enable-w32-ime --cflags=-DRECONVERSION --cflags=-DDOCUMENTFEED
83 : >>81 emacs-24.0.93の方を使っていますが私の環境ではおきていません。 -qオプションを指定して起動してもおきますか?
84 : 申し訳ありません。>>82 はいったんひっこめます。
85 : >>83 お騒がせしました。init.el のせいのようです。 整理して 今やもう古い Meadow 用のコードを削除したら問題は起きなくなりました。 if (featurep 'Meadow) していたのですが。
86 : >>82 を修正版で置き換えました。
87 : 日本語対応NTEmacsとしてのgnupackが http://gihyo.jp/magazine/wdpress/plus/978-4-7741-5002-4 の本で紹介されてますね。お世話になってます
88 : >>82 パッチを試してみようと思ったのですが, 適用元の状態が良く分からず,上手くいきません. 素のソースファイルとの差分パッチを公開いただくことは可能でしょうか?
89 : >>88 x64版のパッチ(x64版インストール先のdistfiles/diffs-0.zip内のdiffs-0.diff) を当てたemacs-23.4へだとすこし行がずれますが当たるみたいですよ。
90 : gnupackのbasicとdevelってどう違うのん?
91 : 前スレ975が見ているかな。 gnupackのemacsで、 C-x C-fでTab補完するとc:c:/homeみたいになるのは、 file-name-shadow-modeをnilにすると直りました。 他への影響は分かりませんが。 http://stackoverflow.com/questions/1705802/emacs-tab-completion-of-file-name-appends-an-extra-i-cygwin
92 : Emacs始めようとしたのだが、背景白でまぶしくてかなわない。 お薦めのカラーセットはどうすればいいかな?
93 : XP x86上で、gnupack氏のemacs-23.4-20120324.exeを使用しています。 IMEをオンにしていると、入力中にフレーム内の文字の一部が消えます。 消えた部分をカーソルでなぞるか、emacsをアクティブにし直せば再描写 されるのですが。 emacs-24.0.94-20120324.exeでも同様でした。 設定は、~/.emacs.d/init.elに以下のみで試しました。 ;;;; -*- coding: utf-8-emacs-unix -*- (setq default-input-method "W32-IME") (w32-ime-initialize)
94 : >>93 私の所でもGoogleIMEを使うと起きます。ATOK、SKKでは起きないようです。 Win7の64bit ですが、GNU Emacs 64bit のほうがフレームが消える確率がかなり高いです。 ATOKに切り替えようかと思っていますけど、なおったらいいな。
95 : emacs上でGoogle IMEを使っています。 (setq default-input-method "W32-IME") (w32-ime-initialize) init.elにこう設定をするとkanjiキー(半角全角キー)でIMEの状態をトグルできなくなってしまいます。 原因を探った所、どうやらkanjiキーを押すとemacsとGoogle IMEの両者が共に状態をトグルさせようとし、 その結果状態が2回反転され元の状態から変わらない、というカラクリのようでした。 (defun nop () (interactive) t) (global-set-key (kbd "<kanji>") 'nop) そこでその後ろでこうした所うまくトグルされるようになったのですがemacsがIMEの状態変化に気づけないようで モードラインの最左が[Aa]のまま変化しなかったり、ON/OFF毎に設定しているカーソルの色が変化しなくなりました。 MS IMEではこの様なことは起こりませんでした。良い解決方は無いでしょうか?お知恵を拝借したいです。 emacs This is GNU Emacs 23.4.1 (i386-mingw-nt6.1.7600) of 2012-03-24 on VMWIN2 Google IME GoogleJapaneseInput-1.4.1031.0
96 : >>93 >>95 gnupack emacsをWin7で使ってるけどフツーに使えとるよ。 ちなみに日本語関連の設定はこんなん ;;; 日本語環境の設定 (set-language-environment "Japanese") (set-keyboard-coding-system 'japanese-cp932) ;; おまじないかも ;;; IME の設定 (setq default-input-method "W32-IME") (setq-default w32-ime-mode-line-state-indicator "[--]") ;; おこのみで (setq w32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]")) ;; おこのみで (w32-ime-initialize) ;;; IME ON/OFF 時にカーソル色を変える。 (setq ime-activate-cursor-color "#00a000") (setq ime-inactivate-cursor-color "#000000") (set-cursor-color ime-inactivate-cursor-color) ;; ※input-method-activate-hook, input-method-inactivate-hook じゃない方がいい感じになる。 (add-hook 'w32-ime-on-hook (function (lambda () (set-cursor-color ime-activate-cursor-color)))) (add-hook 'w32-ime-off-hook (function (lambda () (set-cursor-color ime-inactivate-cursor-color))))
97 : >>95 Emacs なんだから C-\ でいいじゃん。
98 : >>96 詳細なレスありがとうございます。私もgnupack emacsをWin7で使っています。 .emacsに上記だけを書き試してみましたが、うまくいきませんでした。 IMEは何をお使いでしょうか?問題点は半角全角キーでIMEのON/OFFをトグルさせたいときにうまくいかないと言う点です。 IMEがMS IMEやSKKの場合はうまくいくのですがGoogle IMEの時はうまくいきませんでした。 >>97 IMEのデフォルトトグルキーである漢字キーを使い今までと同じように1キーで切り替えたいです。
99 : >>98 Google IME の設定でどうにかできないのなら w32-ime-state-switch を書き換えて IME のモード変更を しないようにすれば?
100 : ずっと前に効いた質問、やっと見つけた。 キーのリマッピングできるソフトはKeyRemap4MacBook
101 : >>98 96です。自分もGoogle IMEを使用しています。 現在自宅にいてVistaで実験してるのでなのでなんとも言えませんが。 私もできるだけ最小の構成でやってみたのですが、ちゃんとトグルしてまして... やったことといえば、emacs/binをPATHに追加して、 .emacdはutf-8-unixで書いて以下の一文+>>96 の設定をしただけです。 ;;;; -*- mode: lisp-interaction; syntax: elisp; coding: utf-8-unix -*- Google IME: 1.4.1031.0 emacs-version: GNU Emacs 23.4.1 (i386-mingw-nt6.0.6002) of 2012-03-24 on VMWIN2 参考に、Google IMEのキー設定のスクショ貼っときます。 ttp://up3.viploader.net/pc/src/vlpc011599.png
102 : Microsoft Office IME 2010を使用していますが、20120527版でも症状変わらず。 20120205版に戻しました。
103 : >>95 の人とはまた別の問題だと思いますが、うちではバッファ切り替え時の IME状態の引き継ぎがおかしいです。状態を引き継がない設定にしているんですが、 1) あるバッファでIMEをOFFにしておいて、 2) 別のバッファを開き、IMEをONにして、 3) 元のバッファに戻ると、カーソルはIME ONの色、モードラインはIME OFFの表示、 実際に入力するとIME ONになっている。 4) ここで、半角/全角キーを押すと、モードラインはIME ONの表示に変わり、 他はそのままで表示と状態の整合がとれる。 となってしまいます。何か対策はないでしょうか。 Windows XP SP3 32bit、MS IME スタンダード 2003、Emacsはgnupackの20120324版、 設定は付属のinit.elのカーソルカラー関連をアンコメントしています。 ;; 標準IMEの設定 (setq default-input-method "W32-IME") ;; IME状態のモードライン表示 (setq-default w32-ime-mode-line-state-indicator "[Aa]") (setq w32-ime-mode-line-state-indicator-list '("[Aa]" "[あ]" "[Aa]")) ;; IMEの初期化 (w32-ime-initialize) ;; IME OFF時の初期カーソルカラー (set-cursor-color "red") ;; IME ON/OFF時のカーソルカラー (add-hook 'input-method-activate-hook (lambda() (set-cursor-color "green"))) (add-hook 'input-method-inactivate-hook (lambda() (set-cursor-color "red"))) ;; バッファ切り替え時にIME状態を引き継ぐ (setq w32-ime-buffer-switch-p nil)
104 : すみません。 × 状態を引き継がない設定にしているんですが、 ○ 状態を引き継ぐ設定にしているんですが、 です。
105 : >>103 ですが、一応自己解決しました。 w32-ime-sync-stateという関数を書き換えて、 バッファが切り替わるたびにIMEのON/OFF((ime-get-mode)の値)に合わせて activate-input-methodまたはinactivate-input-methodするようにすれば、いけました。 モードラインの表示も直接(ime-get-mode)の値を評価した方が良さそうだし、 他にももっと整理した方が良さそうだけど、一応動いてるからいいや。
106 : Emacs初心者なのですが、現在設定ファイルを書いていて、c-x c-fなど、 起動時のワーキングディレクトリをホームディレクトリにするために、 (cd "~/") を設定したのですが、反映できません。 (setq inhibit-startup-message t) を追加したら、反映できたのですが、 なぜ、このようことがおきるのでしょうか? OS: Windows 7 64bit Emacs: emacs-24.1-20120616.exe (gnupackのもの) 環境変数: HOME=C:\home\watashi 備考: runemacs.exeから起動
107 : >>106 期待通りに動作しない原因については後でゆっくり自分で調べてもらうとして、 Windows なら、起動ショートカットのプロパティの中の作業フォルダを設定することで 「起動時のワーキングディレクトリをホームディレクトリに設定」できる。
108 : 24.1出たのでMinGWでコンパイルしようとしたけど makeがいちいちアクセス拒否で死んで殺意覚える
109 : >>93 XPでOffice IMEを使うと私のところでも発生しました。MS IME Standardだと 発生せず。 w32_wnd_proc() の WM_IME_STARTCOMPOSITION の処理で変換ウインドウを 設定した時だけデフォルトの処理(goto dflt)をするようにすると解消した ようです。 emacs-24.1-ime-2012-06-16.patch後に当ててください。 http://www1.axfc.net/uploader/File/so/81075 文字が消えるのとは関係ないですがIMEフォント設定のところを少し変えて みてます。
110 : >>109 56さん、gnupackのksugitaさんありがとうございました。
111 : gnupack_devel-9.00 を利用しています。 utf-8でエンコードされた漢字を含むバッファに対し、M-| (shell-command-on-region) を使って、grep 'あああ' のような漢字コードをパラメータに含むコマンドを実行する ことは可能でしょうか?
112 : >>111 まずは自分でやってみ
113 : >>112 やってみてだめなので。 "あああ いいい"という文字列が入っているuft-8のバッファを全選択して、 M-|の後に(つづく..)
114 : ■ (modify-coding-system-alist 'process ".*sh\\.exe" '(utf-8 . utf-8)) の場合 ・sort ---> OK ・grep 'あああ' ---> エラー
115 : ■ (modify-coding-system-alist 'process ".*sh\\.exe" '(utf-8 . cp932)) の場合 ・sort ---> エラー ・grep 'あああ' ---> no output
116 : ここらへんすごく根が深いんだよね
117 : shell-command-on-regionから呼ばれているcall-process-regionにアドバイス 入れてみた。でも、どこかに影響が出そう。 (modify-coding-system-alist 'process ".*sh\\.exe" '(utf-8 . cp932)) (defadvice call-process-region (before ad-call-process-region activate) (if (ad-get-arg 7) (ad-set-arg 7 (concat "nkf -w | " (ad-get-arg 7)))))
118 : 113のテストは、LANG=ja_JP.UTF-8 でしました。 これをLANG=ja_JP.cp932にして、processの入出力もcp932にすれば、 アドバイスの設定しなくてもうまくいきました。 だから、gnupackのデフォルト値はcp932なんですかね..。
119 : Windowsの仕様だったかでどっかがcp932決め打ちになってるってのだけは覚えてる NTEmacsスレの過去ログでもそこらへん話題になってたはず すっきりした解決策はなかったような
120 : 自分の init.el 見て思い出した。 コマンド引数が cp932 決め打ちなんだった。 パイプで渡す内容が utf-8 なのは問題ないとしても grep 'ほげ' は cp932 で渡さないと行けないんだったと思う。
121 : ・コマンド引数はcp932でなくてはならない ・コマンド引数とプロセスの入力に使うコーディングシステムは、同一でなくてはならない ということですかね。 コマンド引数のコーディングシステムのみ指定できる変数があればいいのですが..。
122 : 自分のとこも結局関数に advice つけて対処したよ。nkf は流石につかわなかったけど。 こんな感じ。 (defmacro in:set-function-coding-system (function decoding encoding) "関数使用時のコーディングシステムを設定する. 関数 FUNCTION に対し、実行時に DECODING を `coding-system-for-read' に、 ENCODING を `coding-system-for-write' に設定する advice を作成、活性化する." `(defadvice ,function (around ,(intern (format "in:ad-%s-coding-setup" function)) activate compile) ,(format "関数実行時のコーディングシステムを以下に置き換える. `coding-system-for-read': %s `coding-system-for-write': %s" (eval decoding) (eval encoding)) (let ((coding-system-for-read ,decoding) (coding-system-for-write ,encoding)) ad-do-it))) (set-language-environment 'Japanese) (prefer-coding-system 'utf-8-dos) (set-file-name-coding-system 'cp932) (setenv "LANG" "ja_JP.UTF-8") ;; シェルコマンド呼び出しだけ入力をcp932でエンコード (in:set-function-coding-system shell-command 'undecided 'cp932) (in:set-function-coding-system shell-command-on-region 'undecided 'cp932)
123 : 加えて grep、lgrep、rgrep にも同様の設定してた。 M-x shell ”以外” を設定しようとしてたって感じだなぁ。 (in:set-function-coding-system rgrep 'utf-8 'cp932) (in:set-function-coding-system lgrep 'utf-8 'cp932) (in:set-function-coding-system grep 'utf-8 'cp932)
124 : 上記の設定だと、漢字の入ったリージョンに対し、 M-| grep 'リージョンにある漢字' とすると、エラーになりませんか? grepの入力が、utf-8を期待しているから。
125 : もう一個抜けてた。 結局その入力のギャップが解決しないから、異なるエンコードのファイルもまとめて検索できる lv 付属の lgrep を使うようにしてパラメータと入力のギャップを埋めたんだった。
126 : やはりそうですよね。 なので、117 に行きついたのでした。M-| sort なども動くので。 でも、なんかエレガントでない。もっといい解決方法がないのかなぁと。
127 : ちなみに前に話題になったのはこれ http://d.hatena.ne.jp/whitypig/20111216/1324024458 パッチでも書くしか無いのかしらん
128 : >> 127 このページも参考として見ていました。 とりあえず、参考まで現在の私の設定です。 (set-language-environment 'Japanese) ; なくてもいいかも (prefer-coding-system 'utf-8) ; なくてもいいかも (set-file-name-coding-system 'cp932) (setq default-process-coding-system '(utf-8 . cp932)) (modify-coding-system-alist 'process ".*sh\\.exe" '(utf-8 . cp932)) ; 上書き用 ;; M-x shell 実行する際に必要な設定 (defadvice shell (around ad-shell activate) (let ((coding-system-for-write 'utf-8)) ad-do-it)) ;; 漢字を含むバッファを入出力として shell コマンドを実行する際に必要な設定 (defadvice call-process-region (before ad-call-process-region activate) (if (ad-get-arg 7) (ad-set-arg 7 (concat "nkf -w | " (ad-get-arg 7)))))
129 : ↑ 以下も最初の方にあったほうがいいですね。 (setenv "LANG" "ja_JP.UTF-8") gnupackの場合、config.iniでLANGを設定できるので、init.elには書いていないのです。
130 : おまいら凄いな− 参考になるのでもっとやってください。
131 : >>130 漢字コードの件は、上記が今の自分の最善解なので、これ以上のネタなし。 その他に参考となりそうな設定なら晒せるけど、そんなんにここ使っていいんかな?
132 : イイヨイイヨー
133 : 文字制限に引っかかるのでちょびちょびで。いろいろなところで紹介しているもの ばかりと思うけど。
134 : ;; windowsでファイルもしくはディレクトリを開く (defun winstart (filename) (interactive) (w32-shell-execute nil (unix-to-dos-filename filename))) ;; ファイル名称をDOS形式に変換する (defun unix-to-dos-filename (filename) (replace-regexp-in-string "/" "\\\\" filename))
135 : ;; diredでwindowsに関連付けられたファイルを起動する (define-key dired-mode-map "z" '(lambda () (interactive) (winstart (dired-get-filename nil t)))) ;; diredで開いているフォルダをMS Explorerで開く (define-key dired-mode-map "E" '(lambda () (interactive) (winstart (dired-current-directory))))
136 : ;; windowsで開きたいファイルか? (defun windows-open-file-p (file) (let (ext) (if (and (file-regular-p file) (setq ext (file-name-extension file))) (progn (setq ext (upcase ext)) (or (equal ext "DOC") (equal ext "XLS") (equal ext "PDF") )))))
137 : ;; find-fileのアドバイス (defadvice find-file (around ad-find-file-winstart-setup activate) (let ((file (ad-get-arg 0))) (if (windows-open-file-p file) (winstart file) ad-do-it)))
138 : ;; find-file-other-windowのアドバイス (defadvice find-file-other-window (around ad-find-file-other-window-winstart-setup activate) (let ((file (ad-get-arg 0))) (if (windows-open-file-p file) (winstart file) ad-do-it)))
139 : パスの変換は自分はこうやってるなあ。 ~/.emacs.d/bin とかを Emacs 上でのみパスに追加とかしたかったので相対→絶対の変換も入れてた。 (defmacro in:system-path (path &optional base) "PATH をシステムで認識可能なパスに変換する. PATH が相対パスの場合 `expand-file-name' で絶対パスに変換される. BASE が non-nil の場合は絶対パス変換時の基準ディレクトリと見なす. 環境変数などの Emacs 外のプログラムに参照される場合に用いる." (if (eq system-type 'windows-nt) `(subst-char-in-string ?/ ?\\ (expand-file-name ,path ,base)) `(expand-file-name ,path ,base)))
140 : 以上で、dired がファイラみたいになる。とか。 136 の(equal ext "DOC") の行を増やすと、z でなく f や o で起動する windowsアプリが増える。
141 : equal ext "xxx" の羅列は流石に list と memq 使ったほうがいいんでないの? (setq external-app-exts '("DOC" "XLS" "VBS") ... (if (memq ext external-app-exts)
142 : >>141 であれば、memberですかね?
143 : >>139 こちらの方が汎用的ですね。
144 : >>134 をまとめてシンプルにしてみた。 ;; windowsでファイルもしくはディレクトリを開く (defun winstart (filename) (interactive) (w32-shell-execute nil (replace-in-string filename "/" "\\\\"))) これで、フォルダでもファイルでも、Windowsのシェルに任せて開くことができる。 "/"の変換をしているのは、ファイルサーバの先のファイルなど、UNCのパスを 開くのに必要だったから。ローカルのファイルなどは、そのままでも開くみたい。
145 : NTEmacs固有の設定ってしてるようで意外としていないなぁ。 region と cua-rectangle の色を SystemHilightText/SystemHighlightにしてWindows標準っぽくしてるぐらいか。
146 : >>145 ntemacs から shell とか使うのに、設定必要ない? shell 使う人って、あんまりいないんですかね?
147 : cygwin向けにエンコード設定したり bash じゃなく fakecygpty に差し替えたりとかしてるけど NTEmacsだからというよりCygwin使うからって感じだしなぁ あーあと印刷の設定もあるか。
148 : やっぱりそうですよね。このあたりが、ntemacsを使う敷居を高くしているような 気がする。 shell-mode の割り込みが効かないのにはエライハマって、以下のページでやっと 解決できた。 http://d.hatena.ne.jp/teny/20100830 これと、fakecygptyの差し替え両方で。
149 : >>148 このブログの設定に加えて、C-d もまともに動かなかったから (defadvice comint-send-eof (around in:ad-comint-send-eof activate compile) "直接 C-d を送信." (process-send-string nil "\C-d")) も追加してるなぁ なんか色々不毛だよね
150 : 不毛なの、もう一つ。ssh接続。 ちょっと前まで、plink使っていたけど、>>128 の設定にしてからうまく動かなく なって、現在ハマリ中。 f_ssh.exe でうまくいきそう。
151 : 設定見るとf_sshの設定やってたわ・・・TRAMP用、マルチホップ非対応のやつ ;; Tramp (eval-after-load "tramp" '(progn (setq tramp-default-method "ssh") ;; fakecygpty 仕様の ssh に置き換え (マルチホップは未検証) (when (executable-find "f_ssh") (dolist (m tramp-methods) (let ((lp (assq 'tramp-login-program m))) (if (string= "ssh" (cadr lp)) (setcdr lp '("f_ssh"))))))))
152 : sshの先の漢字がうまくいかない。
153 : 自己解決した。 >>128 の設定に追加。 ;; >>128 の設定の.*sh.exeのcoding設定の後に以下を追加 ;; この設定により、>>128 に書いた shell のアドバイスが不要となった (modify-coding-system-alist 'process ".*f_bash\\.exe" '(utf-8 . utf-8)) (setq tramp-default-method "ssh") (setq tramp-encoding-shell "f_bash.exe") ;; tramp による sshログイン時に漢字がでない原因を排除 ;; http://www.gnu.org/software/emacs/manual/html_node/tramp/Remote-processes.html#Running%20a%20debugger%20on%20a%20remote%20host (let ((process-environment tramp-remote-process-environment)) (setenv "LC_ALL" nil) (setq tramp-remote-process-environment process-environment)) ;; explicit-shell-file-name に f_bash.exe を設定しているので、置き換える (defadvice shell (around ad-shell-tramp-setup activate) (if (file-remote-p default-directory) (let ((explicit-shell-file-name "/bin/bash")) ad-do-it) ad-do-it))
154 : plink も f_ssh も使わなくても動いてしまった。 でも、以下の設定が正しい方法なのか、自身なし。 (setq tramp-encoding-shell "f_bash.exe")
155 : ついでに、ローカルで shell を使う設定もまとめておく。 >>148 のアドバイスも追加している。 (setq explicit-shell-file-name "f_bash.exe") (setq shell-command-switch "-c") (setq shell-file-name "bash.exe") ;; ssh の関数 の実装を流用して乗っ取る (defadvice comint-interrupt-subjob (around ad-comint-interrupt-subjob activate) (process-send-string nil "\C-c")) (defadvice comint-stop-subjob (around ad-comint-stop-subjob activate) (process-send-string nil "\C-z")) (defadvice comint-send-eof (around ad-comint-send-eof activate compile) (process-send-string nil "\C-d"))
156 : おまけ。 ;; 新しくshellを起動する (global-set-key "\C-cs" '(lambda () (interactive) (if current-prefix-arg (shell (generate-new-buffer-name "*shell*")) (shell)))) C-c s で *shell* バッファがなければ新たに開き、あれば遷移する。 C-u C-c s で、常に新規に shell を開く。開くときに、バッファ名の確認をしない。
157 : shellってcygwinのを使うんですかね? msysで何とかなりませんか?
158 : cygwin 付きの gnupack 9.00 でテストをしています。 msys は使っていないのでよくわかりません。 m_O_m
159 : >>136 >>141 のアドバイスに従い、見直してみました。 (setq external-app-exts '( "DOC" "DOCX" "XLS" "XLSX" "PDF" )) ;; windowsで開きたいファイルか? (defun windows-open-file-p (file) (if (file-regular-p file) (let ((ext (file-name-extension file))) (if ext (if (member (upcase ext) external-app-exts) t )))))
160 : シェル絡みだとpop-shellがすごく使いやすい ;; http://www.emacswiki.org/emacs/shell-pop.el (autoload 'shell-pop "shell-pop" nil t) (global-set-key (kbd "C-z C-z") 'shell-pop) C-zC-z でポップアップウィンドウ上でシェルが開いて同じく C-zC-z でシェルの窓だけ閉じる。 ちょっとコマンドラインで何かしたい時にさっとひらけてさっと閉じられるから重宝する。
161 : >>160 入れてみた。すごく便利。
162 : cygwinのバージョンあげたら M-! が ↓の問題にひっかかるようになってうざい http://stackoverflow.com/questions/9670209/cygwin-bash-does-not-display-correctly-in-emacs-shell
163 : というか >>162 の症状のおかげで gist.el が動かなくなってるよくそう gist-list するとエラーが出るから見てみると http -> Request is: POST /api/v1/xml/gists/bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: (ユーザ名) HTTP/1.1 エラーメッセージまでリクエストに含まれてるという・・・・ なんとかして回避できないものか
164 : >>162 fakecygpty版のshellを使わずに M-x shell するとでるエラーと一緒だけど、 M-! の時に出るのはなぜだろう?
165 : M-! の時は shell-file-name が使われるからかねえ。 shell-file-name は bash にしている。 f_bash は shell-file-name の方だと機能しないなぁ・・・ fakecygpty の改造でなんとかならないかな。
166 : gnupack 9.00 のcygwin を最新状態にして使っているけど、M-! は普通に動く けどな。 # uname -a CYGWIN_NT-6.1-WOW64 xxxx 1.7.15(0.260/5/3) 2012-05-09 10:25 i686 Cygwin
167 : なんだろね、発生してる人としてない人の違いは。 EmacsWikiにも載ってるぐらいだから俺だけじゃないことは確かだと思うんだけど。 自分は gnupack は使わず個別に入れてる。 M-x version GNU Emacs 24.1.1 (i386-mingw-nt6.1.7601) of 2012-06-10 on MARVIN # uname -a CYGWIN_NT-6.1-WOW64 XXXXX 1.7.16(0.262/5/3) 2012-07-20 22:55 i686 Cygwin
168 : 再度、cygwinを更新してやってみたが、やっぱりならない。 M-x version GNU Emacs 24.1.1 (i386-mingw-nt6.1.7601) of 2012-06-16 on GNUPACK # uname -a uname -a CYGWIN_NT-6.1-WOW64 hata-THINK 1.7.16(0.262/5/3) 2012-07-20 22:55 i686 Cygwin
169 : emacs から開いた shell で。 # type bash bash is /usr/bin/bash
170 : そうするとgnupack配布版と公式配布版のコンパイル状況の違いとかもあるのかな? とりあえずgnupackダウンロードしてみてそちらでも試してみます。 ・・・残りダウンロード時間1時間て・・・
171 : 回避方法判明しました。 shell-command-switch に i が入ってたのが原因っぽい。 抜いたら当該エラーは出なくなった。 M-!でエイリアス使えなくなるのはちょっとうっとおしいけどバグ修正されるまで我慢の子だな・・・
172 : 原因分かって良かったですね。 後学のため。以下の方法で確認すれはよかったようです。 M-x trace-function-background -> shell-command -> RET M-x trace-function-background -> call-process-region -> RET M-! -> ls *trace-output* バッファを見る。-> お互いに比較する。 M-x untrace-all こんな感じの結果となります。 ====================================================================== 1 -> shell-command: command="ls" output-buffer=nil error-buffer=nil | 2 -> call-process-region: start=1 end=1 program="bash.exe" delete=nil buffer=#<buffer *Shell Command Output*> display=nil args=("-c" "nkf -w | ls") | 2 <- call-process-region: 0 1 <- shell-command: 0 >>117 のテストにもなることが分かりました。
173 : GNU Emacs 24.1.1 (i386-mingw-nt6.1.7601) of 2012-06-10 on MARVIN です。 http://www.emacswiki.org/emacs/GnusGmail を参照してメールが送れないかと試してるんですが (gnutls-available-p) が nil の環境だと自分でビルドしないと駄目でしょうか?
174 : すいまんせん。言葉が足りませんでした。 cygwin の gnutls は入れてあって Gmail を読むことはできています。
175 : 上記とは直接関係あるかはわからないけど、starttls-available-p の実装があんまりだった (and (not (memq system-type '(windows-nt ms-dos))) (executable-find (if starttls-use-gnutls starttls-gnutls-program starttls-program)))) Windows がいきなり弾かれてるし。
176 : ちなみに gnupack の配布物から gnutls 関係の dll を拾ってきて GNU 配布版の emacs の bin ディレクトリに放り込んだら gnutls-available-p は t になったよ。
177 : gnupack使うのが一番素直になるかな……
178 : ちょっと前に >>117 の方法を考えたけど、この方法は結局文字化けを回避する だけの方法で、外部プロセスに UTF-8 の出力はできていなかった。 どうにかならないかと調べていて、こんな方法があることが分かった。 (modify-coding-system-alist 'process ".*sh\\.exe" 'utf-8) (defadvice call-process-region (before ad-call-process-region activate) (if (ad-get-args 6) (ad-set-args 6 (mapcar '(lambda (arg) (if (multibyte-string-p arg) (encode-coding-string arg 'cp932) arg)) (ad-get-args 6))))) プロセスへの入出力はUTF-8としたまま、プロセスに渡すパラメータをCP932に することができた。
179 : 上記のやり方を >>122 の内容を参考に、マクロで実現してみた。 intern のあたりの書き方が正しいのか、ちょっと自信なし。 (setenv "LANG" "ja_JP.UTF-8") (set-language-environment 'Japanese) ; なくてもいいかも (prefer-coding-system 'utf-8) ; なくてもいいかも (set-file-name-coding-system 'cp932) (setq default-process-coding-system 'utf-8) (modify-coding-system-alist 'process ".*sh\\.exe" 'utf-8) ; 上書き用 ;; サブプロセスに渡すパラメータの文字コードを cp932 にする (defmacro set-function-args-encode (function args-number) `(defadvice ,function (before ,(intern (concat "ad-" (symbol-name function) "-args-encode-setup")) activate) (if (ad-get-args ,args-number) (ad-set-args ,args-number (mapcar '(lambda (arg) (if (multibyte-string-p arg) (encode-coding-string arg 'cp932) arg)) (ad-get-args ,args-number)))))) (set-function-args-encode call-process-region 6) (set-function-args-encode call-process 4) (set-function-args-encode start-process 3)
180 : これで、かなりの部分からcp932を排除することができた。 cp932で表現できない文字が入ったutf-8のバッファなどへも、M-| sort など が正しく機能すると思う。M-| grep 'ほげほげ' の 'ほげほげ' の部分は、 cp932で表現できる文字でないとだめだけど、これをどうにかするには、 emacs が動作するコードページをcp932からutf-8に変える必要があるんだと思う。
181 : コマンドプロンプトで、chcp 65001 とすると、コードページをutf-8にする ことができる。(戻すには、chcp 932) これと同様なことを emacs.exeでもできれば、完全にcp932を排除することが できるような気がするんだけど..。
182 : >>179 がうまく動いているかは、>>172 の方法でtraceすると良くわかります。
183 : これはnkf無しでもいけるってことか。 かなりの最適解じゃないか。 コードページに関してはビルド時に指定はできたんだったかな・・・
184 : もうプロセスに関しては全部 utf-8 指定で問題なくなるわけだし prefer-coding-system で utf-8 指定するだけで良くなるわけか。
185 : これgnupackに入ったらいいのになって思ったけど gnupackはそもそもcp932運用を前提としてるから不要か もっとも入ってても害はないよね。いかなるコーディングで運用していたとしても Windows上だとコマンドライン引数はcp932にしなきゃいけないわけだし
186 : 24.1にしてみたけど、ミニバッファのIMEオフが動かなくなってた。 今のところ、不満点はそのくらい。
187 : >>179 に一箇所間違いがありました。 誤: (setq default-process-coding-system 'utf-8) 正: (setq default-process-coding-system '(utf-8 . utf-8)) set- で始まる function の書き方と混同していたようです。
188 : default-process-coding-system は set-default-coding-systems で、さらには prefer-coding-system で同時に設定されるから不要じゃない?
189 : C-h C で見てみると、 ■ (prefer-coding-system 'utf-8) だけの場合 Defaults for subprocess I/O: decoding: U -- utf-8-dos (alias: mule-utf-8-dos) encoding: U -- utf-8-unix (alias: mule-utf-8-unix) ■ さらに (setq default-process-coding-system '(utf-8 . utf-8)) を設定した場合、 Defaults for subprocess I/O: decoding: U -- utf-8 (alias: mule-utf-8) encoding: U -- utf-8 (alias: mule-utf-8) 改行の変換が入るのかな? どこかに影響はでないだろうか?
190 : wc -c とかした時に CR とか数えられるのもなんだし外部プロセスが期待してる改行コードに変換するのは妥当だと思うけど 何故に外部システムが LF 改行で決め打ちになってるんだろ。prefer... を utf-8-dos にしようが utf-8-unix にしようが >>189 と同じになるね。
191 : しばらく、 (setq default-process-coding-system '(utf-8 . utf-8)) なしで、 使ってみよう。これで、あと必要な設定は以下くらいかな。かなりすっきり。 (set-file-name-coding-system 'cp932)
192 : >>190 prefer-coding-systemはdefault-process-coding-systemの改行指定部分 (-unixとか-dosの部分)を変更しないようになってるね。 そして、default-process-coding-systemのデフォルトは (undecided-dos . undecided-unix)になっていて、 これはw32-fns.elのset-default-process-coding-systemで設定してる。 ;; Most programs on Windows will accept Unix line endings on input ;; (and some programs ported from Unix require it) but most will ;; produce DOS line endings on output. だそうだ。
193 : >>192 なるほど、環境依存性が強いから初期値決めてあるわけなのね。 ここ数日ので大分文字コード周りがすっきり納得行くようになってる。 陳謝陳謝!
194 : 個人的にはあとは小菊を23以降の仕様に合わせるところだけだ
195 : まとめると下記でいいの? (setenv "LANG" "ja_JP.UTF-8") (set-language-environment 'Japanese) (prefer-coding-system 'utf-8) (set-file-name-coding-system 'cp932) (setq default-process-coding-system 'utf-8) (modify-coding-system-alist 'process ".*sh\\.exe" 'utf-8) (defmacro set-function-args-encode (function args-number) `(defadvice ,function (before ,(intern (concat "ad-" (symbol-name function) "-args-encode-setup")) activate) (if (ad-get-args ,args-number) (ad-set-args ,args-number (mapcar '(lambda (arg) (if (multibyte-string-p arg) (encode-coding-string arg 'cp932) arg)) (ad-get-args ,args-number)))))) (set-function-args-encode call-process-region 6) (set-function-args-encode call-process 4) (set-function-args-encode start-process 3)
196 : >(setq default-process-coding-system 'utf-8) >(modify-coding-system-alist 'process ".*sh\\.exe" 'utf-8) ↑がおそらく不要
197 : あとは prefer のところに好きな改行コードの種類を入れたければ入れるぐらいの違いか
198 : >>196 (modify-coding-system-alist 'process ".*sh\\.exe" 'utf-8) の行は、 C-h v process-coding-system-alist とやって、"bash"の行があときは必要と思う。 自分のとこは、以下のような形なので、追加している。 (一番上の行は、上記の設定で追加されたもの) process-coding-system-alist is a variable defined in `C source code'. Its value is ((".*sh\\.exe" utf-8 . utf-8) ("bash" raw-text-dos . raw-text-unix) ("[pP][lL][iI][nN][kK]" undecided-dos . undecided-dos) ("[cC][mM][dD][pP][rR][oO][xX][yY]" undecided-dos . undecided-dos))
199 : もう一つの方法として、"bash"の行を削除してもよいと思う。 (setq process-coding-system-alist (delq (assoc "bash" process-coding-system-alist) process-coding-system-alist))
200 : gnupack で提供されているinit.elには、@ shell のカテゴリのところに、 (modify-coding-system-alist 'process ".*sh\\.exe" 'cp932) の設定があるので、コメント化する必要がある。 また、shell-mode-hook の設定もあるけれども、これもコメント化している。
201 : なるほど、公式配布版だともともとはいってないからいいけど gnupack 版だと初期設定を書き換える必要があるわけね。
202 : gnupackにはとても感謝している。init.elを含むもろもろの設定をゼロから するのであれば、emacsのユーザにはなっていなかったように思うので。
203 : cygwin も含めて落として展開するだけですぐ使える上環境汚さないからお試し導入も出来るってのもいいよね。 母艦はもともと cygwin 環境整えてたから NTEmacs 使ってるけど サブではお手軽に gnupack 使わせてもらってるわ。
204 : 設定削っていったらGNU謹製でもフォント設定以外なくても大分使えると分かった
205 : >>153 の設定で、 Symbol's value as variable is void: tramp-remote-process-environment ってエラー出てる人いるかな。以下の設定にするとうまくいくかも。 (eval-after-load "tramp-sh" '(let ((process-environment tramp-remote-process-environment)) (setenv "LC_ALL" nil) (setq tramp-remote-process-environment process-environment)))
206 : >>204 IME も GoogleIME とかだとパッチなしでもなんとか運用出来るんだよね。
207 : こんにちは。Emacs 24.1(gnupackからpatchをいただいてWindows XP SP3上で自分でビルドしたもの)で jaspace.elを使っていらっしゃる方はいますか? (require 'jaspace) でjaspaceを読み込んで、jaspaceを使うモードを (setq jaspace-modes (append jaspace-modes (list 'php-mode 'javascript-mode) と設定して、表示する記号を下記のように設定しているのですが、 (setq jaspace-alternate-jaspace-string "□")) (setq jaspace-alternate-eol-string "\n")) (setq jaspace-highlight-tabs ?^)) 表示がうまくいきません。□が消えてしまったりします。 もし何か対策をご存じの方がいらっしゃったらアドバイスお願いします。
208 : 24.1だとフォントの設定を何にもしなくても日本語が表示されるんだな メイリオだからあんま意味ないけど
209 : おお、ほんとだ 無設定の状態で「ー」も「□」にならずに表示されるな
210 : 64bit ビルドが make bootstrap 一発で通らないのが気になりますが… ビルドできればとりあえず動いているようです^^; テンプレのGNU emacs(x64)に添付のパッチを元に mingw-w64 (32bit, 64bit) でビルドできるようにしてみました。 w64 でない tdm-gcc 32bit (mingw32) でも一応ビルドできます。 ダイナミックロード機能はうまく動かせなかったので入っていません。 emacs-24.1 用。使用した gcc, 画像ライブラリなどは zip 内の README.txt をみてください。 http://www1.axfc.net/uploader/File/so/82434
211 : GNUPACKのemacs24.1.1を使ってます flymakeでgccの代わりにcl.exeを使うように設定して、呼び出しはちゃんとできているようなのですが、エラーメッセージが文字化けして読めません(「\203I\203v」とかって感じになる) どうにかして治す方法って無いですか
212 : (modify-process-coding-system-alist "cl\\.exe" 'cp932) とかでなんとかならんかね
213 : >>212 (modify-process-coding-system-alist "cl\\.exe" 'cp932) だと通らなかったので (modify-coding-system-alist 'process "cl\\.exe" 'cp932) としてみましたが、通りはしても症状変わらずでした…
214 : 'cp932 を 'undecided にしてみたら?
215 : あぁ、それか、cmdproxy.exe で cl.exe を間接的に呼び出しているから、 "cl\\.exe" を "cmdproxy\\.exe" にすると、うまく行くとか?
216 : "cl\\.exe" → "cl\\(\\.exe\\)?" かな?
217 : lpr-buffer しようとすると c:\ 直下にスプールファイルか何か作ろうとするせいで Permission Denied になってしまう 違う場所に書き出す設定でもないかと思ってみてみても (safe-dirs (list "c:/" (getenv "windir") (getenv "TMPDIR"))) とかハードコーディングされててオワタ
218 : 何もオワッテいない elispでハードコードされてる部分なら、自分で好きなように修正すればいいだろ ぶっちゃけ個人環境なら、lispディレクトリ直下をそのままいじってもいい
219 : 標準配布されてるのを上書き等でいじるのはやだよ。 hook や advice で直せない時点でもうだめだわ。 関数丸コピーで一部変えて再定義も気持ち悪い。 つか c:/ とかハードコードすんなよなぁ・・・
220 : >>216 それでうまくいきました! 回答どもです
221 : cygwin の bash + ansi-term がちゃんと使えてる人居ます? f_bash 入れてもとてもまともに動いてるとは言いがたい・・・ shell-mode で大抵のことは出来るからそう困ったりはしないけど ちゃんと動かせるなら動かしてみたい
222 : w32-symlinks.el は結構内容古いんだな insert-file-contents-literally とかの低レベル関数定義をまるっと置き換えしてるけど w32-symlinks のは古い版のだからか暗号化ファイルとか読み込み出来ないままになってる
223 : >>179 の発展系として、以下のマクロを考えてみた。 (defmacro set-function-args-coding-system (function program-number args-number) `(defadvice ,function (around ,(intern (concat "ad-" (symbol-name function) "-function-args-coding-sytem-setup")) activate) (let ((program (ad-get-arg ,program-number)) (args (ad-get-args ,args-number))) (if (and program args) (progn (ad-set-args ,args-number (mapcar '(lambda (arg) (if (multibyte-string-p arg) (encode-coding-string arg 'cp932) arg)) args)) (if (and (equal program shell-file-name) (equal (car args) shell-command-switch) (cdr args)) (let ((process-coding (assoc-default (cadr args) process-coding-system-alist 'string-match))) (if process-coding (let ((coding-system-for-read (car process-coding)) (coding-system-for-write (cdr process-coding))) ad-do-it) ad-do-it)) ad-do-it)) ad-do-it))))
224 : 設定は以下で行ってください。説明は次に。 (set-function-args-coding-system call-process-region 2 6) (set-function-args-coding-system call-process 0 4) (set-function-args-coding-system start-process 2 3)
225 : (説明) process-coding-system-alist は、shell-command などでshell経由(bash -c xxx)で 起動されるプロセスには機能しない。上記は、これを有効にするアドバイス。 たとえば、M-! ipconfig とやると、プロセスの入出力の設定を UTF-8 にしているユーザは 文字化けするけれども、上記のアドバイスを設定し、さらに以下を設定しておくと、文字化けは しなくなる。 (modify-coding-system-alist 'process "ipconfig" 'cp932)
226 : ad-do-it が4つ並んでるのがなんか笑えるけどこれはなかなかよいね。 Windows 側の javac とかも文字化けしないで済むようになった。GJ!
227 : と思ったけど (setq default-process-coding-system '(undecided . utf-8)) でもいいような気もする
228 : shell-mode で ck とかの国際化端末みたいにコマンド毎の文字コード自動認識する方法ないもんかねえ。 ck だと windows 版の javac と utf-8 なファイルの cat のどちらも文字化けしないんだけど shell-mode だと先に表示した方のエンコードに縛られちゃって後からの出力が文字化けしちゃう
229 : >>228 仕組みはこんな感じ? (defadvice comint-send-input (before ad-comint-send-input activate) (set-process-coding-system (get-process "shell") 'undecided 'utf-8))
230 : >>227 ほんとだ。がっがり。でも、勉強となったし、この情報を教えてもらう ネタになったからいいか。 >>223 の利点は、標準入力をコントロールできることくらいかな。
231 : >>229 おおお素晴らしい! shell-mode で utf-8 と cp932 が共存出来たよ!ありがとう! 今月先月と shell 絡みの言語処理が大分改善されたなあ
232 : process-coding-system に *-dos とか *-unix とか付けない場合と付ける場合でやっぱり微妙に挙動かわるね 改行コード付けない場合だと余計な CR が入力で渡されちゃうことがあった prefer-coding-system に習って w32-fns.el の設定を壊さないよう↓みたいにしたほうがいいかも default-process-coding-system の設定も同様で。〜-dos . 〜-unix の決め打ちでもよさそうではあるけど。 (set-process-coding-system (get-process "shell") (coding-system-change-text-conversion (car default-process-coding-system) 'undecided) (coding-system-change-text-conversion (cdr default-process-coding-system) 'utf-8))
233 : おぉ、勉強になるなぁ。 最近、文字化けした漢字を見なくなった。
234 : >>232 整理してみました。 (defadvice comint-send-input (before ad-comint-send-input activate) (let ((process (get-buffer-process (buffer-name)))) (if (and process (string-match "shell" (process-name process) 0)) (let ((coding-system (process-coding-system process))) (set-process-coding-system process (coding-system-change-text-conversion (car coding-system) 'undecided) (cdr coding-system))))))
235 : 本家は24.2rc2でたのか。 そろそろgnupack emacsも24.2でるかな?
236 : 何が変わったのかなと思ったら この間の脆弱性を修正した奴なのね。
237 : レジストリでフォントを指定する方法で、 set-fontset-font みたいに範囲や charset 毎のフォント設定までする方法ってありますかね?
238 : "GNU Emacs 23.3.1 (i386-mingw-nt5.1.2600) of 2011-08-15 on GNUPACK"を使っています。 auto-install-batch [RET] anythingとしてインストールしました。 C-sのisearchがうまく動かなくなってしまいました。 [MIGEMO] I-search: と出るのですが、そこに文字を入力しても全く何にも該当しません。
239 : 忍法帳規制により連レススマソ。 ttp://d.hatena.ne.jp/rubikitch/20071225/anythingmigemo に同じ症状の人がいたのですが、解決法はわかりませんでした。 どなたか解決法が分かる方はいらっしゃいませんでしょうか?
240 : windows7すげえな 何の設定もしてないのにHELLOファイルのうちBurmeseとOriya以外の書体をちゃんと表示しとる
241 : gnupack_devel-9.01使用 新規ファイルをバッファで開くために emacsclientの設定をしたけど 上手くいきません。 init.elに(server-start) Win環境変数に 変数名: EMACS_SERVER_FILE 変数値: (gnupackを解凍したディレクトリ)\home\.emacs.d\server\server 追加 で、起動すると Warning (initialization): An error occurred while loading `c:/home/bin/gnupack_devel-9.01/home/.emacs.d/init.el': error: The directory `~/.emacs.d/server' is unsafe To ensure normal operation, you should investigate and remove the cause of the error in your initialization file. Start Emacs with the `--debug-init' option to view a complete error backtrace. て出てしまいます。 ・・・助けて
242 : 連投スマソ これが解決したら本格的にxyzzyから移行するんですが・・・ やっぱし本家使いたいし
243 : xyzzy はもはや emacs とは別物では。 あっちはあっちでなかなか良いものだと思う
244 : serverのプロパティ => 詳細設定 => 所有者 で所有者の変更
245 : >>244 ありがとう。何とか動くようになりました。 vista以降の所有権うんぬんは本当に使いにくいです。 >>243 そうですね。winネイティブなアプリなんで動きも軽いですしずっと愛用してます。 実はhowmを使い出したんですが、howm-wrapは1.1.0.3までの対応で パッチを当てると1.2.1も使えるみたいなんですがうまくパッチ当てできなくて、 それなら本家の最新版が使いたいということで。 あと、過去何回もemacsに挫折してたんで、この機にと思いまして。
246 : anything-startup.elを読んでいたら ;;; If you use Japanese, you should install Migemo and anything-migemo.el. ;;; ;;; Migemo http://0xcc.net/migemo/ (and (equal current-language-environment "Japanese") (require 'anything-migemo nil t)) という記述が、、コメントアウトしたらうまくC-sできるようになりました。 「外部プロダクトを別途手動でインストールしなければ、C-s自体が動かなくなる」 そういう事を注釈なしにしないで欲しいなぁ。
247 : 確かに。 インストール済みかチェックした上で挙動が勝手に変わるならともかく。
248 : 現状の ntemacs って何の設定もしなくてもそれなりに使える状況になるんだなあ。 language environment も勝手に Japanese になってるしフォントも普通に表示されるし cygwin 等を使ってないなら無設定で文字化けも全然しない
249 : 今設定なしで使ってみてる .skkがあるから厳密には違うけど
250 : tem/bobcat のロードはやめられそうにもないけどね・・・
251 : ntemacsでansi-term使ってる方はいらっしゃいますか? fakecygpty 使うことで大分ましにはなったのですが細かい設定がまだよくわかりません。 やってることは、UTF-8で動作させるために default-process-coding-system を '(undecided-dos . utf-8-unix) に、 locale-coding-system を utf-8 に設定しているのと、 M-x ansi-term 後に stty echo -igncr しているぐらいです。 この状態だとファイル名表示や enter で改行は問題ないんですけど C-h でのバックスペースや C-a での行頭移動がちゃんと表示されないんですよね
252 : NTEmacs で key-chord.el を使ってる人に聞きたいです. 日本語入力がオンになっている時には key-chord の 同時押しキーバインドが実行できないんですが,これは Windows の IME に渡している以上避けられないものですかね? Linux のほうで ibus.el で日本語入力していると,日本語入力が オンになっていても key-chord キーバインドが動いてくれるのですが.
253 : すみません 23系でレンダリングの遅さに辟易してWinのEmacsから遠ざかっていたのですが、 24では遅くないでしょうか?
254 : 基準がわからないんでなんとも。体感は人それぞれだろうし。 特別なインストール作業もないんだし試してみたほうが早いと思う。
255 : 何のレンダリングを指しているのか確信ないが、こちらはemacs-w3mからw3mを使用、mewでhtmlをインライン表示。 dosアプリのw3mではさっと整形後表示となるが、cygwin版w3mだと止まったかのような状態が数十秒のときあり。 23系、24系とも。24系では若干速いか?という程度。
256 : windowsでこまめに外部プロセス木戸するようなもの速度はあきらめた方がいい。 grep-find 使うにしても -exec ではなく xargs 使うようにすると桁違いに早くなる。
257 : w32-pipe-read-delay の調整で早くなるのは emacs からプロセス連続で呼び出す場合ぐらいだったっけ
258 : >>256 もう少し解説・例示があるとありがたく。
259 : grep-find で xargs つかうには grep-find-use-args を non-nil にすりゃいい。 もちろん cygwin とか導入してないと xargs もないだろうけど。 -exec だとファイルごとに grep が起動されるけど、 xargs だと引数として渡せるだけの限界の長さまで詰め込んで grep を起動するから プロセス起動回数が段違いに減る。 Windows 環境は理由は忘れたけどプロセス起動がおっそいから違いが顕著に現れる。 #fork がちゃんと実装出来てないから遅いんだっけ?
260 : 変数名まちがった grep-find-use-xargs ね。
261 : すみません gnupack + ntemacsって、 cygwinのgcc使用して、cygwinのライブラリ使用しているバイナリでしょうか? そうだとしたらパフォーマンスに問題ないでしょうか?
262 : gnupackのntemacsはcygwinのライブラリを使用してない パフォーマンスに問題あるかどうかを判断できるのは自分だけだ
263 : trampを>>153 の設定で使っているだが、サイズのデカいファイルのコピーが遅い。 調べてみると、tramp-methodのsshはインラインメソッドでファイルをコピーしてるとのこと。 http://www.bookshelf.jp/texi/tramp/tramp_ja_4.html では、tramp-methodにscpを使ってみようとやってみたが、うまく動かない。 パスにドライブの指定があって、そこにコロンが入っているからscpが混乱しているらしい。 http://www.bookshelf.jp/texi/tramp/tramp_ja_4.html#SEC17 ということで、いつものadviceを考えてみた。(改行オーバーとのことで、つぎへ) もうちょっと改善できそうな気もするが、とりあえずこれでデカいファイルもさくさくコピーできる。
264 : (require 'tramp) (setq tramp-default-method "scp") (setq tramp-encoding-shell "f_bash") (setq tramp-program-list '("ssh" "scp" "rsync")) ;; プロセスを起動するプログラムを fakecygpty 版のものに変更し、パスのドライブの表記方法を変更する (defmacro tramp-adjust-process-args (function program-number args-number) `(defadvice ,function (before ,(intern (concat "ad-" (symbol-name function) "-tramp-adjust-process-args")) activate) (if (member (replace-regexp-in-string "\\.exe$" "" (ad-get-arg ,program-number)) tramp-program-list) (progn (ad-set-arg ,program-number (concat "f_" (ad-get-arg ,program-number))) (if (ad-get-args ,args-number) (ad-set-args ,args-number (mapcar '(lambda (arg) (replace-regexp-in-string "^\\([A-Za-z]\\):" "/\\1" arg)) ; 環境によっては、上記の行を以下に置きかえる。gnupack with cygwin は上記でOK ; (replace-regexp-in-string "^\\([A-Za-z]\\):" "/cygdrive/\\1" arg)) (ad-get-args ,args-number)))))))) (tramp-adjust-process-args call-process 0 4) (tramp-adjust-process-args call-process-region 2 6) (tramp-adjust-process-args start-process 2 3)
265 : 正規表現より cygpath 使ったほうがどの環境でも動いて完璧じゃない? 一々プロセス起動するって難点はあるけど。 あとは internal な変数使うことになるけど (featurep 'cygwin-mount) が t なら cygwin-mount-cygdrive-prefix--internal を使うとか。
266 : >>265 cygwin-mount-cygdrive-prefix--internalってのがあるんですね。 でも、自分の環境(gnupack with cygwin 9.00)だと、 (featurep 'cygwin-mount) が t で、cygwin-mount-cygdrive-prefix--internalが/cygdrive/を返すけど、/cygdrive が使えない。どこか設定が変なんだろうか..。 cygpathはちょっと考えたけど、正規表現が軽くていいかなぁと。 引数の数、変換掛けているので。そこを直さなきゃだめか..。
267 : gnupackは内部的に「mount -c /」を実行していて 「/cygdrive」じゃなくて「/」になってます 例えば C:ドライブの場合「/cygdrive/c」じゃなくて「/c」という感じ
268 : >>267 そうなのですね。emacsから cygpath -uを呼んだ結果は、使えるパスが返って くるってことでいいんですかね? やっていると、/c/... とはなりました。
269 : gnupackインストール直下の emacs.exeから起動した場合も 「mount -c /」が有効な状態です. なので,emacs上でも「cygpath -u 'C:\WINDOWS'」とか 実行すると「/c/WINDOWS」になります
270 : >>269 ありがとうございます。 >>265 cygpath版考えてみました。mapcarの部分だけ。なんか、エレガントじゃない..。 (mapcar '(lambda (arg) (if (string-match "^\\([A-Za-z]\\):/" arg) (replace-regexp-in-string "\n" "" (shell-command-to-string (concat "cygpath -u " arg))) arg)) (ad-get-args ,args-number))
271 : ディレクトリ名やファイル名に空白が入っている場合の対策が必要か。 (replace-regexp-in-string "\n" "" (shell-command-to-string (concat "cygpath -u '" arg "'")))
272 : 最後に改行入っちゃうのがなんともね・・・ elisp に chomp みたいなのあったっけ。 cygpath が必ず改行付けて返すって前提にしちゃえば (substring (shell....) 0 -1) でもいい気がする
273 : >>272 ファイル名に改行が入っている可能性を考えると、こちらの方が正解かも。 改行が入ったファイルをemacsが正しくハンドリングできるかは確認していなけど。
274 : 今まで投稿した設定例を以下にまとめています。 http://www49.atwiki.jp/ntemacs/ 「おまけ」も使えると思います。
275 : ためしに find-find 中に C-q C-j して改行含むファイルつくってみたけど セーブで普通にコケるから emacs は改行含むファイルは無理って思ったほうがいいような。 bash で touch 'hoge(改行)hoge.txt' したファイルを dired で見るとなぜかショートネーム形式の hogeho~1.txt になってるし。
276 : あとは ansi-term が完璧ならなあ (setq locale-coding-system 'utf-8) と f_bash 使うことと 起動してから stty echo -igncr することまではたどり着いたけど C-a や C-h を正しく処理するのとかリサイズへの対応が全然だめだ
277 : >>274 Good Job!! 是非,参考にさせてもらいます
278 : >>274 のおまけのコメントに書き忘れていた。今、追加した。 ;; ・Windows に ESC を入力するときは、ESC を二回入力する。 使う人がいればですが..。
279 : >>275 だめですね。cygwin上ではちゃんと認識されているようですが。 でも、substring版で使うことにしました。
280 : >>276 ansi-termはピクリともしません。調べれば何かわかるかなぁ..。
281 : termcap とか terminfo とか pty とかの unix の端末制御システムと windows のそれとの違いを勉強すればなんとかなるか・・・?
282 : NTEmacsのアイコンを本家の青色のに変えたい
283 : gnupack 版 NTEmacs のアイコンのこと言ってるの?
284 : >>264 のあたりで考えたtrampの設定は便利だけど、デカいファイルをコピー するたびにパスワードを聞かれる。なので、ssh-keygenで作成した公開鍵と ssh-agentを使って、初回一回のみパスフレーズを入力すれば、以降パスフレーズ を聞かれないようにしてみた。パスフレーズを入力しないで鍵を作る方法が 簡単だけど、セキュリティ的に好ましくないので、今回の方法は使えると思う。 設定方法はこちらにまとめた。 http://www49.atwiki.jp/ntemacs/pages/21.html
285 : やっぱ NTEmacs で ssh-agent 使おうと思うとラッパースクリプト作るしかないよねえ
286 : 一度起動したssh-agentは、emacs 落としても動いているですね。 なんか不思議。あと、環境の設定によっても違うんだと思うんだけど、 シェルスクリプトが#! で始まると勝手に実行モードがついたファイルに なるんですね。これも不思議。
287 : >>284 ~/bin/ssh_agentは不要だったので整理(削除)しました。
288 : tramp は plink で困らないなあ
289 : plinkは、サイズのでかいファイルのコピー遅くない? pscpってのを使えばいいのかな。
290 : ああ、そういう流れの話か。ごめん でかいファイルのコピーとかはしてないんで分からない 公開鍵なら Pagent で楽にできるというだけでした
291 : pagentというのがあるんですね。trampには、pscpというmethodがあるので、 これとpagentを一緒につかえば、scp method+ssh-agentと同じようなことが できるんだと思います。
292 : pagent は windows と親和性が高いから鍵管理に無理がなくていいよね。 他のソフトも使えるからパスフレーズ入力が本当に一回ですむ
293 : tramp-methodにpscpを使って、何の苦も無く動きました。 scpのパスの変換も必要ないし、こちらの方法を使う方が普通なんでしょうね。
294 : デカいファイルの転送性能を測ってみた。 サーバは、Redhat系Linux。NICはサーバ、クライアントどちらも1G。 ・putty同梱のpscp : 70Mbps程度 ・WinSCP : 110Mbps程度 ・scp : 450Mbps程度 cygwinのscpはすごい性能でびっくりしました。NICの性能をフルに使っています。 cygwin、侮れないです。
295 : 転送時の圧縮率とかの設定の違いじゃない?
296 : ネットで調べるとcygwinのscpが速いというよりもWinSCPが遅いということみたいですね。
297 : emacs-24.2-20120922.exe
298 : emacsからlocateを使う方法をまとめてみた。 http://www49.atwiki.jp/ntemacs/pages/22.html
299 : 流れ読まずに書いてみる win-ssh-agent っつーのもある。
300 : >>299 すごい。動いた。Pageantと同じ感じですね。 >>284 は不要になるけど、win-ssh-agentと共存できるからそのまま使うかな。
301 : win-ssh-askpass もちゃんとあるのか やっぱり必要なのは誰かしら作ってるもんなんだなあ
302 : ssh-pageantってのもあるよ https://github.com/cuviper/ssh-pageant
303 : >>302 これはPageantと連携できるんですかね。試してみたいと思います。
304 : ssh-pageantも動いた。こちらは環境変数の扱いはssh-agentと一緒で、 Pageantと連携するものですね。 >>284 のようなシェルスクリプトを使って連携するのがよさそう。
305 : ssh-pageantが出力する環境変数がWindows側で設定されるとwin-ssh-agentの ように使えて便利なような気がする。
306 : 最近はなるべく余計な設定なしに使う方に腐心するようになったなあ
307 : >>305 Windows Vista以降には、環境変数を設定するsetxというコマンドがあるんですね。 http://www.atmarkit.co.jp/fwin2k/win2ktips/1003setx/setx.html XPの場合は、サポートツールというものから入れれるそう。 これをつかって、ssh-pageant.exeとの連携を考えてみた。 まず、cygwinの環境で、~/bin/win-ssh-pageant.shというスクリプトを作成する。 ---- ps | grep -q 'ssh-pageant$' if [ $? -ne 0 ] then eval `/home/bin/ssh-pageant -s -q` /c/Windows/system32/setx SSH_PAGEANT_PID "$SSH_PAGEANT_PID" /c/Windows/system32/setx SSH_AUTH_SOCK "$SSH_AUTH_SOCK" fi ---- つぎに、win-ssh-pageant.batというバッチファイルを以下のとおりに作成する。 ---- <cygwinのインストールパス>/bin/bash --login /home/bin/win-ssh-pageant.sh pause ---- あとは、emacsを実行するまえに、win-ssh-pageannt.batをwindowsで一回だけ実行する。 これで、ssh系コマンドのラッパースクリプトがいらなくなった。 PuttyのPageantを既に使っているなら、これが簡単でいいかも。
308 : ssh-agent版も一緒です。こちらはパスフレーズを問われます。 ---- ps | grep -q 'ssh-agent$' if [ $? -ne 0 ] then eval `ssh-agent -s` ssh-add /c/Windows/system32/setx SSH_AGENT_PID "$SSH_AGENT_PID" /c/Windows/system32/setx SSH_AUTH_SOCK "$SSH_AUTH_SOCK" fi ---- どっちにしても、ラップスクリプトが不要となりました..。
309 : なんでお前らwinでemacs使ってんの? なんで自ら過酷な環境選んでんの?
310 : windowsがそこにあるから
311 : Windows で Emacs が使えると一番嬉しい
312 : win + ntemacs 自体はそれほど過酷じゃないっていうかわりと無設定でいけるんだけど cygwin と組み合わせてちゃんとやろうとすると実は結構めんどくさいんだよね。 まああれだよ、設定いじって悦に入りたいんだよほっといてくれ。
313 : emacswiki の Messagebox via Powershell のところみてて思ったけど powershell って windows の api も自由に呼び出せるしうまくラッパー関数作れば emacs から win32api や dll 呼び出しまくりが出来るんじゃないか? http://emacswiki.org/emacs/ElispCookbook#toc69 http://www.leeholmes.com/blog/2006/07/21/get-the-owner-of-a-process-in-powershell-%E2%80%93-pinvoke-and-refout-parameters/
314 : できないことはないけど、できてうれしいか?
315 : >>314 個人的には notifications.el が使えなかったのが気に食わなかったから Windows Form の notifyIcon 使えるようになったのはすごく嬉しい ↓みたいなのでバイナリ持ち歩かなくてすむのもちょっと嬉しい http://www.martyn.se/code/emacs/darkroom-mode/
316 : おもしろそうじゃないか
317 : powershell の引数の null を empty string に勝手にキャストしちゃう仕様のせいで FindWindow 発行するのすら一苦労だよ!
318 : ソ・ウ・カ シ・ネ ソ・ウ・カ シ・ネ ソ・ウ・カ シ・ネ ソ・ウ・カ シ・ネ ソ・ウ・カ シ・ネ ソ・ウ・カ シ・ネ ソ・ウ・カ シ・ネ ソ・ウ・カ シ・ネ ソ・ウ・カ シ・ネ ソ・ウ・カ シ・ネ ソ・ウ・カ シ・ネ ソ・ウ・カ シ・ネ ソ・ウ・カ シ・ネ
319 : emacs21くらいの時期のIMEパッチの当たったNTEmacsって どこかに落ちてませんか? 永く使ってたPentiumMマシンのHDDが死んで全部消えたorz
320 : gnupack
321 : Windows8にしたら環境変数でHOMEを設定してるのに立ち上がり直後の位置がHOMEでなくなった どうしたらいい? GNUのほうを使ってます
322 : 俺はinit.elに (cd "~") 書いてるけどwin8でどうなるかはシラネ
323 : GNUじゃないほうってのがあるのか
324 : 『Emacs実践入門』を読みながらxyzzyから乗り換えにトライ中です。 elscreen.elを入れてみたいんですが、バイトコンパイルが下記のエラーで止まります。 elscreen.el:1458:32:Error: Symbol's function definition is void: elscreen-e21-tab-create-keymap エラーの手前のログは↓と一緒です。 http://gentwoo.elisp.net/emerges/ajaxerrorlog/195526 ググったところでは、Emacs23に下げて解決したという例が 見つかりましたが、他の手段はないんでしょうか? 環境はWin7, 64bit, GNU Emacs 24.2.1 (i386-mingw-nt6.1.7601) on GNUPACK です。
325 : APEL非依存版elscreenをバイトコンパイル可能にしてみた - 備忘録 http://d.hatena.ne.jp/tam5917/20120922/1348286748
326 : >>325 お陰様でバイトコンパイルが通り、使えるようになりました。 どうもありがとうございました。 # 入れてみて気づいたんですが、tabbarと併用という訳には行かないんですね。 # 少し触ってみてからどちらを使うか選ぼうと思います。
327 : あれ?gnupackを更新したらview-modeの挙動が変わってもうた view-modeの時にqを押下するとview-mode解除だったのが view-mode解除→他のバッファに移動となる… んー
328 : >>327 Emacs24でそこら辺が変更になったみたい。 view-exit 絡みが細かく変わってる。
329 : Windows8なんだけどIMEが有効にならない事ないか?
330 : Windows8で開いた後ウインドウのインアクティブ、アクティブと切り替えないとIMEが有効にならないよ さらに、”コントロール パネル\時計、言語、および地域\言語\詳細設定”の アプリウインドウごとに異なる入力方式を設定する にチェック入れたら、全くIMEが有効にならなくなるよ
331 : gnupack版なんだけどね
332 : win8使ってる人ががんばって対応するしかないな
333 : emacsオタが新しいOS使わないとか玄人ぶるなよイカ臭い サクッと対応してくれよ
334 : gnupack使ってるくせにこれ読んでないの? http://gnupack.sourceforge.jp/docs/latest/UsersGuide.html >開発者の動作確認は WindowsXP 32bit環境のみになっています. >Windows95/98/98SE/Meは動作しない可能性があります. >Windows Vista以降のOSバージョンについては動作する可能性はありますが,サポート外になります. >gnupackのバグ改修や機能追加等のバージョンアップは本パッケージの開発者の対応可能な範囲内, >かつ開発者の作業ペースにて行わせていただきます. Win8使ってる人がパッチなりなんなり作って送るしかない
335 : エラソーに何言ってんだか いまどきXPってありえないんだよ サクッと対応しろ やる気ないんだったら辞めろ
336 : こう書いてあるんだからあーだこーだ言って常識が通用しないって 何様のつもりなんだか
337 : Windows OSのバージョン上げてIMEが動作しなくなったソフトなんて初めてだよ
338 : そもそも、gnupackの人がNTEmacs作ってるわけじゃないからなー NTEmacs自身も、IME対応のパッチも、他の人が作ったのをまとめたものでしかない win8使ってる誰かがwin8対応のIMEパッチを作らない限り、 それがgnupackに反映されることは無いよ
339 : 沖縄の仲井真知事みたいなことを言うてやがるな とにかく当事者が責任持って対応しろよ
340 : 当事者=Win8を使ってる人達
341 : 米兵に強姦されそうになった女子に素手で立ち向かえと言うてるよ 当事者意識がないとはそういう事を言うんだよ
342 : たちあがれ日本ってそういう意味だよ 当事者意識がないにも程があるだろ
343 : 残念だけどお前はもう当事者だよw逃げられないよwがんばれw
344 : 相手してくれる人がいて嬉しそうだなぁ
345 : >>329 だが Windows8でGoogle日本語入力にしたらまともになった ATOKとかでも良いのかもしれんな
346 : ATOKはWin8への対応がいまいちらしいよ
347 : Windows 7 SP1 + emacs-24.2-20120922.exe を使用。 OS の Microsoft IME でローマ字ひらがら⇒漢字変換入力中、 入力や変換文字突然消え、別フレームのバッファへ文字を書き込もうとする。 別フレームバッファが書込可なら書き込まれ、書込禁止ならベルとなる。 1日数回発生。別のWindows XP SP2 + emacs-24.2-20120922.exe + MS IME も同様。
348 : >>347 補足。 ひどい時は入力変換しようとするバッファでの入力・変換がまったく できなくなり(入れては消えるの繰り返し)、立ち上げ直すことに。 最近Ctrl+\で変換のオンオフすると直るときがあることに気付く。
349 : なんか別のバッフア上でマウスクリックしたような挙動だね? 症状がでるXPと7が同じPCなら、キーボードかマウスが壊れてんじゃないの?
350 : いえ、異なるPC。 しかもXPはノート、7はデスクトップ。
351 : その手のたまに発生するのってユーザにも開発者にもやっかいだよねえ 再現手順がはっきりするといいんだろうけど
352 : 同じ症状出てる MS-IMEじゃなくて、ATOKだけど 半角全角キー押した後、ちょっと時間をおくと安定して使える すぐにキー入力、変換しても問題ない場合もある
353 : >>350 Win7 64bit 標準IMEの環境で、emacs-24.1-20120716.exeはまったく問題はでてない。 そのあと二つバージョンがすすんで、 emacs-24.2-20120902.exe emacs-24.2-20120922.exe 0922の方はIMEがらみを修正したみたいだから、emacs-24.2-20120902.exeを試してみたらどうかね?
354 : ところで、MS-IME使いでemacs-24.2-20120922.exeをヘビーに使って問題出てないって人は、 ここ見てる中にいるのかね?w 20120902から20120922へはemacs自体のバージョン代わってないし、 修正はATOK向け対策だけ?なんでMS-IMEの人はそのまま20120902使ってる人が多いよねたぶんw
355 : 自分は Google IME にしちゃってるからなぁ
356 : >>354 emacs-24.2-20120922.exeって、gnupackのemacsってことですよね? であれば、Microsoft Office IME 2010 ですが、Windwos7 SP1 x64環境で、 全く問題なく使えています。
357 : バージョンの後についてる日付からgnupackだと勝手に解釈して話がすすんでる >>356 の環境で問題無いのなら自分もちょっと最新にして確認してみるかなあ 問題出てる人の環境は32bitなのかねえ
358 : w32-ime-buffer-switch-pがnilだとおきないみたい。 自分の場合以下で再現 w32-ime-buffer-switch-pをtに frameを2つ開く それぞれ別なファイル開く 片方でIME ONでaを押しっぱなしに(IME ONなので あああ... になる) しばらくするともう一方にあああ...が入る
359 : >>357 情報不足だった。 >>347 で問題出ている 7 は確かに 32bit なのだ。
360 : >>358 同じ条件で同じことをまず7上で再現確認済。 >>347 問題原因そのものか? しばらく7 32bit, XP上ともw32-ime-buffer-switch-pをnilにして生活してみたいが、 nil時の"IME control when buffer is switched is disabled"の副作用は何?
361 : バッファ毎にIMEのON/OFF状態を保持するかどうかじゃない?
362 : >>360 副作用つっか、w32-ime-buffer-switch-p nil のときの動作は バッファ移動時に移動まえのIMEの状態のまま別なバッファに切り替わる。 (移動前にONだとOFFだったバッファに移動してもONになる。 tだとOFFだったバッファに移動に移動するとOFFになる。) モードライン表示やカーソル色設定などやってたらなんか設定の修正必要かも。 (>>103 〜 >>105 参照) w32-ime-buffer-switch-p t だとバッファ移動時にw32-ime-sync-stateでIME ON/OFF切り替わるので、入力中にEmacsが裏でバッファ切り替えて強制的にIME ON/OFFされてなんかおかしくなってるのかも、と想像。
363 : Win7 SP1 64bit MS-IME使用 gnupackのemacs-24.2-20120922へバージョンを上げてみた w32-ime-buffer-switch-pはtのままで>>358 の症状は起きない ちょっと使ってみた限りでは不具合は無い このまましばらく使ってみる
364 : w32-ime-buffer-switch-pをnilで使用してるが、今のところ安定している感じ IME ONになった後、落ち着くまで時間がかかっていたのがなくなった 長時間使用してみないとまだ確定とは言えないけど あと、以前も書いたけど、自分の所では、IMEがONにならない症状がある これも出たり出なかったりする ちなみにOSはWin7 32bitです
365 : w32-ime-buffer-switch-p nilで数日間の使用感 >>347 の現象は(だぶん完全に)なくなった。 >>362 で記されたとおりの「IME(ON/OFF)状態が移動先バッファで継承」の仕様、 特に移動先バッファでの「同状態の切替えは要Ctrl+\の2度押し」が 作業によってストレスあり。
366 : 24.3のpretest出てますね。 ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-24.2.90.tar.gz nt/emacs-x86.manifestが抜けてるのでwindowsでのビルドにはこれを別途入手 する必要があります。 http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00459.html 24.2のnt/emacs.manifestをnt/emacs-x86.manifest にコピーでもよさそうです。
367 : >>358 の現象、テンプレのGNU emacs(x64) (やこれが元の>>210 のパッチでの ビルド)だとおきないように思えるので調べてみましたが x64 では src/xdisp.c の prepare_menu_bars() という関数で一時的に w32-ime-buffer-switch-p を nil にしているみたいですね。 その部分だけとりだしてみました。gnupack の 24.2-20120922 へのパッチ。 http://www1.axfc.net/uploader/so/2694236 とりあえず私の環境では>>358 の現象はおきなくなったように思えます。 OSはWindows7 64bitです。
368 : >>367 Win7 64bit、MS-IME、24.2(gnupack 20120922)、w32-ime-buffer-switch-p = t 以上で試してみてるけど、>>358 の現象は起きない。 それで、>>367 を見てちょっと試してみたんだけど、 未確定文字がある状態でメニューバーいじると>>358 の症状が出るね。 条件がもうちょっとあって、入力する方はIMEがON、もう一方はIMEがOFFじゃないと起きない。 他の人がメニューを特にいじらなくても症状が出るらしいのがナゾだけど、 >>367 のパッチで治ってしまうのなら、 症状が出る人の環境では入力してる最中にメニューバーをいじるのと 同等のイベントが起きてたりするってことなのかなあ。
369 : >>368 私は default-frame-alist に '(menu-bar-lines . 0) を追加してメニューバー は消して使ってるのでそれが関係するのかもしれませんね。 (tool-barも消してますが) emacs -q で起動してすこし試してみると>>358 の症状は出ないようでした。
370 : 違うか。 default-frame-alist に '(menu-bar-lines . 0) を追加しないように しても>>358 の症状でました。 読み込んでるelispになんかメニューいじるようなのがあるのかな…
371 : 368の環境で、emacs.exeを直接-qありで立ち上げて、 (setq default-input-method "W32-IME") (w32-ime-initialize) だけ実行して(これ実行しないとバッファ毎のIME ON/OFFができない) それだけで>>368 と同じ症状の環境になる(メニューいじると症状発生。入力だけなら症状出ない。) まあ、ちょっと気持ち悪いけど、パッチあてれば症状でないみたいだし、 パッチ当たった挙動のほうが好ましい感じだし、 他に問題ないようならgnupackさんにパッチを当てたバージョンをリリースしてもらえば よいのではないでしょうか?>>347 の人もこれで問題解決すればいいね。
372 : >>364 までは 32bit で問題が起き、64bit では問題なかったが、 >>367 以降は 64bit でも問題再現される、ってことだね。 >>371 こちら 32bit 環境でメニューバーの有無での検証はできてないが、 > >>347 の人もこれで問題解決すればいいね は期待したい。
373 : >>371 あ、私はemacs -qで立ち上げたあとそのまま試してました。それじゃ意味ないですね。 (setq default-input-method "W32-IME") (w32-ime-initialize) を実行してやってみると微妙に動作は違いますがやっぱりダメでした… (>>358 の手順で、aを押したとたんもう一方に あ が入る) init.elは関係なさそうですね。うーん、何だろ。 まあ、私の場合はとりあえず>>367 で起きなくなったようなので深く追求は しないことにします^^; とりあえず gnupackの開発メモ の 24.2-20120922 のところでこのパッチ当て たものを作成していただけないかはコメントしておきました。
374 : gnupackさんのところでは症状再現しなかったようですが>>367 のパッチの あたったものをひとまずリリースしていただけました。 emacs-24.2-20121201.exe
375 : emmsというプログラムをパッケージマネージャー?からダウンロードしたところ 下記のエラーが表示されました。 emms-setup.el:96:1:Error: Searching for program: no such file or directory, /bin/bash /bin/bashが見つからないと言われます。 cygwinはインストールしているのですが、これをemacsに認識させるにはどうすればいいのでしょうか? emacsを使ってみたくてcygwinもとりあえず入れただけなので、どちらも知識不足で 調べ方すらよく分かってないです。 emacsのバージョンは24.2.1を使っています。
376 : >>374 で知らせのあったemacs-24.2-20121201.exeをWin 7 32bit, MS-IME, w32-ime-buffer-switch-p t 環境下、まる1日以上ヘビーユース中、 >>347 現象一度も現われず。問題解決か。
377 : >>375 Windowsで動くemacsはいろいろあるので、バージョン番号だけじゃ何もわからない。 外部プログラムを使うと思われるemmsのようなパッケージをWindows上で動かすのは、 いろいろ大変。emacsのパッケージは基本的にUnix環境で使うことを前提としている。 外部プログラムを使わないパッケージならそのままWindowsで動くことも多いが、 そうでなければ自分で外部プログラム関係をいろいろ設定してやる必要がある。 emacsからbashが見つかるようにするには、環境変数PathをCygwinの環境に合わせて 変更している人が多い。このスレで使ってる人が多いgnupackなら設定済みでemacsを 起動してくれる。
378 : >>375 Emacs setenv PATH とかでググればヒントがあるかも?
379 : >>377 >>378 ありがとうございます。 PATHの先頭にcygwinのディレクトリを追加するLispを紹介している サイトがあったので、それのコピペでエラーは無くなりました。
380 : ちなみに、NTEmacsって64bitな環境で動作するのか不安。
381 : 64bitの環境で使ってるやつの方が多そうだ
382 : >>381 そなんだ、貧乏人でスマソ。
383 : win7 64bit で使ってるけど何の問題も起きてないな
384 : ていうか64bit専用版があるじゃん。 hp.vector.co.jp/authors/VA052357/emacs.html gnupackの人も、この64bit版はIME周りの修正の質が高いので取り込みたいと言ってるよ
385 : 64bit版は24版がないのがな
386 : emacs-24.2-20121208.exe
387 : まだ23.4で我慢。
388 : >>210 のパッチ emacs-24.2.90 用 http://www1.axfc.net/uploader/so/2708256
389 : Google日本語入力Win8で今日昨日に急に日本語入力できなくなったぞ 何度他人に不都合味あわせれば気が済むの? まともに機能しないようなもの公開するなR
390 : >>389 使わなければいいのでは???
391 : 道路に罠仕掛けておいてそんな言い草あるか さっさと直せ、出来ないなら今すぐR 今時日本語入力がまともに出来ないソフトなんてあるか糞馬鹿
392 : >>391 あとスレ違いですよ。こちらへどうぞ。 Google日本語入力 サジェスト17候補目 http://anago.2ch.net/test/read.cgi/software/1351225918/
393 : 今時日本語入力がまともに出来ないソフトなんて 糞馬鹿野郎がいじくって作ったNTEmacsだけだって言っておろうが 言い逃れするな責任持って早く直せ、出来ないならR
394 : こんな馬鹿げたことやってる奴は初めてみた お前ごときはクレーマーを適当にあしらって差し支えない 大半の場合には当てはまらないんだよ 事実を受け止め言い逃れをせず今すぐ直さなきゃ死んで当然だろこんなクソ馬鹿
395 : 気に食わないから黙ってるだけじゃあるまいな 死にたくなければとにかく早く直せ糞馬鹿
396 : おやおや殺人予告ですかw
397 : 責任取って腹切って死ぬのは当然で本人の勝手だから完全合法 俺が物理的な自殺の手段を提供したわけではない
398 : 腹を切って死ぬべきだという選挙演説も問題なかったことから 完全合法なことは明らかだろう
399 : 遵法精神なぞ欠片もないGNU乞食の分際が 手前勝手に法やら警察を盾に言い逃れしようとするから こういう事言われるんだと納得しろ
400 : とりあえずNTEmacs起動中にMS-IMEとGoogle日本語入力の切り替え操作をやればIME有効になるな
401 : もう、さびしがり屋なんだからッ!
402 : emacsスレから誘導されてこちらに来ました print "hello" こう書いたパイソンプログラムtest.pyをemacsでrun-pythonするとこう表示されます >Searching for program: no such file or directory, python 動作確認のため最新版のgnupackを新たに入手してやり直してみました。 まずpythonのインストール(apt-cyg install python)し、 /homeにtest.pyを作り、 mintty.exeでpython test.pyと入力したら正常に動いたのですが、 emacsでtest.pyを開きrun-pythonをしても上のエラーが出てしまいました なおemacsでのpythonソースへのシンタックスハイライトは問題無く動いています 何が原因なのでしょうか?
403 : >>402 PATH通してる?
404 : gnupackで設定そのままで、emacs起動プログラム使ってれば、PATHは通ってると思うんだけどね もしかしてemacs起動プログラムを使ってないのかな
405 : >>402 run-pythonをデバッグした。 run-pythonを走らせると、最終的にpythonはstart-processで起動されている。 start-processはshellを介在しない関数なので、cygwinのコマンドはデフォルトでは起動できない。 なので、以下を設定すれば良いみたい。 (setq python-python-command "C:\\gnupack_devel\\app\\cygwin\\cygwin\\bin\\python2.6.exe") \\gnupack_develは適当にインストールしたパスへ。 コマンドがpython.exeでないのは、/usr/bin/pythonがシンボリックリンクだったので、 リンク先の実体とした。3系を使うのであれば、python3.2.exeなどへ。
406 : 3系の場合は、python3.2m.exeでした。
407 : /usr/bin/pythonがEXEファイルへのcygwin方式のシンボリックリンクだから そのままじゃうまくいかないのか
408 : >>405 pythonが実行された後、エラーになるのでさらに調べた。 run-pythonでは、emacs.pyを読むためにコマンドの中でPYTHONPATHの設定をしている。 これがWindows用の形式で設定されている。これを解決するため、以下のadviceを書いた。 これでOKと思う。 (defadvice run-python (around ad-run-python activate) (let ((data-directory (substring (shell-command-to-string (concat "cygpath -u " (shell-quote-argument data-directory))) 0 -1))) ad-do-it))
409 : run-pythonがWindowsで動いてるから「c:/xxx」とかのパスを環境変数に渡すのに、 cygwinのpythonが「:」でパスをぶった切ってくれるのなw
410 : >>386 以前、一日一回は死んでいたemacsが、このバージョンにしてから死ななくなった ような気がする。gnupackさんに感謝!
411 : >>405 gnupackはconfig.iniでcygwinの/binがPATHに設定されていました。 なので、理由はシンボリックリンクだったからだけですね。 ということで、以下の設定とadviceの設定でOKと思います。 (setq python-python-command "python2.6")
412 : パスを cygpath で読み替える advice を作る関数とか作るのもいいかもね。 以前このスレででてた引数のみ cp932 でエンコードする advice を作る関数みたいなの
413 : でもwindowsのソフトを動かす場合もあるんだよね。 今回の場合もwindwos版pythonであれば、追加設定しなくとも動いたのではないかと 思うし。
414 : start-process とか call-process で特定のプログラムが渡された時に時にパス読み替えさせるとかかねえ modify-process-coding-system みたいに正規表現のパターン登録するとか・・・ java だの javac なんかは windows 版の使ってそうだしね。
415 : run-pythonの問題はちょっと特殊だと思うよ pythonコマンドがemacsパッケージ内の特定のディレクトリのパスを決め打ちで参照する このパスの形式がUNIX形式かDOS形式かはemacsパッケージ自体が決定してて、 adviceとかを使わないかぎり変更できないので問題になる しかし、普通のコマンドなら、そのコマンドが参照するパス自体が決め打ちなことはめったに無くて、 パス自体を設定する手段が提供される場合が多い。したがって、コマンドがCygwinかWindowsネィティブか に合わせて適切な形式のパスを設定してやればそれで済んでしまう
416 : 今回の問題の対応では、こんな方法も見つけた。 (setenv "PYTHONPATH" "/app/emacs/emacs/etc/:") :でだます方法。
417 : 皆さんありがとうございます。 無事run-pythonが動くようになりました!
418 : strawberry perl 付属 gcc でのビルドしか試してないけど >>388 の emacs-24.2.91 用。emacs の diff だけ。 http://www1.axfc.net/uploader/so/2718193
419 : 表 で終わる directory 下を completion しようとすると落ちていたので修正。 >>418 は 削除しました。 http://www1.axfc.net/uploader/so/2718334
420 : >>276 multi-termにトライ中。 C-aが動かないのは、設定されているTERMのterminfoがないことが原因みたい。 C-hが動かないのは、そのような設定になっているから。 ということで、以下の設定でOKでした。 (setq system-uses-terminfo nil) (delete "C-h" term-unbind-key-list) 次は、リサイズを調査。
421 : リンク張れないので、転記。白黒反転を治す設定。 (setq term-default-fg-color "White" term-default-bg-color "Black" ansi-term-color-vector [unspecified "black" "#ff5555" "#55ff55" "#ffff55" "#5555ff" "#ff55ff" "#55ffff" "white"])
422 : multi-term改め、ansi-termをまずは整理。 ansi-termが動かない原因がなんとなくわかりました。term-exec-1の最後 の方にあるstart-processの起動で、sttyがうまく設定されていないようです。 おそらく、起動シェルをf_bashにするとダメな様子。最適解かは分かりま せんが、advice書いてみました。 (defadvice start-process (before ad-start-process-for-ansi-term activate) (let ((name (ad-get-arg 0))) (if (string-match "^*ansi-term*" name) (ad-set-arg 2 "f_bash")))) その他の設定は、以下。 (setq locale-coding-system 'utf-8) ; emacsをcp932で使っていれば不要かも (setq system-uses-terminfo nil) これで、ansi-termの起動時に指定するshellをbashにすれば、別途sttyの 設定をしなくとも、ある程度動くようになると思います。
423 : locale-coding-system は utf-8 にすると current-time-zone で文字化けするのがね 影響範囲よくわからないから *-term の時だけにしたほうがいいのかもしれない
424 : >>423 TZが設定されていれば、漢字は表示されない? gnupackはconfig.iniで設定されている。
425 : >>424 TZ を emacs 外でも内でも設定しちゃえば (current-time-zone) の値がそれになるからそこに関しては問題ないけど locale-coding-system が他にどこで使われてるかわからないんだよね windows 側からのメッセージのエンコーディングを設定する変数だから元々の cp932 が妥当だとは思う
426 : >>425 windowsとしてのlocale-coding-systemはcp932かもしれないけど、LANGに ja_JP.UTF-8を設定したcygwinからみると、locale-coding-systemはutf-8 のような気もする..。混在して使ってんのがよくないんですかね。 とりあえず、term.elでlocale-coding-systemを使っている関数の部分だけに adviceを入れてみた。これで、locale-coding-systemのsetqは不要となりますね。 (defadvice term-emulate-terminal (around ad-term-emulate-terminal activate) (let ((locale-coding-system 'utf-8)) ad-do-it))
427 : ベストな設定か分かりませんが、まとめてみました。 http://www49.atwiki.jp/ntemacs/pages/26.html http://www49.atwiki.jp/ntemacs/pages/27.html
428 : (setq system-uses-terminfo nil)の設定が機能していなかったようです。 とりあえず、以下の対応でうまく動くと思います。 mkdir -p ~/.terminfo tic -o ~/.terminfo /app/emacs/emacs/etc/e/eterm-color.ti wikiも直しました。
429 : NEWS より * Changes in Emacs 24.3 on non-free operating systems --- ** Cygwin builds can use the native MS Windows user interface. Pass --with-w32 to configure. The default remains the X11 interface. ** Two new functions are available in Cygwin builds: `cygwin-convert-file-name-from-windows' and `cygwin-convert-file-name-to-windows'. These functions allow Lisp code to access the Cygwin file-name mapping machinery to convert between Cygwin and Windows-native file and directory names. トライしてみたが、ビルドが最後まで到達しなかったよ
430 : 24.2.91 で ./configure --with-w32 して試したら普通にビルドできたけど
431 : >>422 fakecygptyの作者?のメールを見つけました。 http://www.ysnb.net/meadow/meadow-develop/2005/msg00211.html http://www.ysnb.net/meadow/meadow-develop/2005/msg00367.html これを読むと、start-processで起動するプロセスは全てfakecygpty版に しているように読めます。一方、grepでは問題になると。 であれば、以下のような設定にして、fakecygpty版の設定を一箇所に まとめてしまえばと考えたのですが、問題ありますかね? http://www49.atwiki.jp/ntemacs/pages/28.html 自分の使う機能では問題なく動いているようですが..。
432 : 自分は ruby も f_ruby にしてるな
433 : fakery-program-listに追加してもらえばOKですね。 分らないのは、fakery-program-listに登録したプログラムがstart-process から起動されるとき、すべてfakecygpty版にして問題ないものかなぁと。
434 : 間違った ruby を f_ruby にしてるんじゃなくて、 「irb」 を「 f_ruby irb」 に変更してるんだった irb みたいなスクリプトだと #! 記法で ruby を直接起動しちゃうんだけど それだと対話処理が正しく動いてくれなかった
435 : run-pythonは、f_irb.exe作ってfakery-program-listに"irb"を追加したら 動いたけど、そういうことではなく?
436 : >>435 間違った。run-ruby
437 : fakecygpty は f_command にリネームしなくても fakecygpty command で起動しても機能するから arg2 を args にどかして arg2 に fakecygpty を入れてやればいいんじゃない? そうすりゃ一々 f_xxx を用意しなくても init.el の設定だけでうまくいくと思う Meadow のに近くなるね
438 : そうなんだ。考えてみる。
439 : あと凄いどうでもいいけど lambda は元々関数クォートした lambda を返すマクロになってるから わざわざ関数クォートしなくてもいいらしいよ http://www.mew.org/~kazu/doc/elisp/function.html
440 : これでよさそうだ (ad-set-args 3 (cons (ad-get-arg 2) (ad-get-args 3))) (ad-set-arg 2 "fakecygpty"))) tramp-encoding-shell を f_bash にしてたのも bash に替えるだけでよくなりそうだけど 変数追ってくと call-process してるところもあるんだよなぁ
441 : こんなんではどうでしょ。 http://www49.atwiki.jp/ntemacs/pages/28.html
442 : >>440 すごい。すっかりおんなじ。
443 : >>440 fake版のプログラムがcall-processで呼ばれているところはどの辺ですかね? というか、何を動かし方ときか教えてもらえますか?
444 : >>443 fake版が呼ばれているというより、tramp-encoding-shell が call-process されているところがあって そこは fake 版じゃなくても大丈夫なのかな?ってところ。 件のメール見る感じだと問題なさそうだけど。 tramp-sh.el の tramp-call-local-coding-command ね。 ここで tramp-compat-call-process(実態は call-process) が tramp-encoding-shell を呼んでる
445 : >>444 逆に、call-processのところはfake版じゃなくてOKなのかなぁと思っているん だけど。どうだろ?
446 : >>445 メールの感じからすると問題なさそうなんだけどね。 ちなみにネットワーク越しに使う部分ではちゃんと start-process で呼ばれてる。
447 : 以下の設定をして様子見ます。本日はここまでかな。日越してるけど。 (trace-function-background 'tramp-compat-call-process)
448 : • •
449 : >>445 少し理解が進みました。fakecygptyが必要なのは、非同期プロセスだから ですかね。なので、同期プロセス(プロセスの終了を待つ)call-process系 には不要となる..といったところでしょうか..。 http://www.bookshelf.jp/texi/elisp-manual-20-2.5-jp/elisp_37.html#SEC586
450 : Cygwinのパッケージ版のNTemacsなんだけど、日本語入力の時にカーソルが大きくなるを設定で抑制できる?
451 : >>450 それってemacs-w32でいいの?
452 : もちろんX版じゃなくてwin32版
453 : cygwin版 emacs だと fakecygpty 不要になるんだろうか
454 : cygwinのX11じゃないemacsWin32インストールするだけで動く? なんかうまくいかない
455 : >>454 なんか依存関係ちゃんと書かれていないみたいで自分でパッケージ追加しないとだめみたい 普通の emacs も入れなきゃだめで、かつ emacs-win32 のバージョンに合わせてやらないとだめだった あと libnoX-xpm だったかな
456 : しかし、ここのライブラリー変化ないですねぇ〜。 ttp://gnuwin32.sourceforge.net/packages.html
457 : Cygwinのインストーラーが腐っていてemacs-w32をインストールしようとすると強制的に古いバージョンを入れるようになっている あとライブラリが足りなきゃcygcheckで
458 : >>455 emacs本体を同じバージョンで入れなきゃいけなかったのか ありがとう無事動いたよ まだX11ではなくWindowsのEmacs環境って整えたことないんだけど、日本語対応とか考えるとNTEmacsが安定してるのかな
459 : >>458 ちょろっとしか触ってないからなんとも言えないけど GoogleIME での入力は IME パッチなしの NTEmacs とおんなじ感じだった アイコンが設定されてないところとかがちょっとさみしい感じ
460 : >>437 コマンドの位置をずらすことにより、start-processに適用している他のadvice が影響を受ける可能性があることに気づきました。対策として、aroundの方が beforeより後に適用されるようですので、そのように見直しました。 http://www49.atwiki.jp/ntemacs/pages/28.html
461 : >>460 info によると、advice を適応させる順序が指定できるそうなので そっちの方がよさそうでないかな。 http://www.bookshelf.jp/texi/elisp-manual/21-2-8/jp/elisp_17.html#SEC210 ↑の position のところ。初期値は first でこれを last にしたらどうだろう。
462 : >>461 情報ありがとうございます。実験し、意図通り機能することを確認しましたので、 wikiに反映しました。 http://www49.atwiki.jp/ntemacs/pages/28.html
463 : ねむれねえーーーーー これまた微妙なとこだけど .exe を除去するのに file-name-sans-extension はどうでしょう
464 : >>463 対応しました。コードが整理されてきていい感じです。ありがとうございます。
465 : Emacs24使ってる人います? 自分的には23.4で満足してるんですが。
466 : >>465 emacs24.2を使っているよ。でも、emacsを最新に追いかけているわけではなくて、 gnupackのemacsを最新にしている感じ。先日あった以下のリリースでは、自分の 環境では安定して動くようになった。(それまで一日一回は落ちていたのが、 落ちなくなった。) http://d.hatena.ne.jp/ksugita0510/
467 : NTEmacsのビルドなんですが、やはりjpeg6のままなんでしょうか。 このサイトメンテされていないでしょうか。 ttp://gnuwin32.sourceforge.net/packages.html
468 : 何が"やはり"なのかよくわからん。 自分でIJG jpegをビルドすれば何でも使えるのでは? 実際、gnupackのEmacs24に同梱されているのはjpeg8のようだし。
469 : >>468 さっとmingwでビルドしたけど、emacsのconfigureで認識しなくて面倒そうなので、まだjpeg6でいいや。
470 : つーか、IJG jpegをビルドといっても、mingwでやったが、うまくヘッダーファイルを認識してくれない。。もう一度やるか。
471 : >>468 IJG jpegをビルドする方法教えて頂けないでしょうか?
472 : 自分は画像ライブラリ自ビルドする根性ないので http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/jpeg-dev_8d-1_win32.zip http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/jpeg_8d-1_win32.zip とか使ってるな
473 : >>472 ありがとうございます。試してみます。
474 : >>427 漢字フォルダにcdできないのは、以下で解決できるみたいだ。 (defadvice cd (around ad-cd activate) (let ((dir (decode-coding-string dir 'utf-8))) ad-do-it)) linuxだと設定なしでも動くんだけど。もうちょっと調査。
475 : ここで聞いて良いのかわからないのですが、質問させてください。 AutoCompleteを使用しているのですが、//%と入力すると動作が一旦停止したような感じになります。 .emacsで設定している内容は以下の通りです。 (require 'auto-complete-config) (add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict") (ac-config-default) (setq ac-use-menu-map t) この現象を回避するにはどのようにすればよいか、ご存知ないでしょうか。
476 : 使用しているのは、NTemacsの23.2.1です。 最新のgnupack_basic-11.00にAutoCompleteを導入して試してみたところ、 >>475 のような症状はでませんでした。 gnupackのemacsに移行することにします。
477 : >>419 の24.2.93用。 http://www1.axfc.net/uploader/so/2786142 UNIX版Emacsスレで出てた https://github.com/Hideyuki-SHIRAI/migemo-for-ruby1.9 の修正をcmimemo.elに加えてみました。(583〜636行目を加えただけ)
478 : 24.2.93をmingw(32bit)でビルドしたら、w32fns.cで undefined reference to `w32_get_ime_status'とか言われて ビルドに失敗した。 configure時もIMR_DOCUMENTFEEDがないって言ってるし、 やっぱりmingw(64bit)じゃないとビルドできないんだろうか。
479 : 言葉足らずでしたが, >>478 は,>>477 のパッチを使ったのビルドです.
480 : >>478 すみません、configure.batの指定などは>>388 では一緒に入れておいた README.txtに書いていたのですが>>477 ではdiffしか置いてません^^; undefined reference to `w32_get_ime_status' は --enable-w32-ime がない のかな。 IMR_DOCUMENTFEED はご指摘のとおり mingw32 には無いようです。 が、--cflagsで -DIMR_DOCUMENTFEED=7 を指定すればよさそうです。 (IME前後参照変換も動いてるみたい) とりあえず私のところでは configure.bat で以下を指定して tdm-gcc 32bit でビルドできました。 --prefix (emacsインストール場所) --with-svg --enable-w32-ime --no-debug と、--cflagsに -DRECONVERSION -DDOCUMENTFEED -DIMR_DOCUMENTFEED=7 -I(画像等のライブラリ用のincludeファイルの置き場所)...
481 : >>477 w32proc.c の sys_spawnve も修正お願いします。
482 : >>481 う、すいません、よくわかりません。pidの型? どこかお教えいただけると幸いです。
483 : >>477 ビルドうまくできました.ご指摘いただいたとおりでした. ありがとうございます.非常に助かりました.
484 : >>482 >>55 に記述されているものです。 ただ、cp932 以外のコード (使用される可能性があるのは utf-8 だけ?) に _mbsinc を使って問題ないか、自信なし。 採用されなかった http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13589 で、 utf-8 -> cp6501 とみなす等の処理を追加すればより安全ではありますが、煩雑ですね。 (NEmacs24 とかできてしまいそうだ)
485 : >>484 ありがとうございます。 うまく動いているかちょっと自信ないですが、とりあえず修正してみました。 http://www1.axfc.net/uploader/so/2787577
486 : >>485 こちらこそありがとうございました。 当該の部分は未チェックですが、mingw32 でビルドし、問題なく動作しています。 24.2.93 では、w32-shell-execute がリソース不足で動かなくなる現象が発生 しづらくなることを期待しています。 (他のバグ回避のため、Emacs起動時に確保するヒープサイズが小さくなった)
487 : 24.3のrc版が出てますね
488 : NTEmacsはアニメーションGIF対応してるの?
489 : gnupackのemacsを使っています。多重起動についての質問です。 「送る」にファイルを送ってemacsで編集するとき、 emacsを多重起動させない方法はありますか? windowsの他のテキストエディタ(Meryとか)のように、 emacsが立ち上がっていなければemacsを立ち上げて編集、 emacsが既に立ち上がっていればそのemacsで編集をしたいです
490 : 一発目のemacsでサーバー立てちゃえよ
491 : >>489 自分はこんなバッチ書いて、それのショートカットを送るに入れてる。 ttp://s.ameblo.jp/tonjiru2121/entry-10469734020.html
492 : >>490-491 なるほど、そういう方法があるのですね。 勉強になります。
493 : 24.3 released!
494 : 細かい所結構変わってるのな
495 : >>488 GIF対応するようにbuildされたバイナリなら対応している C-x C-fで読み込むと静止した状態、RETでアニメーション実行 デフォルトではアニメーションは1回で終了だけど、 変数image-animate-loopがtの時にはアニメーションを繰り返す 後者の場合は再度RETでアニメーション停止
496 : >>495 > C-x C-fで読み込むと静止した状態、RETでアニメーション実行 この発想はありませんでした 公式ビルド使ってますがちゃんと動きました image-toggle-animationで動かせたんですねえ
497 : eshellのチルダ周りがいまひとつな感じになってんだけど なぬか情報無いですか? バッファ上では Char: ~ (126, #o176, #x7e) $ find-file ~/. ←Tab補完しようとしたら read only〜で受け付けない ..それでもTab入れ続けると たまに 「$ find-fic:\User\usr\ 」こんな感じに $rm *~ も効かない
498 : >>497 \~
499 : >>485 でも 24.3 に当たるとは思いますが、とりあえず 24.3 用。 少し cmigemo まわりなど変更しています。 http://www1.axfc.net/uploader/so/2832125 テンプレにある GNU emacs(x64) に同梱のパッチを元に emacs 24.3 を mingw-w64 (32bit, 64bit) でビルドできるようにしてみたパッチです。 w64 でない mingw (mingw32) の gcc でも一応ビルドできます。 MSVC でのビルドは未考慮です。 ダイナミックロード機能はうまく動かせなかったので入っていません。 cmigemo は GNU emacs(x64) のダイナミックロード機能追加前の方法で 組み込むようにしてみました。(前のパッチの .a でリンクするのはやめ) cmigemo.el は https://github.com/emacs-jp/migemo の migemo.el をもとに修正してみたものにしてあります。
500 : 24.3をMSYSでコンパイルしようと思ったんだけど、make bootstrapでエラー orz rm: cannot lstat `gl-tmp': No such file or directory make[3]: [gl-stamp] Error 1 (ignored)
501 : ttp://lists.gnu.org/archive/html/bug-gnu-emacs/2012-11/msg00991.html この問題かと思ったけど、パッチ当ててもビルド失敗した orz。
502 : >>500 ignored って出てますし、そのエラーは無視されるだけなんじゃないですかね。 別なところで止まっているのでは。 cygwin でビルドしてますが make[3]: [gl-stamp] Error 1 (ignored) は私のとこでも出ます。
503 : >>502 そうですね。ignoreされてるのは知ってるんですが、その先にビルドが進まなくて困って います。
504 : >>503 cmd (コマンドプロンプト) で止まってますか? MSYS だと cmd /c を cmd //c にすればよいようです。 (そういう修正がtrunkには入ってる) src/makefile.w32-in の cmd /c (2か所)を cmd //c にしてみるとビルドでき ているみたいです。(今 lisp 下のバイトコンパイル中) #cygwinからできるから入れなくていいやと思ってたけどMSYS入れちまった^^;
505 : http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-11/msg01023.html このパッチを試してみます。
506 : うーん、なんかビルドエラーになるな、24.3はgnupackの中の人待ちだな、こりゃw
507 : emacs for gnupack 24.3のビルド - gnupackの開発メモ http://d.hatena.ne.jp/ksugita0510/20130316/p1
508 : emacs for gnupack 24.3のビルド(configureオプション修正) http://d.hatena.ne.jp/ksugita0510/20130317/p1
509 : >>506 > うーん、なんかビルドエラーになるな、24.3はgnupackの中の人待ちだな、こりゃw やっぱりそうでしたか。私も駄目です。
510 : ビルドできないのは64ビット? 32ビットMSYSでcygwin同様ビルドできているけど。
511 : >>510 > ビルドできないのは64ビット? いや、32bitです。当分、23.4を使うことにします。
512 : 24.3 の公式ビルドでてるみたいですね。 http://ftp.gnu.org/gnu/emacs/windows/emacs-24.3-bin-i386.zip
513 : >>512 自ビルド出来ないのが、納得できない。
514 : exitでcmdからぬけたらええがな
515 : 今回安定版らしいしCygw嫌いは 23.4(x64)の人の再登場を願うしかねぇな
516 : Cygw嫌いじゃないけど私のなんちゃってパッチよりちゃんとしたもの 出してくれるの期待してる
517 : >>472 それ自分駄目でした。jpg表示が出来なかった。 あと、24.3でskkのビルドが出来ない。 $ make EMACS=/usr/local/share/emacs/24.3/bin/emacs.exe PREFIX=/usr/l ocal LISPDIR=/usr/local/share/emacs/24.3/site-lisp VERSION_SPECIFIC_ LISPDIR=/usr/local/share/emacs/24.3/site-lisp /usr/local/share/emacs/24.3/bin/emacs.exe -batch -q -no-site-file -l SKK-MK -f SKK-MK-compile Loading d:/home/hoge/cvs_work/skk/main/SKK-CFG... Generating autoloads for d:/home/hoge/cvs_work/skk/main/skk-cursor.el... Wrong type argument: stringp, nil Makefile:31: recipe for target `elc' failed make: *** [elc] Error 127
518 : >>517 すいません。ddskk-15.1でビルド出来ました。
519 : これgnupackさんが使ってるのと同じものなので表示出来ないはずがないと おもいますけど… emacs.exe の場所へは libjpeg.dll でコピーするか、 dynamic-library-alist を変更するかすればよいのでは。
520 : 今度は、wanderlustがうまく行かない。。やっぱ24はキツいなぁ。
521 : wanderlust は https://github.com/wanderlust/wanderlust からもってくればいいんじゃないかな。
522 : そう言えばWnderlustのMLでw32-symlinks.elの話が出てたな。 > > (defadvice insert-file-contents-literally > > (before insert-file-contents-literally-before activate) > > (set-buffer-multibyte nil)) > > gnupack の利用者は上記の advice を無効にし、以下の advice を使うか > 添付のパッチを w32-symlinks.el に当ててみてください。 > > # パッチは**さんに DM で送ったものから minimal なものに変えています。 > > (defadvice w32-symlinks-parse-shortcut (around emacs23-fix activate) > (let ((default-enable-multibyte-characters nil)) > ad-do-it))
523 : 他でも使われてるであろう insert-file-contents-literally に直接 advice はいかがなものかと思ってたから これは助かるわ。
524 : >>521 ありがとうございます。でもmasterから持ってきても、ntemacs24.3だとコンパイルエラーになります。 うーん、困ったemacs24。 $ make EMACS=/usr/local/share/emacs/24.3/bin/emacs PREFIX=/usr/local \ > PIXMAPDIR=/usr/local/share/pixmaps/wl LISPDIR=/usr/local/share/ema cs/24.3/site-lisp \ > VERSION_SPECIFIC_LISPDIR=/usr/local/share/emacs/24.3/site-lisp \ > MANDIR=/usr/local/share/man INFODIR=/usr/local/share/info /usr/local/share/emacs/24.3/bin/emacs -batch -q -no-site-file -l WL-MK -f compile-wl-package \ /usr/local/share/emacs/24.3/site-lisp /usr/local/share/pixmaps/wl Loading d:/home/hoge/src/wanderlust-master/WL-CFG... Loading d:/home/hoge/src/wanderlust-master/WL-ELS... Cannot load `mime-setup'. Please install SEMI Makefile:30: recipe for target `elc' failed make: *** [elc] Error 127
525 : >>522 忘れてた。。 --- w32-symlinks.el.orig2013-03-16 07:36:04.447724600 +0900 +++ w32-symlinks.el2013-03-17 19:55:58.562132100 +0900 @@ -262,6 +262,7 @@ ;; reverse-engineered by Jesse Hager <jessehager at iname.com> ;; available from http://www.wotsit.org/download.asp?f=shortcut. (with-temp-buffer + (set-buffer-multibyte nil) (let ((inhibit-file-name-handlers (cons 'w32-symlinks-file-name-handler (and (eq inhibit-file-name-operation 'insert-file-contents)
526 : >>524 Please install SEMI ってでてるけど?
527 : >>526 すみません。wlのインストールが上手く行きましたが、今度はemacs-w3mでエラーになっちゃいました(><)。 だらだら書いて申し訳ありません。これとの依存のせいか、wlとの依存のせいか、byte-code: Cannot open load file: elmo-shimbunになってしまいました。 $ ./configure --prefix=/usr/local --with-emacs=/usr/local/share/emac s/24.3/bin/emacs \ > --with-lispdir=/usr/local/share/emacs/24.3/site-lisp/w3m \ > --with-icondir=/usr/local/share/pixmaps/w3m \ > --mandir=/usr/local/share/man --infodir=/usr/local/share/info checking whether make sets $(MAKE)... yes checking for a BSD-compatible install... /usr/bin/install -c checking for makeinfo... makeinfo checking for texi2dvi... texi2dvi checking for ptex... ptex checking for jbibtex... false checking for dvipdfmx... dvipdfmx checking for texi2pdf... texi2pdf checking for egrep... egrep checking for /usr/local/share/emacs/24.3/bin/emacs... /usr/local/share/emacs/24.3/bin/emacs checking what a flavor does /usr/local/share/emacs/24.3/bin/emacs have... Emacs 24.3 configure: error: Emacs 24.3 is not supported.
528 : emacs-w3m はなんか無理やりバイトコンパイルだけした記憶があるな
529 : ちょっと、やはりemacs24はDebian testingでもまだ無いから、23.4を使い続けることにします。 ご迷惑をお掛けしました。
530 : >>529 あー、断念されちゃったみたいですが、とりあえず。 24のどのバージョンでやったか忘れましたが、私が emacs-w3m をインストー ルしたときは cvs で最新開発版をもってきてやりました。 (取得方法は http://emacs-w3m.namazu.org/index-ja.html 参照) configure を作るために autoconf とか必要だったかと思います。 ntemacs関係ない話になってきたのでこのへんで。失礼しました > all
531 : >>530 ありがとうございます。再度emacs-w3mをcvs update -dPAしてautoreconf掛けたら、うま く行きました。しかし、wlのIMAPやPOP3のフォルダーを見ると、iso-2022-jpのメールが見 れなくなってしまいました。。。 Creating msgdb... 89% Unknown charset: ISO-2022-JP [2 times] Creating msgdb... 94% Unknown charset: ISO-2022-JP [3 times] Creating msgdb... 97% Unknown charset: ISO-2022-JP [2 times]q Creating msgdb...done
532 : >>531 うーん…これは見当つきません。初めて見るメッセージです…
533 : 24.3 の公式バイナリいらっしゃいましたー
534 : >>512
535 : GNUPACKの中の人最近忙しいのかな。emacsもまだテストリリースだし。
536 : meadowについて語ってくれなスレッド http://toro.2ch.net/test/read.cgi/unix/1005460254/ おいどういうことだこれ 何が潰してみろだこら 260 [2013/04/14(日) 00:55:51.44] 名無しさん@お腹いっぱい。 <sage> じゃあ使うな 潰してみろ 261 [2013/04/14(日) 01:21:30.36] 名無しさん@お腹いっぱい。 <sage> 驚愕!NTEmacsを新参呼ばわりとは!
537 : このゴミども叩きしてやっから!!! 259 [2013/04/13(土) 21:19:46.64] 名無しさん@お腹いっぱい。 <sage> meadowは開発がうまく引き継がれなかったの? gnupackとかWikipediaにすらのってない新参でしょ? 260 [2013/04/14(日) 00:55:51.44] 名無しさん@お腹いっぱい。 <sage> じゃあ使うな 潰してみろ 261 [2013/04/14(日) 01:21:30.36] 名無しさん@お腹いっぱい。 <sage> 驚愕!NTEmacsを新参呼ばわりとは!
538 : この即レスはないわ・・・きもっ お望み通り潰してやるよwwwwwwwwwwwwww
539 : こらあ でこいや〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
540 : sage
541 : 定期つぶしあげ 260 [2013/04/14(日) 00:55:51.44] 名無しさん@お腹いっぱい。 <sage> じゃあ使うな 潰してみろ 261 [2013/04/14(日) 01:21:30.36] 名無しさん@お腹いっぱい。 <sage> 驚愕!NTEmacsを新参呼ばわりとは!
542 : 258 [2012/12/21(金) 12:07:05.57] 名無しさん@お腹いっぱい。 <sage> もうネット上にmeadow使いの居場所はないってこった ■4ヶ月後 259 [2013/04/13(土) 21:19:46.64] 名無しさん@お腹いっぱい。 <sage> meadowは開発がうまく引き継がれなかったの? gnupackとかWikipediaにすらのってない新参でしょ? ■即レス 260 [2013/04/14(日) 00:55:51.44] 名無しさん@お腹いっぱい。 <sage> じゃあ使うな 潰してみろ 261 [2013/04/14(日) 01:21:30.36] 名無しさん@お腹いっぱい。 <sage> 驚愕!NTEmacsを新参呼ばわりとは!
543 : gnupack作者ははvimの自力ビルドもできないのでレベルがひくすぎ http://d.hatena.ne.jp/ksugita0510/20121006/p1 最近 gvimのバージョンアップが行えていないのですが,実はパッチ 7.3.653でビルドが失敗しており, その原因が分かっていないためだったりします. vim-7.3.tar.bz2と vim73src.zipを展開して, ftp://ftp.vim.org/pub/vim/patches/7.3 のパッチをすべて適用したソースに対し, MinGWでコンパイルしたのですが, 「xpm/x86/lib/libXpm.a: could not read symbols: No more archived files」となって うまくいかないようです.
544 : それなのにgnupack(本家Emacs+IMEパッチ)に変わるwindows用emacsが いまだにないのは嘆かわしいことだ これは現状を見ないふりしてなんでも叩いてくる非生産的クズどものせい
545 : vimすらまともにビルドできないのによくやってるわなあ・・・
546 : 文句言うならキミがやりなよ。 やらないなら、やってくれる人にアドバイスしてあげればいい。 自分で何もしないで、他人を手伝いもしないで、やってくれる人をけなしてるだけかよ あと日本語対応Windows版Emacsはこっちもあるぞ。 http://hp.vector.co.jp/authors/VA052357/emacs.html 雑誌SoftwareDesignで開発記事を連載していた(「Emacs 64bit化計画!」) http://gihyo.jp/magazine/SD/archive/2013/201303
547 : なにこれw
548 : 23.4で十分なんだけどなぁ。。24はちょっと変更点あり杉。
549 : Emacs24.3で、cp5022x.elを使っている方いますか? 自分は起動時に、cp5022.xのロードに失敗してしまいます。 何かいい方法はないでしょうか。
550 : >>549 http://nijino.homelinux.net/emacs/cp5022x.el cp5022x.elってこれだよね? 64bit版Win7SP1上で、MinGW+24.3のソース+gnupackのパッチでbuildしたNTEmacsだけど、 ↑のcp5022x.elをsite-lispの下に置いて、Emacs起動して、*scratch*バッファで (require 'cp5022x) とした限りでは、特にエラーとか発生せずにロードできているみたいだよ 使い方判らないのでそれ以上は試してません
551 : gnupack の emacs を最大化で起動するには config.ini をどの様に書けばいいのん?
552 : >>551 init.elへ設定書くのはだめなの?
553 : >>550 > >>549 > http://nijino.homelinux.net/emacs/cp5022x.el > cp5022x.elってこれだよね? > 64bit版Win7SP1上で、MinGW+24.3のソース+gnupackのパッチでbuildしたNTEmacsだけど、 > ↑のcp5022x.elをsite-lispの下に置いて、Emacs起動して、*scratch*バッファで > (require 'cp5022x) > とした限りでは、特にエラーとか発生せずにロードできているみたいだよ > 使い方判らないのでそれ以上は試してません 自分は、emacs起動時に以下のエラーが出ます。 Symbol's value as variable is void: mime-charset-coding-system-alist
554 : >>553 >Symbol's value as variable is void: mime-charset-coding-system-alist gnupackに標準添付のinit.elを使ってるのかな? 自分はこれ使って無いので想像なんだけど、 mcs-20ってモジュールをロードした後にmime-charset-coding-system-alistにアクセスするんだよね。 ネットに転がってるmcs-20.elを見るとmime-charset-coding-system-alistを定義してるので成功し そうなもんだけど、失敗するってことはmcs-20.elのロード自体が失敗してるとかじゃないのかね? cp5022x.el自体とは特に関係無いと思う。
555 : >>554 うーん。23.4から24.3に移行しようとしたのですが、やはり駄目でした。
556 : >>555 うーん?何?cp5022x.elだけでも問題出るの?
557 : >>551 init.elにこの設定ではだめ? (add-hook 'window-setup-hook #'(lambda () (w32-send-sys-command ?\xF030)))
558 : >>557 出来ました いつもありがとう! Emacsスレの人はいつも解を用意してくれるから大好き!
559 : >>553 > >>550 > > >>549 > > http://nijino.homelinux.net/emacs/cp5022x.el > > cp5022x.elってこれだよね? 自分は、cp5022x.el以外に、このサイトのコンフィグをそのまま貼り付けているのですが、 それだとエラーが出てしまいます。 しかし、それだと機種依存文字(丸数字)が出ないので、困りものです。
560 : >>559 GnusとかWanderlustとか使って無いなら、 最後の方 ;; Gnus 〜 ;; SEMI 〜 この辺をコメントアウト(前に;;をつける)してしまえよ。 GnusとかWanderlustとか使うなら、 SEMI関連を24.3対応版にアップデートする必要があるのかな。
561 : >>560 > >>559 > GnusとかWanderlustとか使って無いなら、 はい、使っています。 > GnusとかWanderlustとか使うなら、 > SEMI関連を24.3対応版にアップデートする必要があるのかな。 これは、semi関連のエラーなんですか、ありがとうございます。 でも、semiのHEADが2003年なんですよねぇ。。 しばらく、semiがアップデートするまで、23.4で様子を見てみます。 あと、wlのメーリングリストで見付けたんですが、wl自体も24に対応させる必要があるみ たいです。
562 : >>561 https://github.com/ikazuhiro
563 : このようにWindows環境でEmacsを常駐化して”送る”でテキストファイルを送って早く開く事ってできるのかな? d.hatena.ne.jp/tyru/20130430/vim_resident 今は早く開いて作業をしたい時のエディタとガッツリ編集したい時用のEmacs(gnupack)でわけてるから、これが出来たら凄く捗るんだけどなぁ…なんて妄想してます
564 : init.elに(server-start)とか追加しておいて、 emacsclientw.exeあたりをSendToに登録しておけばできるんじゃないのかね。
565 : >>563 普通に拡張子.txtをemacsに関連付けすればいいのでは?
566 : いまいち理解しきれてないので少々怪しげですが^^; >>499 のパッチをw32_call_lisp_thread()を使用しないようにしてみました。 ime-enable-document-feedがtのとき(blink-cursor-mode 0)すると変換時に そのあたりで固まるので。 あと本家trunkでmingw-w64での32bit版ビルドができるようになっているので そこらもtrunkにあわせ修正したつもりです。 http://www1.axfc.net/uploader/so/2888671 >>499 のパッチ(か、gnupack emacs-24.3-ime-2013-03-16.patch) を当てた後に当ててください。 ビルド時のconfigure.batの指定はパッチ前と同じでよいです。 ただし--cflagsに-DUSE_W32_CALL_LISP_THREADを指定した場合は前と同じに w32_call_lisp_thread()を使用するものになります。
567 : もう一つ、cygwin emacs-w32用imeパッチ。 http://www1.axfc.net/uploader/so/2888672 emacs-24.3の元ソースに当てて ./autogen.sh ./configure --with-w32 \ CFLAGS="-O2 -DUSE_W32_IME -DRECONVERSION -DHAVE_RECONVERTSTRING \ -DDOCUMENTFEED -DHAVE_IMR_DOCUMENTFEED" make でビルドしてください。 cygwin64のパッチも混ぜてあるのでcygwin64でもビルドできるはずです。 configureまわりの修正方法がよくわからなかったのでsrc/config.hに#define されるようにはなっていません。 configure実行時にCFLAGSで上記のように指定してください。 gcc-3だと(少なくとも私の環境では)configureでエラーになったのでgcc-4を インストールしておいた方がよいかと思います。 -DHAVE_CMIGEMO追加でcmigemo組み込みも可能です。 組み込む場合はcmigemoソースを取得して ./configure make cyg-install でインストールしておいてください。
568 : 早っw gnupackさん>>566 当てたもの もう置いてるw
569 : コレ(>>563 )とはちょっと違うけどタスクトレイに常駐してファイルを開いた時に素早く開ければ便利だと思った。
570 : >>563 とも>>569 とも違うけど開きっぱなしにしといてファイルをドラッグ&ドロップ とかじゃだめなんかね
571 : gnuclientとかでいいんじゃね?
572 : 失礼します、ここ情報を参考にさせて頂いて 自分でbuildしたEmacs 24.3.1 (i386-mingw-nt6.1.7601) (IMEのパッチはemacs-24.3-ime-2013-03-16) >configure.batのオプションは --no-debug --with-gcc --enable-w32-ime --with-svg --cflags -DRECONVERSION --cflags -DDOCUMENTFEED --cflags " -DIMR_DOCUMENTFEED=7" でIME(MSとGoogle)から日本語入力すると???に化けるんですが、何故か分かりますでしょうか? gnupackのemacsや公式の24.3バイナリなら同じinit.elの設定で問題無いので ビルド時におかしなことになってる気がするのですが…
573 : gnupackの24.2以前のパッチだと-DIME_UNICODEなしでビルドすると化けてたから ビルドするソース間違えたとか? そうでないならわかりません。
574 : cygwin emacs-w32用パッチ(>>567 )を少し修正。 パッチ本体は変わりませんが>>567 でCFLAGSに-Dで指定していたものを configureでsrc/config.hに#defineするようにしてみました。 http://www1.axfc.net/uploader/so/2898856 >>567 のパッチ後に当ててください。 ./autogen.sh ./configure --with-w32 make でビルド。デフォルトで w32-ime、reconversion、documentfeed、 (migemo.hがあれば)cmigemo が有効になるので./configureでパッチ関係の 指定は不要。無効にしたい場合に以下を指定。 --without-cmigemo : cmigemo組み込み無効 --without-documentfeed : DOCUMENTFEED無効 --without-reconversion : RECONVERSION、DOCUMENTFEED無効 --without-w32-ime : W32-IME、RECONVERSION、DOCUMENTFEED無効 デフォルトでCFLAGSが-g3 -O2になるようなのでビルドしたemacsのファイル サイズがデバッグ用情報で大きくなります。気になるようならconfigure時に CFLAGS=-O2を指定するか、ビルド後にstrip emacs.exeするなどしてください。
575 : gnupack最高。メンテナの人、ありがとう。 Fixed98Epson使いたいんだけど、どうすればいいんだろう。 やったこと: 「メニュー>オプション>標準のフォントを設定」で、 Fixed98Epsonをえらんだら、↓って言われて蹴られた。 set-face-attribute: Font not available: #<font-spec nil nil Fixed98Epson nil nil nil nil nil 12.0 nil nil nil ((:name . "Fixed98Epson-12") (user-spec . "Fixed98Epson-12"))>
576 : gnupack ありがと 現状おかしな部分があるんで見てもらえると助かります ごめんなさい、深追いはしてないです OSはWindows8 pro、IME はWindows8 に付属したMS-IMEです ・でかいファイルを開いて end-of-buffer() → beggining-of-buffer() すると その直後の window-start(), window-end() が非常に遅い end-of-buffer() → (goto-line 1) のあとは問題ない このため linum-mode がとても遅くなる ・IME ON/OFF の切り替えがなんだかおかしい いわゆるX mouse状態で使っている関係もあるかも MS-IME側のON/OFF切り替えキーで制御してるんだけど、emacs側と同期していないような感じ mini buffer 使うときに結構ストレスがたまる で、 X window での xev みたいなもの(イベント表示)が実現できたように思うんだけど、 何を使えばいいんだっけ? Meadow で isearch + IME を実現しようとしているときに 散々使った覚えがあるんだけど もう一つ emacs-clang-complete-async が動いている人がいたら情報ください save-buffer() / kill-buffer() すると固まっちゃうんだ
577 : 他はわからんのでIMEのとこだけ。 X mouseって何かわかりませんがタスクバーのIMEの表示がON/OFFで変わらない とかなら、Windows8だとそんなもんかと。 8のIMEまわりは7以前と何か違っているようでemacsからは7以前と同じには ならないようです。ON/OFFできないとかこのスレで誰か騒いでた。 >>499 以降のパッチでは コントロールパネル→入力方法の変更→詳細設定 の 「アプリウインドウごとに異なる入力方式を設定する」にチェック無し の場合はとりあえず使える、ぐらいにはなってると思いますが(そうしている つもり)、チェック有りのときに全くON/OFFできなくなるのはどうすればいい かわかりません。このあたり詳しい方いたら情報もらえるとうれしい。 minibuffer使用時のストレスってのはON/OFFどっちになってるのかわからない ってことですかね? 私はON/OFFでカーソルの色を変えてるので特に不便は感じていません。
578 : w32-symlinksについて教えてください。 Windows7の上で動かしているgnupack 11.00でdiredを動かし、 適当なファイルにカーソルを当ててSキーを押すと、Windowsの ショートカットが作成されます。 これが、英数のファイルだと正しくショートカットとして diredから表示されるのですが、漢字を含むファイルだと ショートカットとして表示されません。(.lnkがsuffixの普通の ファイルとして表示される。) つづく..
579 : ただ、その漢字ファイルに対し、Windowsのシェルからショート カットを作ると、diredからも正しく(ショートカットとして) 表示されます。 w32-symlinksは、ホームディレクトリにできるw32-symlinks-ln-s.js というスクリプトでショートカットを作っているようなので、 これを直接コマンドプロンプトから動かしてショートカットを 作ってみましたが、状況変わらずでした。 w32-symlinks-ln-s.jsで作成したショットカットに対して file-symlink-pをするとnilが返るのが問題のような気もして いますが、この辺りについて何か分かる方おりますか?
580 : >>577 ありがと X mouse っつーのは、マウスカーソルがあるところにフォーカスが移る設定のこと 以前は power toy の中に設定するツールがあったんだけど、今はないのでレジストリをいじると これ使うと、以前から微妙におかしな動きをするアプリがあったんだよね Meadow も微妙だったような ストレスのほうだけど、 mini buffer に移ってから最初の切り替えがスルーされるんで、 どっちのモードにいるんだかわからなくなっちゃうってことかな とりあえず、カーソル色の切り替えを有効にしてみました ほかのことは時間を見つけてちょっとずつ進めていきます
581 : >>578 diredで正しく表示されるショートカットとされないショートカットでは、 ショートカットのFlags領域の内容が違うことが分かりました。 ithreats.files.wordpress.com/2009/05/lnk_the_windows_shortcut_file_format.pdf Windowsではどちらも同じように見えるのですが..。
582 : >>581 英数文字のファイル名の場合は問題ないなぁと眺めていくと、 w32-symlinks-unicode-to-asciiの変換でエラーとなっていることが分かりました。 この関数は英数文字の変換のみを前提にした実装となっているようです。 なので、以下のアドバイスで内容を置き換え、とりあえず動くようにしました。 (defadvice w32-symlinks-unicode-to-ascii (around ad-w32-symlinks-unicode-to-ascii activate) (setq ad-return-value (decode-coding-string (ad-get-arg 0) 'utf-16le))) あとは、dired-do-renameがうまく動かないのを調べてみたいと思います。
583 : >>582 同じフォルダ内の移動は、以下でうまくいくようになりました。 (defadvice w32-symlinks-parse-shortcut (around ad-w32-symlinks-parse-shortcut activate) (if (file-exists-p (ad-get-arg 0)) ad-do-it)) でも、別フォルダに移動すると、リンク先のパスも一緒変わります。 (Windowsのシェルで作ったショートカットは変わらない。) (setq w32-symlinks-shortcut-target t) とすると、ショートカットの表示がそのようになるので、これが正しい挙動なのかなぁとも。
584 : >>576 > もう一つ > emacs-clang-complete-async が動いている人がいたら情報ください > save-buffer() / kill-buffer() すると固まっちゃうんだ 動いてます。 win7 64bit cygwin + gnupack emacs-only
585 : >>576 > > save-buffer() / kill-buffer() すると固まっちゃうんだ このときに、タスクマネージャーを開いてclang-complete.exeを終了させたら復帰しませんか?
586 : gnupackの 24.3.1 of 2012-05-03 を Win7 64bit SSD機で使わせてもらってます。 日本語入力してるとたまに落ちます。 以前は同じ環境で 24.2 2012 09 02をずっと使っていて問題なかったです。 24.3にしてからやったのは wlを 201209230900に上げたのと emacs-w3mの最新を checkoutして入れたぐらいです。 でも落ちるのはこれらと関係なくソースのコメントとか書いてる時が多い(単にその時間が多いだけだろうけど)です。 何か原因究明のヒントなどあれば宜しくお願い致します。
587 : 24.3のimeまわりで以前からの変更の大きいのは前後参照変換あたりなのでとりあえず (setq ime-enable-document-feed nil) をinit.elに入れてみるとどうでしょうか。
588 : ありがとうございます。 そういえば…elscreenも、何か相性悪くなっていたので tabbarに変えました。 関係無い気はしますが、使用/不使用で試して見ます。
589 : >>587 この可能性高いかも… 自分、blink-cursor-mode 0で点滅止めて使ってました。
590 : 点滅止めて明らかに影響ある(固まる)のはgnupack emacs-24.3-20130317 で、emacs-24.3-20130503では点滅止めること自体は問題ないと思いますが… 私はそんなにヘビーにemacs使ってないからか今のところ落ちないのでよくわか りませんが、前後参照変換を無効にして落ちなくなったのなら点滅はたぶん 関係なくて20130503での修正に何かしらまずいところがあるような気がします。
591 : >>585 はい。復帰します。でもこれじゃ実用にならないんで、どうしたもんかと。 C側の標準出力フラッシュの問題かとも思って、さらっとソース眺めてみたらfflush()呼んでたんで問題なさそう。 それに受信側の問題だったら固まらそうな気がするんで、送信側の問題かと思っています。 一応、C側にバッファ内のソースをまともに encode せずに単に binary で送っていたんで、 encode してから送るようにしてみたんだけど変化なしだった。こんな感じ。 (defun ac-clang-send-source-code (proc) (save-restriction (widen) (let ((source-buf (current-buffer)) (cs (coding-system-change-eol-conversion buffer-file-coding-system 'unix))) (with-temp-buffer (set-buffer-multibyte nil) (let ((tmp-buf (current-buffer))) (with-current-buffer source-buf (decode-coding-region (point-min) (point-max) cs tmp-buf))) (ac-clang-process-send-string proc (format "source_length:%d\n" (length (string-as-unibyte ; fix non-ascii character problem (buffer-substring-no-properties (point-min) (point-max)))))) (ac-clang-process-send-string proc (buffer-substring-no-properties (point-min) (point-max))) (ac-clang-process-send-string proc "\n\n"))))) もうちょっと真面目に調べたいとは思っているんだけど本業が忙しくて...
592 : >>591 本業はなんなの?
593 : >>591 > >>585 > はい。復帰します。でもこれじゃ実用にならないんで、どうしたもんかと。 > C側の標準出力フラッシュの問題かとも思って、さらっとソース眺めてみたらfflush()呼んでたんで問題なさそう。 > それに受信側の問題だったら固まらそうな気がするんで、送信側の問題かと思っています。 > 一応、C側にバッファ内のソースをまともに encode せずに単に binary で送っていたんで、 > encode してから送るようにしてみたんだけど変化なしだった。こんな感じ。 > save-buffer, kill-bufferで問題がでるのは思い当たる節がある。 上記2関数は (add-hook 'kill-buffer-hook 'ac-clang-shutdown-process nil t) (add-hook 'before-save-hook 'ac-clang-reparse-buffer) されていて、 ac-clang-reparse-bufferに問題があがる。 うちだとshutdownはちゃんと動いてる ac-clang-reparse-bufferが実行されると clang-complete.exeの void completion_doCmdlineArgs(completion_Session *session, FILE *fp) が実行されてlibclangのAPI completion_reparseTranslationUnit(session) が実行されるのだが、この関数でクラッシュしてclang-completeが落ちる なので、(defun ac-clang-send-cmdline-args (proc)を呼ぶと落ちる。 とりあえずこの代替として、 (defunc update () (shutdown) (launch)) でcflagを再セットするようにした。
594 : >libclangのAPI >completion_reparseTranslationUnit(session) ちょっと訂正。 APIはさらにこの中の clang_reparseTranslationUnit でした。 clang-completeはどこでビルドしてますか? 当方の環境は cygwin-1.7.18 clangはcygwin bundle版 clang/llvm 3.1.3 clang-completeはこれを使ってビルド。 上記のAPIクラッシュはclang側でも認識しているようで、3.1以降でfixされているようです。 clang-complete-asynはclang3.1以外で試してないです。 そのうちやる予定ですが・・。
595 : > 一応、C側にバッファ内のソースをまともに encode せずに単に binary で送っていたんで、 > encode してから送るようにしてみたんだけど これですが、ちょっと参考にさせてもらいます。 別の不具合があって、 clang-complete対象バッファに2バイトコード(コメントだったとしても)があると補完されず、clang-completeがエラーを返す。 この問題はlibclangだけの問題で、 同じコードを clang.exeから直接補完指定した場合は正しく動きます。 あと、上のencode処理ですが、該当バッファだけ行っても includeされるファイルまでは適用されないので、どうしようかと思ってます。
596 : >>592 ただのソフト屋。本業で使えればかなりうれしいんだけど…ってやつ >>595 cygwin/clang は同じものっぽい。 関係ないと思いたいけど、前にも書いたけど Windows8 pro 使ってる clang-complete.exe が落ちるってことはない > includeされるファイルまでは適用されないので、どうしようかと思ってます。 includeされるファイルについては保存されているものが使われるんで、問題ないような > clang-complete対象バッファに2バイトコード(コメントだったとしても)があると補完されず、clang-completeがエラーを返す。 「対象行のポイントより前の部分に2バイトコード」ってことならしたのが効くかも(not tested) ;; defsubst なんで、コンパイルして使っているなら再コンパイルしてね@老婆心 (defsubst ac-clang-create-position-string (pos) (save-excursion (goto-char pos) (format "row:%d\ncolumn:%d\n" (line-number-at-pos) (1+ (length (encode-coding-string (buffer-substring (line-beginning-position) (point)) buffer-file-coding-system))))))
597 : >>596 > >>595 > cygwin/clang は同じものっぽい。 > 関係ないと思いたいけど、前にも書いたけど Windows8 pro 使ってる > clang-complete.exe が落ちるってことはない そもそもうちだと cygwinが win8でまともに動かない。 makeやgcc動かすとコアダンプするレベル。 rebaseとかしても改善しないし、VMware上や会社のpcでやっても同じなので 落ちる問題はwin8特有の問題と思われる。 関係あるかわからないけど、VMwareにwin7とか入れて試してみたらどうです?
598 : >>597 うーん。そこまでやるなら仮想マシンにubuntuなりいれてそっちでやるよ 今日、 >596 までのコード入れてみたら、何が良かったのかわからないけど、 >>595 レベルと似たようなレベルになったみたい *clang-complete*がエラーの山になるところは確認できたから明日もう少し追ってみようと思ってる lgrep が落ちるしWindows8はかなりつらいねorz
599 : >>591 このコードいれたらマルチバイトかいけつしたわ 感謝!!
600 : 最近 org-mode を使いたいがために、NTEmacs 入れたんだが、なぜか utf-8 で 使わないといかん的な気持ちになって、必死で utf-8 環境整えた んで、困ったのは grep win-bash てのからパクった grep で用が足りたと思いきや、utf-8 で保存したファイル から全然拾ってくれん 調べたら、NTEmacs から外部プロセスへ引数として渡せる文字列は、コードページに 依存するということで、つまり日本語 Windows 使う限り cp932 限定 それじゃってんで、渡す文字コードとファイルの文字コードと返す文字コードを指定できる grep とかねえかと探したら、lgrep なるものを発見 あまりに俺が欲しい物過ぎて感動したのも束の間、どうやら cygwin インストせにゃ いかんぽい org-mode 使いたいだけなのに cygwin 入れるのはアホらしいので、何か方法はないかと 探したら、mingw で win版 lv 作れることが判明 ただし、バージョン古めの 4.21 んで、早速 make して使ったら、挙動が grep じゃなくてビューアー 起動オプション指定し忘れかとまた調べたら v4.21 は grep モード実装する前の バージョンだと知り愕然 なんだよ、結局 cygwin 入れなきゃならんのか、と頭抱えてからふと思った そもそも、なんで utf-8 で回そうと思ったんだろう もう疲れ果てて、調べる気がおきんw だれか、教えてくれ org-mode @ NTEmacs は sjis-dos で無問題?
601 : つ jvgrep
602 : >>601 あ、ごめん。忘れてw
603 : ここで公開されてよw http://amura-log.blogspot.jp/
604 : >>603 お前は神か 早速試すわ ありがとう
605 : >>600 以前このスレで話題にし、解決方法を以下に記録してました。 www49.atwiki.jp/ntemacs/pages/16.html gnupackでしかテストしていませんが、windowsのemacsをutf-8で使う 場合でも、プロセスコールのパラメータをcp932で渡せます。
606 : ラスポスはゲイツだった ワイルドカードを展開しない windows shell の糞仕様 win-bash の grep は自前で展開してたのんだね、エライ elisp で関数用意すれば何とかなっちゃうんだろうが 素人がそれを作り上げるまでに、何日かかるかわからんから 却下 目的と手段が逆転しかねんし もう、sjis-dos でいいや >>605 これ読んだ記憶あるけど、正直意味わかんなかった elisp コードはもともとよくわからんが、コメント読めば だいたいやってることはわかる で、疑問として、細工しなくても cp932 で渡っちゃうのに なんでわざわざこんなことすんのかと まあ、俺が何か誤解してんだろうけど
607 : >>606 自己レス >>606 の投稿者、あとこれもだけど、は600の人ね まあ、過疎スレだからわかるとは思うが、念のため
608 : >>608 外部プロセスへ引数の話があったんでURL紹介したんだけど、 cygwin使ってなければ関係ないかも。失礼。 605の設定が必要なのは、LANGの設定をutf-8にしているcygwinを emacsから使う時に必要となります。
609 : >>608 なるほど、そういうことか 確かにうちの環境には cygiwin 入れてない 実際、>>605 のコードを設定ファイルに書いてないが .emacs に以下を足し (require 'grep) (grep-apply-setting 'grep-command "lgrep -n -g -Iu8 -Ks -Os ") >>603 推奨の lv でワイルドカード使わずに、地道にファイル列挙すれば (オプションの意味は、ファイルは utf-8 で書かれてるとみなし キーボード入力、つまり NTEmacs から渡される文字コードを sjis として扱い アウトプットは sjis で出力)、日本語検索時も文字化けすることもなく 無問題だった
610 : >>609 emacsからプロセス起動する際のパラメータのcoding-systemは、 process-coding-systemの出力設定に従っているんだと思う。 なので、cygwinをutf-8で使おうとして、default-process-coding-system の出力設定をutf-8にすると、Windowsのコードページでパラメータを 渡さなくてはならない制約に引っかかる。605はそれの対策。 grepの話は、lgrepを使うといろいろな文字コードのファイル 直接読み込んで検索できるって話なので、また別な話ですね。 lgrepをcp932のパラメータで起動しなくてはならないってのは 一緒の話だけれども。
611 : >>610 cygwin なくても関係あるみたい 諦めきれなくて、いろいろ考えてるうちに grep 以外の捨ててた win-bash の実行ファイル使って grep-find すればいいことに気づき find ./org -type f | xargs lgrep -n -g -Ks -Iu8 -Os "漢字" とかしてみた コマンドプロンプトからは成功するが、NTEmacs の grep-find だと Grep finished with no matches found at 日時 と表示されて失敗 そこで、>>605 の url の設定をコピペすると、あっさり成功 というわけで ID:bB/kwevs0 さん、ありがとう あなたがいなけば、sjis-dos の日々を過ごすことになってましたw
612 : >>610 win-bashには、bashもついているんだよね? であれば、find使わなくても、shell-file-name変数にそのbash コマンドを設定すれば、ワイルドカードの面倒見てくれたりしない のかな? 他に影響でるかもしれないけど。 また、605の設定使わなくても以下だけでうまくいくような気がする。 試してみて。lgrepのsjisはcp932のことだと思うけど、emacsのsjisは jisx0208のこと指しているので、普通cp932使います。 (setq default-process-coding-system '(undecided-dos . cp932-dos)) あと、せっかくlgrep使うなら-Iaを使った方がよくないですかね?
613 : ご指摘の設定で、grep スクリプトもうまく動作しました もう完璧 sjis とは cp932 のことだとばかり思ってましたが、違うんですね 初めて知りました いや、本当にいろいろ助かりました 改めて感謝
614 : 補足 直したのは default-process-coding-system だけで shell-file-name 変数の方は、他の影響を考えて止め スクリプトで逃げときました
615 : grep-mode動いたんですよね。であれば、*grep* バッファで C-cC-fを入力して、バッファの中移動してみましょう。 Next-Error-Follow minor modeってのが動くよう。 私は最近知りました。
616 : auto-complete-clang-async.el を少し時間が取れたんで、少し直してみました。 http://www1.axfc.net/uploader/so/2935507.gz ・マルチバイト文字対応 - ファイル本体のマルチバイト対応 (buffer-file-coding-systemが確定していない状態だとどーなるかわからない。そのうち直すかも) - オプション指定文字列のマルチバイト対応(未テスト^^;) ・プロセス管理が変だったのを直した。 - kill-buffer() の順序によってはプロセスが残る - 強引にclang-completeをRと kill-buffer() できなくなる ・その他 - ちょっとだけファイルをきれいにした。 ・今後 - 関数を補完したときに仮引数まで展開されるのがうざいので、ちょっと工夫したい。 いつか本家に戻すつもりでいますので、なにか問題があれば教えてもらえると助かります。
617 : まともに調べてないけどコンパイルオプションが長いと clang-complete.exe が落ちる問題は、 LINE_MAX を大きくするように再定義してあげると直かもしれない。 libclang 側の仕様を調べていないんで、いくつくらいが適当かはわからない。
618 : Emacs Part 43 http://toro.2ch.net/test/read.cgi/unix/1370754332/29 Windows環境固有の話もありそうなんでこちらでやらせてもらいます。 > ファイルを8個以上ひらくとパイプエラーになってしまうのでそれ以上開けない。 cygwinのemacs?gnupack (mingw32) の emacs だと、clang-complete が30個までは動いてる。 それを超えると確かに開けなくなるね。 > 別バッファにincludeされる対象のファイルを自動的にオープンすることがあり どうせすぐに閉じられるファイルに対して ac-complete-clang-async (以降 acca) が動いてもむなしいんで、 こういう時には動かさないようにしたいな。(semantic-find-file-noselect()に細工すればいいかな?) それに、たくさん開いていても、ある時間内に編集するファイルってそう多くないと思うんで、同時起動する数に制限を かけるという方向も考えてみる。 > これで応答がなくなってしまったことがあり プロセスに何をさせようとしたときか教えて。 ずっと ac-clang-reparse-buffer() で固まってしまっていたんで、 upしたファイルだと system-type が windows-nt のときはこれを呼ばないようにしてる。でも、今試したらまともに動くようになっていた。 ファイルをプロセスに送るとき、バイト数を送ってるんでマルチバイト文字の処理をちゃんとしていないと、 実際のサイズが狂ってしまい、その結果プロセスの気が狂っていたんじゃないかと思う。 > ただemacs-lisp自体はシングルスレッドなんですよね? > 平行性はどういう単位で実現されているのかで、問題の解決方法が変わってくるとおもいます。 イベントループがあってアイドル状態になった時に、キー入力(マウスなんかの操作もこれに変換される)、 外部プロセスからの入力(pipe/socket)、タイマーイベントがあればそれに対応する処理が動くって 構造のなんで、明示的にイベントを受けるか、アイドルに戻さない限り別の処理が動くことはないという認識。 semanticの解析をclangに肩代わりさせることはできないかと妄想中。
619 : helmについて教えてください。 (helm-mode 1)としてhelmを使うと、いろいろなところがhelmのインタフェースになります。 diredもその一つなのですが、+キーでフォルダを作成する際にhelmのインタフェースになり、 その時に漢字を入力することができません。対応方法わかる方、ご教示ください。
620 : >>619 最適解かはわかりませんが、自己解決しました。 (add-hook 'helm-after-initialize-hook (lambda () (setq select-window-functions nil) (setq w32-ime-composition-window (minibuffer-window)))) (add-hook 'helm-cleanup-hook (lambda() (add-hook 'select-window-functions 'w32-ime-select-window-hook) (setq w32-ime-composition-window nil)))
621 : 自分の現在のhelmの設定をwikiにまとめてみました。 www49.atwiki.jp/ntemacs/pages/32.html
622 : >>620 (setq select-window-functions nil) のところは、 (remove-hook 'select-window-functions 'w32-ime-select-window-hook) の方がいいかも。wikiは直しました。
623 :2013/07/07 w32-ime-buffer-switch-pをtにしていなければ、helm利用時でもminibufferに 漢字入力はできたようです。なので、上記の設定はw32-ime-buffer-switch-p をtにしている際に必要な設定でした。もうちょっと違う解があるような気が しますが、わかる方いたら教えてください。
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
vim Part4 (873)
【●●】AI RoboForm(ロボフォーム) Part10 (820)
【Disk Copy】EASEUS その4【Todo Backup】 (461)
IE×Firefox×Opera×Safari×Chrome最終戦争31回戦 (198)
秀丸ファイラーClassic Part3 (551)
Windows 8用Aero Glass総合 (113)
--log9.info------------------
みんなは2ちゃんの存在をどうやって知ったんだ? (160)
誰かが凄まじい勢いでマジレスするスレ【質問してね】 (119)
日本創り話 (109)
おまいら スーパーマリオ何回プレイしたか (158)
ドッレスるめ読くし正とるすみ読さ逆 (159)
昔の「えっちねた」板の方がよかった。 (177)
昔々ある所におじいさんとおばあさんが居ました (131)
★この歌が流れてくると‥○○を想い出す★ (146)
昔の自分に言いたいこと (167)
昔の爆笑問題 (182)
昔からこのスレはずっとage進行です。 (175)
〜あの頃は良かった〜 (109)
一週間に一回だけカキコしていいスレ (192)
夏が近い・・・・ (120)
新参に送るメッセージ (188)
ルービックキューブを懐かしむスレ (117)
--log55.com------------------
Super Mario Maker 2 スーパーマリオメーカー2 ステージ紹介スレ Vol.8
【PS4/XBOX1】 Dead by Daylight part481【無断転載】
【PS4/XB1】Ghost Recon Wildlands/ゴーストリコンワイルドランズ 本編専用スレ part7
【PS4/XB1】No Man's Sky /ノーマンズスカイ 68億光年
【NS】ニンテンドーeShop Part85【Nintendo Switch】
ドラゴンボールXenoverse-ゼノバース-総合 part.147
【PS4/XB1】No Man's Sky /ノーマンズスカイ 67億光年
【PS4】Overwatch/オーバーウォッチ 晒しスレ part31