Cygwin使っている人いますか? その18

このエントリーをはてなブックマークに追加
932名無しさん@お腹いっぱい。:2008/12/16(火) 13:05:23
>>931
process-coding-systemも指定するんじゃなかったっけ?
933名無しさん@お腹いっぱい。:2008/12/16(火) 13:29:28
>>932
ありがとうございます。
実はWin板のスレでも同じアドバイスを受け、以下のコードを示していただいた
のですが、これでもうまく行きませんでした。

(set-language-environment "Japanese")
(let ((c 'japanese-shift-jis))
  (set-default-coding-systems c)
  (set-terminal-coding-system c)
  (set-keyboard-coding-system c)
  (set-buffer-file-coding-system c)
  (setq default-process-coding-system (cons c c)))
934名無しさん@お腹いっぱい。:2008/12/16(火) 16:35:57
パスかファイル名にダメ文字入ってない?
一応リネームしてやってみるとか?
935名無しさん@お腹いっぱい。:2008/12/16(火) 18:43:57
>>934
ダメ文字は入っています。むしろダメ文字をどうしたらうまく扱えるかをお聞
きしたいのです。自分では日本語名のファイルは作りませんが、人から来るファ
イルは日本語(Shift_JIS)のものが多いです。

ちなみに素のbash上でファイル名をTABで補完していくと、

構築スケジュール表 → 構\築スケジュ―[ル表\

となり、自動的にダメ文字をエスケープしてくれるようで、cygstartで問題な
くオープンすることができます。

これをEmacsのDired上で実現できないかと思うのです。

ちなみにテキストファイルをDiredからEmacsで開くことなら、どのような日本
語ファイル名でも問題なく実行できます。

Shift_JISにおける危険な文字まとめ
http://anond.hatelabo.jp/20080303150507
936名無しさん@お腹いっぱい。:2008/12/16(火) 19:24:11
引数のダメ文字をエスケープしてからcygstartに渡すスクリプトでも作れば良いんじゃね?
937名無しさん@お腹いっぱい。:2008/12/16(火) 20:22:33
それって、Cygwin 1.7 でも駄目なんだろうか?
938名無しさん@お腹いっぱい。:2008/12/16(火) 20:51:04
横からすまんがzshも日本語ファイル名を補完させようとするとたまに落ちない?
しょうがないからコピペしたりして騙し騙し使ってるけど
939名無しさん@お腹いっぱい。:2008/12/16(火) 21:50:19
>>935
まぁ、動く範囲なら>>936の通りでいいんじゃないかと思うが、
素のcygwin1.dllは内部で/と\を相互変換してるから、
「十」とか「表」とかがパス名に含まれると動かんような
気がするんだが……。
940名無しさん@お腹いっぱい。:2008/12/17(水) 01:06:27
cygwin1.5 で日本語ファイル名を扱うのはもう諦めた方がいい
941名無しさん@お腹いっぱい。:2008/12/17(水) 01:19:27
>>940
知らないので聞きたいんだけど、
1.7ならShift_JISのダメ文字のファイル名にも対応できるの?
OKI-SOFTのUTF-8パッチだとどう?

どちらでも、UTF-8のファイル名なら問題なく使えるだけで、Shift_JISのファ
イル名は扱えないんだと思ってたんだけど。
942名無しさん@お腹いっぱい。:2008/12/17(水) 08:04:32
>>941
説明読むか、実際に試せば一発でわかるのになぜやらない。
943名無しさん@お腹いっぱい。:2008/12/17(水) 10:16:23
>>942
OKI-SOFTの説明も読んでも、ダメ文字をちゃんと扱えるのかよく分からなかっ
たし、実際に試したがうまく行かなかった。だから今は通常のDLLに戻した。
もしうまく扱えるのなら、もう一度勉強しなおそうと思ってる。
944名無しさん@お腹いっぱい。:2008/12/17(水) 11:08:26
さて、煽られたんで久しぶりにOKI-SOFTのUTF-8パッチ版のcygwin1.dllに変えてみた。

自分は cygterm + PuTTY経由なので、対応するPuTTYの設定も変える必要がある。
(カテゴリ→ウィンドウ→変換→UTF-8(CJK))

その状態でcygtermを起動すると、

・ls で日本語ファイル名を文字化けなしで表示できる。
・しかしls -l を実行すると
-rw-r--r-- 1 (ユーザ名) ?懼「?? 7988736 Aug 28 21:41 機能設計書.xls
という具合に、グループ名の「なし」が化ける。

・bash 上でダメ文字の補完は行われない。そのためcygstartでファイルを開けない。
bash-3.2$ cygstart.exe 機能設計書.xls
Unable to start '機能設計書.xls': The specified file was not found.

・Emacs は.emacs.el の>>933あたりの設定をUTF-8に変えないと起動しない。
 UTF-8に変えれば起動して、たいていの作業は行える。

・しかしDiredでShift_JISのファイル名が全部文字化けする。
-rw-r--r-- 1 (ユーザ名) なし 7988736 Aug 28 21:41 讖溯懽險懽險域嶌0831.xls
(逆にグループ名は化けていない)

・テキストファイルをEmacsで開くことはできるが、それ以外のファイルを
cygstartで開くことはできない。
Unable to start '讖溯懽險懽險域嶌0xls': The specified file was not found.

・EmacsのShellモードで ls するとやっぱり文字化け。
-rw-r--r-- 1 (ユーザ名) なし 7988736 Aug 28 21:41 ???????????????.xls
945名無しさん@お腹いっぱい。:2008/12/17(水) 11:09:29
という具合で、びっくりするぐらいメリットがなかったんで、元の cygwin1.dll に戻す。
俺が何か勘違いしているなら、いくらでも謝る用意がある。
946名無しさん@お腹いっぱい。:2008/12/17(水) 12:09:46
少なくとも現状では、cygwinはその辺はダメダメだろ
沖のはadhocパッチだし
つーか、分かってやってねえか?

coLinuxでも入れて、CIFS経由で触るようにしたほうが幸せになれるんじゃないか
coLinux側からはNTFSが普通にUTF-8なファイルシステムに見えるから
日本語だろうがアクサンだろうがハートマークだろうが問題なく扱えるし
ダメ文字などというアホなものも存在しない
Windowsネイティブのプログラム(例えばActivePerl)ですらW版APIを使っておらず
それらをマトモに扱えないものが非常に多いにも関わらず、
coLinux側から触ればいきなり全てのプログラムがフルUnicode対応だ

まあcoLinuxだとWindows側とのプロセス連携ができんので、これはこれで不便というか
cygwin「も」欲しいんだけどな
947名無しさん@お腹いっぱい。:2008/12/17(水) 12:11:56
http://www.okisoft.co.jp/esc/utf8-cygwin/usage.html
ここに書いてある設定はやったんだよね?
948名無しさん@お腹いっぱい。:2008/12/17(水) 13:23:06
>>946
> つーか、分かってやってねえか?
あんまり分かってない。つうか仕組みはまあ分かるんだけど、なんかみんな
UTF-8化してるみたいなんで、俺の知らないメリットがあるのかと思ってた。

つうか「iTumesのファイル名を透過的に扱える」以外のメリットはないんだよ
ね?俺iTunes使ってないんだよな。日本語ファイル名はShift_JISでもEmacsは
扱えるんで、UTF-8化するとかえって損だ。

coLinuxがそんなことをできるとは知らなかった。ぜひ導入したいところだが、
メモリもHDDもCPUパワーも不足しているんでつらい。まあ動作速度はcoLinuxが
はるかに上回ってるそうだけど。

プロセス連携はつくづく同意。俺は結局、Meadowより軽い Windowsネイティブ
の Emacs(および周辺環境)が欲しいだけなんだ。

;; ブラウザ設定 (2行目は環境に合わせて変えて)
(setq browse-url-browser-function 'browse-url-generic )
(setq browse-url-generic-program "/cygdrive/d/Program Files/Opera/Opera.exe")
これを .emacs.elに書いとくと、Emacsで編集中のテキストのURLをWEBブラウザ
で表示できる。(M-x browse-url)

Tips on cygwin
http://www.eaflux.com/cygwin/tips/#label-8
これを書いとくと、クリップボードの連携ができる。この辺が便利で手放せない。


>>947
やった。つうか Shift_JISを使えてるなら、 vi使いと Pythonista以外、何も
することないだろ。
949名無しさん@お腹いっぱい。:2008/12/17(水) 13:25:31
自己訂正。テキストのURLって意味分からんね。正しくはテキストに含まれる
URL文字列な。すまん。
950名無しさん@お腹いっぱい。:2008/12/17(水) 15:14:27
>>941
今の Windows の文字コードの扱いを分かっていて言っている?
内部的には Unicode で、外とのやり取りのときだけ(後方互換性を考慮して)Shift_JIS に
している。
各種プログラムなどで扱うときは、Unicode で扱ったほうが楽。
951名無しさん@お腹いっぱい。:2008/12/17(水) 17:19:46
こっちの方がいいんじゃないの?
ttp://vmi.jp/software/cygwin/cygwin-dbcs-support.html
952名無しさん@お腹いっぱい。:2008/12/17(水) 17:47:01
meadowより軽いemacsってどんなの望んでるの?
cygwinのemacsにしたって軽くならないと思うけど。
それこそmuleのwin32版とか使うしかないな。
953名無しさん@お腹いっぱい。:2008/12/17(水) 19:06:26
Emacsライク、じゃダメなんだろうか
xyzzyみたいな
954名無しさん@お腹いっぱい。:2008/12/17(水) 22:22:33
FTP でファイルゲトするとき C:\WINDOWS\system32\ftp.exe では
問題無しなのですが , Cygwin の /usr/bin/ftp 使うと転送速度が
とっても遅い現象が出ているのは漏れだけですか ?

955名無しさん@お腹いっぱい。:2008/12/17(水) 23:18:20
>>944
・グループ名の「なし」が化けるのは、/etc/groupにCP932で「なし」
と書かれてるからだ。UTF-8に変換するか、ASCIIで(例えばotherとかに)
書き換えろ。
・UTF-8化したときはcygstartも入れ換えろ。
ttp://www.okisoft.co.jp/esc/utf8-cygwin/download.html
の下の方にある。(まぁ、これに気付かないのはわからんでもないが)
・Diredで化けるのは文字コードまわりの設定が足りてない。
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq default-process-coding-system '(utf-8 . utf-8))
(setq default-file-name-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
こんな感じか? ^Mが残るようなら 'utf-8-dos にしろ。
・GNUのlsはデフォルトではASCII以外を受付ない。
--show-control-charsを付けてaliasしとけ。
・端末設定は全部UTF-8にしろ。
956名無しさん@お腹いっぱい。:2008/12/17(水) 23:25:34
>>941
意味不明。UTF-8 Cygwinや1.7のUTF-8モードを使ってるなら、
そもそも「Shift_JISのファイル名」は存在しない。
ファイル名は全てUTF-8で扱われる。
957名無しさん@お腹いっぱい。:2008/12/17(水) 23:55:53
>>955
横からサンクス
cygstart気づかなかったわ
958名無しさん@お腹いっぱい。:2008/12/18(木) 01:22:26
Cygwin て素直にビルドできる?
CVS で落としてきてビルドしたら
なかなか通らないんだけど
959名無しさん@お腹いっぱい。:2008/12/18(木) 07:58:35
utf-8のdllは入れてみたが
bashで日本語入力すると1文字カーソルがズレたりする。
元々sjisでも日本語は一文字で2回分押さないと
カーソル移動できない、つー状態だから、余計ややこしい。
nanoも表示・入力共に駄目だし。という訳で現在SJISで使用。
1.7になれば少しは良くなるんだろうか。
960名無しさん@お腹いっぱい。:2008/12/18(木) 08:57:39
>>959
入れてみればいいじゃん
http://www.cygwin.com/setup-1.7.exe
961名無しさん@お腹いっぱい。:2008/12/18(木) 10:15:51
>>960
期待してないのでパス
962名無しさん@お腹いっぱい。:2008/12/18(木) 10:37:22
>>959
沖のページにも記述があった気がするけど、その辺は
locale周りがまともになって、wcwidth()が正しく機能するようにならないと無理

1.7でもlocale正常化はまだ先の話みたいだぞ
963名無しさん@お腹いっぱい。:2008/12/18(木) 10:39:12
期待していないのに
> 1.7になれば少しは良くなるんだろうか。
と言ったわけか、興味深いことだな。
964名無しさん@お腹いっぱい。:2008/12/18(木) 10:44:21
# codepage:[ansi|oem|utf8] - This option controls which single- or multibyte
character set is used for file and console operations. Windows is using
UTF-16 characters internally and this option specifies how 8-byte character
sets are converted to UTF-16 and vice versa.
The default setting is ansi which means, conversion is based on the current
ANSI codepage, typically 1252 in many Western language versions of Windows.
The name originates from the ANSI Latin1 (ISO 8859-1) standard, used in
Windows 1.0, though the character sets have since diverged from any standard.
The second setting selects an older, DOS-based character set, containing
various line drawing and special characters. It is called oem since it was
originally encoded in the firmware of IBM PCs by original equipment
manufacturers (OEMs).

If you find that some characters (especially non-US or 'graphical' ones)
do not display correctly in Cygwin, you can use this option to select an
appropriate codepage. Finally, utf8 treats all file names and console
characters as UTF-8 chars. Please note that, for correct operation,
you have to set the environment variable LC_CTYPE to "C-UTF-8" for
the time being.
The reason is that newlib's multibyte conversion functions require this setting.
965名無しさん@お腹いっぱい。:2008/12/18(木) 10:47:39
で、win98SEでCygwin-1.7.0を動作させるパッチなり改造カーネルなりは無いの?
966名無しさん@お腹いっぱい。:2008/12/18(木) 12:21:31
cygwin の emacs が終了できなくてヤマった.
むかしからそうなのか・・・ kill-emacs
967名無しさん@お腹いっぱい。:2008/12/18(木) 15:16:57
>>962
>wcwidth()が正しく機能するようにならないと無理
その辺は読んでなかったわ。サンクス!
>1.7でもlocale正常化はまだ先の話みたいだぞ
確かに基になるデータとかが入ってないから
やる気ないんだろうなぁ。他ライブラリでも
widechar?対応とか知らん、みたいな話もあるし。
やってられんわー。マゾッ気が無いとUTF-8化は無理。
968名無しさん@お腹いっぱい。:2008/12/18(木) 16:11:22
1.7は LANG=ja_JP.UTF-8 サポートしないのかな。
969名無しさん@お腹いっぱい。:2008/12/23(火) 13:19:41
Newlib 1.17.0 is released
--------------------------------------------------------------------------------
The latest snapshot is on the web-site.

Thanks to everyone for getting in their fixes, clean-ups, and additions in time.

*** Major changes in newlib version 1.17.0:
* new C99 wide-char function additions
* lm32 platform support contributed
* movement of regex functions from sys/linux directory into
shared libc/posix directory
* string function optimizations
* redesign of formatted I/O to reduce dependencies when using
sprintf/sscanf family of functions
* numerous warning cleanups
* documentation fixes to support pdf, info, ps formats and
eclipse libhover hover docs
* various bug fixes
970名無しさん@お腹いっぱい。:2008/12/26(金) 15:55:33
symbolic link が独自ファイルじゃなくて NTFS のを使うようになるのはいつですか?
971名無しさん@お腹いっぱい。:2008/12/26(金) 16:32:38
XP が絶滅してからかも。
機能的には可能なんだけど。
972名無しさん@お腹いっぱい。:2008/12/26(金) 17:30:56
そうなるとFATも使ってる場合ちょっと面倒なことにならない?
973名無しさん@お腹いっぱい。:2008/12/27(土) 16:06:37
Vista以降のNTFSならネイティブsymlink、
それ以外は疑似symlink
と使い分ければいいけど、作る方は面倒くさそうだな。
974名無しさん@お腹いっぱい。:2008/12/27(土) 22:47:55
ぐええ。Cygwin 1.7ってWin9x切ると同時にnontsecも削除したのか。
wincapのhas_securityとか、内部フラグもごっそり消えとる。

昔からnontsecの疑似パーミッションでお手軽Unix like toolsとして
使って来たから、運用してる途中で厳密なパーミッション管理されると
access deniedの山で面倒くせえ。次のPC組むまで1.5.25にしとこ。
975名無しさん@お腹いっぱい。:2008/12/27(土) 23:06:31
505 名前:名無し~3.EXE[sage] 投稿日:2008/12/23(火) 23:44:48 ID:FzkMEgwa
しかし、1.7ではCYGWIN=nontsecが効かない。。

506 名前:名無し~3.EXE[sage] 投稿日:2008/12/23(火) 23:58:31 ID:Lg4jkgAZ
>>505
CYGWIN=nontsecはfstabのnoaclオプションに置き換えられた。
976名無しさん@お腹いっぱい。:2008/12/27(土) 23:24:24
おお。がいしゅつだったのね。過去ログ見てなかったわ、スマソ。
977名無しさん@お腹いっぱい。:2008/12/27(土) 23:59:28
いや、Windows板からのコピペ。
978名無しさん@お腹いっぱい。:2008/12/28(日) 12:59:26
進化してるんだな
979名無しさん@お腹いっぱい。:2008/12/28(日) 14:32:12
というか、向こうでは「必ず読め」のところにかいてあるんだから「ちゃんと読めよ」と
突込みが入っていたがな…
980名無しさん@お腹いっぱい。:2008/12/29(月) 22:00:05
日本語が通るrxvtのバイナリどこかにありませんか?
サイトが軒並みnot foundです
981名無しさん@お腹いっぱい。