前スレ
NTEmacs スレッド 4
http://anago.2ch.net/test/read.cgi/software/1401870078/
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
CVS http://savannah.gnu.org/cvs/?group=emacs
Git http://savannah.gnu.org/git/?group=emacs
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
NTEmacs スレッド 5 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。
2015/03/09(月) 00:01:58.25ID:0/C/Ivt602015/03/09(月) 00:03:14.90ID:0/C/Ivt60
参考:IMEパッチ https://github.com/chuntaro/NTEmacs64
2015/03/09(月) 00:25:04.78ID:zDuRp1Df0
>>1
乙
乙
4名無しさん@お腹いっぱい。
2015/03/10(火) 00:09:03.35ID:sviFW3ub0 NTEmacs @ ウィキ
http://www49.atwiki.jp/ntemacs/
http://www49.atwiki.jp/ntemacs/
2015/03/12(木) 23:12:11.62ID:mVuL7AIB0
ダメ文字対策で w32-quote-process-args を nil にして自前でクォート処理するってのが前スレであったけど、
あれ windows ネイティブなプログラムに対してだとうまく動かないことがあるね
(call-process "reg" nil nil nil "query" "HKLM\\Software")
とかやるとバックスラッシュが余計にエスケープされちゃうせいかエラーになる
cygwin のプログラムの場合はバックスラッシュはエスケープする処理いれないとうまくいかない
emacs 本体でも cygwin のプログラムかどうかチェックしてクォート処理変えてたりするみたいなんだよなあ
ちなみに shell-command でシェル経由での呼び出しだと cygwin 側でうまくやってくれるからかうまくいく
あれ windows ネイティブなプログラムに対してだとうまく動かないことがあるね
(call-process "reg" nil nil nil "query" "HKLM\\Software")
とかやるとバックスラッシュが余計にエスケープされちゃうせいかエラーになる
cygwin のプログラムの場合はバックスラッシュはエスケープする処理いれないとうまくいかない
emacs 本体でも cygwin のプログラムかどうかチェックしてクォート処理変えてたりするみたいなんだよなあ
ちなみに shell-command でシェル経由での呼び出しだと cygwin 側でうまくやってくれるからかうまくいく
2015/03/13(金) 00:43:15.99ID:wYBNLdwi0
>>5
> ダメ文字対策で w32-quote-process-args を nil にして自前でクォート処理するってのが前スレであったけど、
> あれ windows ネイティブなプログラムに対してだとうまく動かないことがあるね
それはあの書き込みが間違っているだけ。
どうせパッチ当てないとIMEもまともに動かないんだから、
こちらもソースに手を入れた方がいいと思う。
> ダメ文字対策で w32-quote-process-args を nil にして自前でクォート処理するってのが前スレであったけど、
> あれ windows ネイティブなプログラムに対してだとうまく動かないことがあるね
それはあの書き込みが間違っているだけ。
どうせパッチ当てないとIMEもまともに動かないんだから、
こちらもソースに手を入れた方がいいと思う。
2015/03/13(金) 00:44:22.19ID:Zz36ck6N0
>>6
ダメ文字対策のパッチってもうあるの?
ダメ文字対策のパッチってもうあるの?
2015/03/13(金) 01:01:56.35ID:+VRKVDZZ0
いい加減 NTEmacs+cygwin なんていう設定マニアのおもちゃから卒業して
cygwin 版 emacs を使うべき
fakecygpty だの引数 cp932 変換だのダメ文字対策だの全部必要ない
生産的行動より init.el 弄るのが楽しい人だけ NTEmacs 使ってえばいいと思うよ
cygwin 版 emacs を使うべき
fakecygpty だの引数 cp932 変換だのダメ文字対策だの全部必要ない
生産的行動より init.el 弄るのが楽しい人だけ NTEmacs 使ってえばいいと思うよ
2015/03/13(金) 02:26:19.62ID:JUZcP3O60
2015/03/13(金) 06:41:51.58ID:Zz36ck6N0
2015/03/13(金) 06:55:50.96ID:JUZcP3O60
gunpackへの取り込み時のメモ
http://d.hatena.ne.jp/ksugita0510/touch/20120205/p1
http://d.hatena.ne.jp/ksugita0510/touch/20120205/p1
2015/03/13(金) 07:05:55.38ID:Zz36ck6N0
>>10
それ以外のところ、じゃなくそれ除けば、だった。
それ以外のところ、じゃなくそれ除けば、だった。
2015/03/13(金) 08:39:13.94ID:+VRKVDZZ0
どうせパッチ書いても本家に取り込まれないしな
バイナリクレクレ君を助長するだけの話だよ
バイナリクレクレ君を助長するだけの話だよ
2015/03/13(金) 08:43:11.54ID:4l/kLh5g0
2015/03/13(金) 08:59:12.62ID:Zz36ck6N0
>>14
今ソース見られないけどクォート処理してる関数の中で
is_cygnus みたいなフラグ設定してる関数がそれ。
実行ファイルのヘッダ見たりして cygwin の dll インポートしてたら
cygwin のプログラムだって判定してたと思った。
今ソース見られないけどクォート処理してる関数の中で
is_cygnus みたいなフラグ設定してる関数がそれ。
実行ファイルのヘッダ見たりして cygwin の dll インポートしてたら
cygwin のプログラムだって判定してたと思った。
2015/03/13(金) 09:05:16.56ID:Zz36ck6N0
ソース見れないってこともないな。公式で見ればいいのか。
w32_executable_type で実行ファイルの種類判定、
w32proc.c の1713行で cygwin のアプリかどうかでクォート文字の変更処理してるね。
w32_executable_type で実行ファイルの種類判定、
w32proc.c の1713行で cygwin のアプリかどうかでクォート文字の変更処理してるね。
2015/03/13(金) 10:51:52.20ID:pC0MUYe20
2015/03/13(金) 15:00:56.44ID:zM1moXep0
>>16
ありがとう。
ありがとう。
2015/03/13(金) 22:36:05.39ID:Zz36ck6N0
しかしここも終わりな感じかなー
普段から2chMateでみてたから影響なかったけど
ここはnavi2ch使ってる人多そうだしなー
普段から2chMateでみてたから影響なかったけど
ここはnavi2ch使ってる人多そうだしなー
2015/03/13(金) 23:56:29.78ID:EcNfOx9H0
前スレにてTSF経由でMS-IMEが使えるようになったおかげで、
俺にとって公式バイナリが実用になって助かっている。
過去ログを見るのが難しくなるとこういうのが埋もれてもったいないな。
せっかくだからTSF用の設定を貼り付けておく。
モードラインや短縮入力は好みの問題。ミニバッファも快適。
; TSFのAPIによりIMEを使用する。
(load-library "kkc-cmd")
; quailのjapaneseモードラインを変更する。
(load-library "quail/japanese")
(setf (nth 1 (quail-package "japanese")) "ja-")
(setf (nth 1 (quail-package "japanese-ascii")) "jaA")
(setf (nth 1 (quail-package "japanese-zenkaku")) "jaZ")
; quailのkkcモードラインを変更する。
(setq kkc-input-method-title "JA-")
; 短縮入力を追加する。
(quail-select-package "japanese")
(if (equal (quail-name) "japanese")
(quail-define-rules ((append . t))
("S" " ") ; IDEOGRAPHIC SPACE(U+3000)
("M" #xff0d) ; FULLWIDTH HYPHEN-MINUS
("T" #xff5e) ; FULLWIDTH TILDE
))
俺にとって公式バイナリが実用になって助かっている。
過去ログを見るのが難しくなるとこういうのが埋もれてもったいないな。
せっかくだからTSF用の設定を貼り付けておく。
モードラインや短縮入力は好みの問題。ミニバッファも快適。
; TSFのAPIによりIMEを使用する。
(load-library "kkc-cmd")
; quailのjapaneseモードラインを変更する。
(load-library "quail/japanese")
(setf (nth 1 (quail-package "japanese")) "ja-")
(setf (nth 1 (quail-package "japanese-ascii")) "jaA")
(setf (nth 1 (quail-package "japanese-zenkaku")) "jaZ")
; quailのkkcモードラインを変更する。
(setq kkc-input-method-title "JA-")
; 短縮入力を追加する。
(quail-select-package "japanese")
(if (equal (quail-name) "japanese")
(quail-define-rules ((append . t))
("S" " ") ; IDEOGRAPHIC SPACE(U+3000)
("M" #xff0d) ; FULLWIDTH HYPHEN-MINUS
("T" #xff5e) ; FULLWIDTH TILDE
))
2015/03/14(土) 00:31:05.96ID:e7om0rDj0
どうでもいいけど大文字JAって農協みたいだな
2015/03/15(日) 01:59:16.42ID:EqmJ3nkc0
navi2ch使ってる人は思ってるより少ないと思うよ
話題がないだけ
話題がないだけ
2015/03/15(日) 22:27:42.47ID:QF5aGCDs0
windows のコマンド引数のクォートって妙な仕様なんだな。\がパス区切りに使われちゃった故の不幸か。
・普段の \ はそのまんま解釈される。\\ は \\ として解釈される。
・" の前にあるときだけ \ がエスケープ文字になり " として解釈される。
・" の前に連なってるぶんだけ \\ が \ として解釈される。
\hoge => \hoge
"hoge" => hoge
\"hoge => "hoge
\\hoge => \\hoge
\\\"hoge => \"hoge
\\\\\"hoge => \\"hoge
\\\\hoge => \\\\hoge
\\\\\#hoge => \\\\\#hoge
・普段の \ はそのまんま解釈される。\\ は \\ として解釈される。
・" の前にあるときだけ \ がエスケープ文字になり " として解釈される。
・" の前に連なってるぶんだけ \\ が \ として解釈される。
\hoge => \hoge
"hoge" => hoge
\"hoge => "hoge
\\hoge => \\hoge
\\\"hoge => \"hoge
\\\\\"hoge => \\"hoge
\\\\hoge => \\\\hoge
\\\\\#hoge => \\\\\#hoge
2015/03/15(日) 23:40:03.21ID:UR9dTCaF0
>20
すいません、これためしてみたいんですけど、
いきなり1行目でエラーになります。
kkc-cmd.elってどこからダウンロードすればいいんでしょうか?
すいません、これためしてみたいんですけど、
いきなり1行目でエラーになります。
kkc-cmd.elってどこからダウンロードすればいいんでしょうか?
2015/03/15(日) 23:55:41.66ID:2mslD0n80
>>24
前スレ(NTEmacs4)の>355,356にある。
展開方法は前スレ>322,325を参照。つまりxzとbase64。
TSFTest.exeも必要だが、それは前スレの>312,325を参照。
前スレは「NTEmacs スレッド 4」でググれ。
前スレ(NTEmacs4)の>355,356にある。
展開方法は前スレ>322,325を参照。つまりxzとbase64。
TSFTest.exeも必要だが、それは前スレの>312,325を参照。
前スレは「NTEmacs スレッド 4」でググれ。
2624
2015/03/16(月) 00:48:49.57ID:5zwuaD9R0 日付かわっちゃいましたけど、24です。
丁寧な説明ありがとうございました。m(_"_)m
がんばってみます。
丁寧な説明ありがとうございました。m(_"_)m
がんばってみます。
2015/03/16(月) 11:14:20.49ID:kwcqOGej0
2015/03/16(月) 16:48:55.75ID:K81jtoPS0
早くも24.4.91出てるね
2015/03/16(月) 16:56:27.19ID:/Zgdg9q10
24.5のプリテストだよね?
今回のはあんまりwindows関係ない感じな気がする。
今回のはあんまりwindows関係ない感じな気がする。
2015/03/17(火) 14:33:34.41ID:boEjTHhp0
2で紹介(chuntaro)されているIMEパッチの動作だけど
IME ONで C-x d ってやったときに
C-x と d をすばやく押すと問題ないんだけど
ゆっくり押すと d がIMEに取られてイラッとなるんだけど
直し方ってないですかね?
IME ONで C-x d ってやったときに
C-x と d をすばやく押すと問題ないんだけど
ゆっくり押すと d がIMEに取られてイラッとなるんだけど
直し方ってないですかね?
2015/03/18(水) 01:51:20.34ID:TcY0HVke0
helm-read-file-name でネットワークドライブを入力しやすくする方法ってないでしょうか。
一時的にhelmを無効化したいのですが、やり方がわかりませんでした。
一時的にhelmを無効化したいのですが、やり方がわかりませんでした。
2015/03/18(水) 02:21:03.26ID:KPmiThkj0
2015/03/18(水) 06:58:25.67ID:MdV7hAah0
>>32
いまちょっとソースさわれないからコピペできないけど、ldd で cygwin1.dll がロードされてないかチェックする関数作って、
判定か偽の時は "\\(\\(\\\\\\)*\\)\"" => "\\1\\1\\\\\"" な正規表現でクォートするってので一応解決できたよ。
正規表現は今動かせないから間違ってるかもしれないけど。
ldd 呼び出すときにクォートの advice が再帰しないようにする必要あり。
書いてる時に思ったんだけど、cygwin の dll でクォート切り替えてるってことは msys 系のは正しくクォートされないんじゃないかなぁ。
ネイティブの NTEmacs も似たような判定法だったんだけどそこらへんどうなってるんだろ。
いまちょっとソースさわれないからコピペできないけど、ldd で cygwin1.dll がロードされてないかチェックする関数作って、
判定か偽の時は "\\(\\(\\\\\\)*\\)\"" => "\\1\\1\\\\\"" な正規表現でクォートするってので一応解決できたよ。
正規表現は今動かせないから間違ってるかもしれないけど。
ldd 呼び出すときにクォートの advice が再帰しないようにする必要あり。
書いてる時に思ったんだけど、cygwin の dll でクォート切り替えてるってことは msys 系のは正しくクォートされないんじゃないかなぁ。
ネイティブの NTEmacs も似たような判定法だったんだけどそこらへんどうなってるんだろ。
2015/03/18(水) 07:02:31.11ID:MdV7hAah0
2015/03/18(水) 12:29:39.72ID:2QftJ3KW0
2015/03/18(水) 12:34:14.66ID:2QftJ3KW0
2015/03/19(木) 00:58:31.06ID:pArnr/Vi0
2015/03/19(木) 19:22:36.16ID:lEkPMd7B0
>>36
ありがとうごさいました。
elispは良くわかっていないのですが、以下のようにして、切替できるようになりました。
(defun my/toggle-helm-suspend-update-flag ()
(interactive)
(setq helm-suspend-update-flag (not helm-suspend-update-flag)))
(define-key helm-read-file-map (kbd "C-/") 'my/toggle-helm-suspend-update-flag)
ありがとうごさいました。
elispは良くわかっていないのですが、以下のようにして、切替できるようになりました。
(defun my/toggle-helm-suspend-update-flag ()
(interactive)
(setq helm-suspend-update-flag (not helm-suspend-update-flag)))
(define-key helm-read-file-map (kbd "C-/") 'my/toggle-helm-suspend-update-flag)
2015/03/22(日) 21:39:14.50ID:/GyngaBY0
w32-read-pipe-delay を 5 で運用してたけど
素早く打鍵するとたまに cmigemo が取りこぼしするようになった。
あんまり小さくするもんじゃないねこれ。
素早く打鍵するとたまに cmigemo が取りこぼしするようになった。
あんまり小さくするもんじゃないねこれ。
2015/03/23(月) 14:29:26.71ID:drojhFwy0
>>30
俺んとこじゃならないから他のもんが邪魔してんじゃない?
俺んとこじゃならないから他のもんが邪魔してんじゃない?
2015/03/24(火) 12:50:44.05ID:5KJpFYaI0
結局自前クォートってどうなったの?
やらないほうがいいの?
やらないほうがいいの?
2015/03/25(水) 15:47:56.90ID:umu0AdKT0
>>41
困ってないならやらなくていい。
困ってないならやらなくていい。
43名無しさん@お腹いっぱい。
2015/03/29(日) 20:09:19.60ID:40A9nHc90 cygwinからmsys2に乗り換えた人ってそんなに多くないのかな・・・。
2015/03/29(日) 23:56:37.35ID:J46Ti/yE0
今って cygwin の環境汚染事実上無いしね。
msys は pty が使えないから ansi-term 不完全だし。
msys は pty が使えないから ansi-term 不完全だし。
45名無しさん@お腹いっぱい。
2015/03/31(火) 03:55:16.80ID:r2ISwaky0 このサイトを参考にcygwinシェルとEmacsのPATHを共有するperlワンライナーを作ってみた
http://d.hatena.ne.jp/syohex/20111117/1321503477
perl初心者が書いたコードだからもっとうまくやる方法があるかもしれんが…
.bashrc ----------------------------------------------------------------
if [ !"$EMACS" -a !"$MSYSTEM" -a "$PATH" ]; then
perl -e \
'@a=split(":","$ENV{$ARGV[0]}");foreach(@a){$_=`cygpath -am "$_"|tr -d "\n"`};print qq/(setenv "$ARGV[0]" "/,join(";",@a),"\")"' \
PATH > ~/.emacs.d/site-lisp/shell_env.el
emacs -batch -f batch-byte-compile "~/.emacs.d/site-lisp/shell_env.el" >/dev/null 2>&1
fi
init.el ----------------------------------------------------------------
;; load environment value
(load "shell_env")
(dolist (path (reverse (split-string (getenv "PATH") ";")))
(add-to-list 'exec-path path))
------------------------------------------------------------------------
http://d.hatena.ne.jp/syohex/20111117/1321503477
perl初心者が書いたコードだからもっとうまくやる方法があるかもしれんが…
.bashrc ----------------------------------------------------------------
if [ !"$EMACS" -a !"$MSYSTEM" -a "$PATH" ]; then
perl -e \
'@a=split(":","$ENV{$ARGV[0]}");foreach(@a){$_=`cygpath -am "$_"|tr -d "\n"`};print qq/(setenv "$ARGV[0]" "/,join(";",@a),"\")"' \
PATH > ~/.emacs.d/site-lisp/shell_env.el
emacs -batch -f batch-byte-compile "~/.emacs.d/site-lisp/shell_env.el" >/dev/null 2>&1
fi
init.el ----------------------------------------------------------------
;; load environment value
(load "shell_env")
(dolist (path (reverse (split-string (getenv "PATH") ";")))
(add-to-list 'exec-path path))
------------------------------------------------------------------------
2015/03/31(火) 10:46:09.51ID:bprd6f4o0
日本語ファイルとかが多数あるときなんかの ansi-term 上での文字化けなんとか回避する方法ないだろか。
シェルからの出力受け取るときに多バイト文字の境目で切れててもお構いなしに文字コード変換処理しちゃうのが原因なんだろうけど
シェルからの出力受け取るときに多バイト文字の境目で切れててもお構いなしに文字コード変換処理しちゃうのが原因なんだろうけど
47>>45
2015/03/31(火) 21:49:33.37ID:r2ISwaky0 cygpathに"-p"オプションがあるのを忘れてたorz...
.bashrc ----------------------------------------------------------------
if [ !"$EMACS" -a !"$MSYSTEM" -a "$PATH" ]; then
perl -e \
'print qq/(setenv "$ARGV[0]" "/,`cygpath -amp "$ENV{$ARGV[0]}" | tr -d "\n"`,"\")"' \
PATH > ~/.emacs.d/site-lisp/shell_env.el
emacs -batch -f batch-byte-compile "~/.emacs.d/site-lisp/shell_env.el" >/dev/null 2>&1
fi
------------------------------------------------------------------------
.bashrc ----------------------------------------------------------------
if [ !"$EMACS" -a !"$MSYSTEM" -a "$PATH" ]; then
perl -e \
'print qq/(setenv "$ARGV[0]" "/,`cygpath -amp "$ENV{$ARGV[0]}" | tr -d "\n"`,"\")"' \
PATH > ~/.emacs.d/site-lisp/shell_env.el
emacs -batch -f batch-byte-compile "~/.emacs.d/site-lisp/shell_env.el" >/dev/null 2>&1
fi
------------------------------------------------------------------------
2015/03/31(火) 22:01:52.81ID:bprd6f4o0
49>>45
2015/04/01(水) 01:11:59.30ID:BrXX+ji90 >>48 情報サンクス
環境変数PATHに限るなら >>48 のコマンドが最適だね
perlにこだわってたのは、複数引数に拡張しようと思ってたからなんだけど
-----------------------------------------------------------------
perl -e \
'foreach(@ARGV){ print qq/(setenv "$_" "/,`cygpath -amp "$ENV{$_}" | tr -d "\n"`,"\")\n"}' \
PATH HOMEPATH SHELL > ~/.emacs.d/site-lisp/shell_env.el
-----------------------------------------------------------------
こんな感じにすればperlは必要ないね。cygpathの改行を除去する必要もないし
-----------------------------------------------------------------
for i in "PATH" "HOMEPATH" "SHELL"; do
echo "(setenv \"$i\" \"`eval cygpath -amp '"''$'$i'"'`\")"
done > ~/.emacs.d/site-lisp/shell_env.el
-----------------------------------------------------------------
(evalでゴニョゴニョしてる部分は何とかできないかな)
環境変数PATHに限るなら >>48 のコマンドが最適だね
perlにこだわってたのは、複数引数に拡張しようと思ってたからなんだけど
-----------------------------------------------------------------
perl -e \
'foreach(@ARGV){ print qq/(setenv "$_" "/,`cygpath -amp "$ENV{$_}" | tr -d "\n"`,"\")\n"}' \
PATH HOMEPATH SHELL > ~/.emacs.d/site-lisp/shell_env.el
-----------------------------------------------------------------
こんな感じにすればperlは必要ないね。cygpathの改行を除去する必要もないし
-----------------------------------------------------------------
for i in "PATH" "HOMEPATH" "SHELL"; do
echo "(setenv \"$i\" \"`eval cygpath -amp '"''$'$i'"'`\")"
done > ~/.emacs.d/site-lisp/shell_env.el
-----------------------------------------------------------------
(evalでゴニョゴニョしてる部分は何とかできないかな)
■ このスレッドは過去ログ倉庫に格納されています
