1 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/12/12(金) 00:54:20 ] zshについて語るスレ www.zsh.org/ zsh.sourceforge.net/ ・過去ログ zsh その5 pc11.2ch.net/test/read.cgi/unix/1212677877/ zsh その4 pc11.2ch.net/test/read.cgi/unix/1107342206/ zsh その3 pc5.2ch.net/test/read.cgi/unix/1080002786/ zsh入門 パート2 pc3.2ch.net/test/read.cgi/unix/1036324177/ zsh入門 pc.2ch.net/test/read.cgi/unix/990283346/
827 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/01/14(土) 10:44:12.89 ] sudo command てすると、commandのaliasが展開されない どすればsudoでもaliasコマンド使える?
828 名前:名無しさん@お腹いっぱい。 [2012/01/14(土) 12:10:30.76 ] global aliasでどうか?
829 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 16:53:03.33 ] alias sudo='sudo ' がよくある解
830 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/01/14(土) 23:01:13.40 ] >>829 それ見つけたけどなんかうまくいかない $@とか含むエイリアスはダメなのかな?
831 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/14(土) 23:23:23.21 ] >>827 そのエイリアスってroot権限なくても展開できるのかな。
832 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/23(月) 01:05:45.91 ] >>829 なにそのクールなトリック全然解らない、と思ったらそういう仕様があんのね。 見たのは↓の話で bash だけど。man zshall に該当記述が見付からない… ttp://d.hatena.ne.jp/Yudoufu/20110326/1301129885 この人の言っている偶然の抑止力って何のことだ? >>830 alias 内での $@ は多分期待動作と違うと思うよ。普通に使えない。 あーでもそれは alias sudo 関係ないから違う話なのかな? もしかして alias ではなく function が混ざってるのかも。 ↓ でも同じことができると思うけど、これもダメ? function が原因なら同じ話だけど。 # 1回まで展開する sudo () { command sudo ${aliases[$1]:-$1} $*[2,$] } >>831 root 関係ないような… なんか試してたら alias echo='echo[TAB]' # ([TAB] は "^[^I" is self-insert-unmeta で入れた tab) の後に echo a とか実行すると履歴に echo[TAB]a が残ることを発見してしまった。 どーでもいいけどなんだコレ。 そしてこれもどーでもいいが history では [TAB] も \t (2文字) も \t と表示されて区別できない。
833 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/23(月) 01:07:36.87 ] ちなみに展開1回までとかアホかという場合はこれで。 # 展開回数制限なし sudo () { local cmdline arg local -A hist cmdline=($1) while (( ! ${+hist[$cmdline[1]]} && ${+aliases[$cmdline[1]]} )) do hist[$cmdline[1]]= cmdline=($aliases[$cmdline[1]]) arg="$cmdline[2,$] $arg" done command sudo $cmdline[1] $arg $*[2,$] }
834 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 00:22:12.80 ] RC_EXTENDED_PARAM って代入のときは効かないんですかね? % num=(1 2 3) % echo A${^num}B A1B A2B A3B % str=A${^num}B % echo $str A1 2 3B こうすれば目的を果せますが… % str=$(echo A${^num}B) % echo $str A1B A2B A3B
835 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 00:28:21.85 ] ちゃんと効くけど? str=(A${num}B)
836 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 00:29:28.68 ] おっと ^ を入れ忘れた。 ${^num}ね。
837 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/24(火) 01:08:51.91 ] >>835-836 なるほど、ちゃんと配列として代入せにゃならんのですね
838 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/31(火) 11:30:31.32 ] zshでcat file_not_exist >/dev/null 2>&1 | w3mとやると、 catのエラーメッセージがw3mに渡されることに気付きました。 shのリダイレクションの解釈だとパイプには何も渡されないはずですけど、zshはどうしてこういう動作にしてるんですか? 何か理由があるんでしょうか。
839 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/01/31(火) 14:32:40.13 ] >>838 unsetopt multios
840 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 07:31:41.94 ] >>839 じゃなくて、どうしてmultios状態をデフォにしてるのか、何か理由があるのかを聞いてるんだが。
841 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 08:02:56.24 ] >>840 command > file1 > file2 とやると両方のファイルに出力されるのがzshというかmultiosの特色だね 開発者の意図は知らんが、有効にすることでデメリットがあるわけでもないから有効になってるんじゃないかな
842 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 08:03:33.59 ] そりゃ作者が便利だと思って取り入れた機能はデフォにするだろ
843 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 08:07:08.37 ] であれば、 command > /dev/null | command の場合は別にするべき。 大きなデメリットだな。
844 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 08:11:02.94 ] teeを使いたくなかった奴が作ったのにそりゃないな
845 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 08:14:01.25 ] >>842 作者が便利だと思っても互換性に問題がある機能はデフォではOFFにするのが鉄則。
846 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 08:32:47.47 ] はて、非互換ってどのシェルに対して。shとかだとほとんどデフォで使える機能なくなる気が
847 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 08:34:55.21 ] >>846 他のシェルに対する互換性じゃなくて、multios導入前のzsh自身に対する互換性ね。
848 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 10:11:56.10 ] そんなこといったら zsh v0.0.1 とかから何も進歩できないじゃん
849 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 10:25:05.49 ] >>845 作者にそう言えばいいじゃない。
850 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 10:56:27.96 ] >>845 >作者が便利だと思っても互換性に問題がある機能はデフォではOFFにするのが鉄則。 こういう鉄則始めてみたんだが、どこで言われてる奴?
851 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 11:12:17.72 ] まあ互換性に関しては原則としては理解できる主張だが ことインタラクティブ関係の便利機能はどこかでデフォルト on にする タイミングってものはあってもいいわけだ いやなら古いの使ってろってのも間違ってないし
852 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 11:14:19.56 ] 互換性を重視するか互換性捨てて新機能を重視するかは 単にポリシーの問題、決めの話でしょ。 ぜんぜん鉄則ではないよ。
853 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 12:08:24.98 ] >>840 ウダウダ書かずに最初からそう書けよ
854 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 13:57:53.03 ] まぁすぐ書いたからいいじゃん。
855 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 14:34:26.24 ] >>854 そうだね。連投に次ぐ連投で予想以上の嫌悪感を撒き散らしていたよね。
856 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 14:42:13.97 ] >>838 →>>839 →>>840 だから連投ってほどのこともしてないじゃん。
857 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 14:46:18.61 ] >>838 =>>840 =>>843 =>>845 =>>847 IDじゃなくてもこれだけ書き込んだら目立つ
858 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 14:47:04.58 ] >>853 は>>840 への指摘でしょ? それ以降の話は関係ないじゃん。
859 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 15:20:42.30 ] >>858 そう、>>853 の意図としては>>840 に対してのみの指摘。 元々のウダウダ書いている>>838 は multios を知らない人間の質問の仕方。 だからその回答は「zsh には multios って機能があるから」で十分で、 あとはググりでもすればいくらでも満足してもらえると思ったんだがな。
860 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 16:08:39.89 ] 838です。私の書き込みは838だけで、840以降のレスは別の方です。 zshが複数ファイルへのリダイレクションができるのは知ってましたが、 その機能がcommand >/dev/null 2>&1 | commandの動作に影響することまで頭が回りませんでした。 あとは自分でzshmisc読んで勉強しようと思います。 回答して下さった方、どうもありがとうございました。
861 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 16:10:04.40 ] 2chとは思えないまともすぎる書き込み…
862 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/01(水) 16:16:08.78 ] なりすまし多いよなぁ。 質問する際はトリップ推奨ってことにした方がいいね・・・。
863 名前:855=857 mailto:sage [2012/02/01(水) 17:32:02.57 ] >>860 了解しました。
864 名前:zsh初心者 ◆./pq9ARSgM mailto:sage [2012/02/03(金) 01:55:09.12 ] 初めてトリップつけるけど、これでいいの(´・ω・`)?
865 名前:zsh初心者 ◆./pq9ARSgM mailto:sage [2012/02/03(金) 01:55:36.82 ] できたっぽ(´・ω・`)ノみんなよろしくな
866 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/03(金) 02:15:05.15 ] なんの必要があって…?
867 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/04(土) 14:52:47.90 ] >>844 ファイルと標準出力の両方にリダイレクトしたい場合もmultiosで出来るんですか? これはteeじゃないと駄目かと思ってました
868 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/04(土) 16:55:57.40 ] ・マシン毎にzsh_historyを使い分けたい ・異なるマシンのzsh_historyを参照したい この両方を同時に実現する方法はないかな。 今は複数マシンのzsh_historyをsamba等で共用してるけど、 マシン単位で区別ができないのがツライ。
869 名前:名無しさん@お腹いっぱい。 [2012/02/04(土) 17:07:58.08 ] HISTFILEにホスト名を含むようにすればいいんじゃないの?
870 名前:名無しさん@お腹いっぱい。 [2012/02/04(土) 17:10:24.09 ] いや、エディタでファイルを読めればいいという意味なのじゃなくて、 履歴検索時全ホスト分から探して欲しいという意味なのか。
871 名前:名無しさん@お腹いっぱい。 [2012/02/04(土) 17:16:18.66 ] zshmiscのzshaddhistory関数の使用例に、通常の履歴に加えて カレントディレクトリにも履歴を書き出す例があった。
872 名前:名無しさん@お腹いっぱい。 [2012/02/04(土) 19:59:07.40 ] OpenSUSEなんだけどPATHを.zshenvに書くと /etc/zprofileで参照される/etc/profileで上書きされる. SUSEで使っている人はPATHをどこに書いてますか?
873 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/04(土) 21:25:43.31 ] つーか/etcのファイルを読まないようにする方法ってあったっけ? 大抵のzshユーザは/etcのファイルよりも細かく設定してるし、邪魔なだけだよね
874 名前:872 mailto:sage [2012/02/04(土) 21:40:29.86 ] >>873 PATHも追加ならいいんだけど最初から設定するみたいで消されちゃう スクリプトを使うから必要なんだけど,.zshrcに二重で書くのも変だし…
875 名前:名無しさん@お腹いっぱい。 [2012/02/05(日) 01:26:19.14 ] 最初に /etc/zshenv を読み込むのは不可避。 ユーザーが介入できるのはその次の ~/.zshenv か。 setopt no_global_rcs だっけ?
876 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/05(日) 07:18:57.19 ] >>867 そりゃできますよ。843が文句言ってるけどw
877 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/05(日) 11:14:06.71 ] >>876 複数ファイルへのリダイレクト時にはmultiosで動作して、 ファイルとパイプの組合せの場合はmultiosにならないような設定とかオプションとかないの?
878 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/05(日) 13:05:09.41 ] >>875 サンクス。読み込み順は↓ ttp://cocelo.s201.xrea.com/wiki/index.php?Shell%2Fzsh というわけで>>874 は setopt no_global_rcs を .zshenv に書くのがよろし
879 名前:872 mailto:sage [2012/02/05(日) 15:12:20.38 ] >>875 >>878 うまくいきました ありがとうございます
880 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/05(日) 17:59:39.17 ] >>876 もしかして、こんなふうに標準出力のデバイスファイルを指定するんですか? echo hoge >file >/dev/stdout しかし標準出力には何も出ない・・・
881 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/05(日) 18:32:09.66 ] >>880 を試そうとして、 echo hoge >file1 >file2 >/dev/stdout のようにファイル2つと/dev/stdoutを指定したら、 zshがCPU使用率100%になって固まった。 echo hoge >file1 > /dev/stdout ←だと固まらない。 echo hoge >file1 >file2 >/dev/stdout ←で固まる。 再現率100%。バグか?w
882 名前:880 mailto:sage [2012/02/05(日) 19:38:57.92 ] stdoutじゃなくてstderrだと出る・・・ echoって標準エラー出力に出す仕様だっけ?? >>881 自分もそうなりました。zshは4.3.10です。
883 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/05(日) 20:05:06.90 ] 25016 read(15, "hoge\n", 4092) = 5 25016 write(13, "hoge\n", 5) = 5 25016 write(14, "hoge\n", 5) = 5 25016 write(16, "hoge\n", 5) = 5 25016 read(15, "hoge\n", 4092) = 5 25016 write(13, "hoge\n", 5) = 5 25016 write(14, "hoge\n", 5) = 5 25016 write(16, "hoge\n", 5) = 5 止めかたがわからずPCが焼け石になるところでした
884 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/05(日) 20:37:13.09 ] うーん、こんな危険なmultios状態をデフォにするべきじゃないねw
885 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/05(日) 21:42:57.78 ] ん? echo hoge >file1 >file2 >/dev/stdin じゃないのか
886 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/05(日) 21:46:28.52 ] >>885 stdinじゃないよ。 echo hoge >file1 >file2 >/dev/stdout なのに、ストリームがループして無限にhoge hoge .... データが吐かれる。
887 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/05(日) 23:38:13.30 ] そうじゃない。885は正しく動作するコマンドライン 誤記の指摘ではなくて、やりたいことはstdinじゃないのか?と
888 名前:zsh初心者 ◆./pq9ARSgM mailto:sage [2012/02/05(日) 23:46:02.29 ] じつはぼくはまだzsh使ってなくて、bashなんだけど(´・ω・`) みんなはなんでzshを使い始めたの? bashから乗り換えたくなるような機能って何があるの?
889 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 00:06:28.69 ] ないよ
890 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 00:13:22.46 ] >>889 だな。 今のbashはzshの持っている機能を100%持ってる。 bashにしかない機能も山ほどある。
891 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 00:16:57.70 ] >>887 ほんとだ・・・なんでstdinなんですかね?逆のイメージ持ってた スレチですが教えてください
892 名前:zsh初心者 ◆./pq9ARSgM mailto:sage [2012/02/06(月) 00:27:31.43 ] >>889-890 そ、そうなんだ(´・ω・`)
893 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 00:29:26.85 ] >>892 そうだよお。 bashがなんでLinuxでスタンダードシェルになってるかこれでわかるよね? おじさんを信じてzshなんて使うのやめようねぇ。
894 名前:zsh初心者 ◆./pq9ARSgM mailto:sage [2012/02/06(月) 00:36:22.89 ] >>893 LinuxじゃなくてMacを使ってるんだけど(´・ω・`) じゃあ、おじさんはどうしてzshを使っているの?
895 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 01:15:11.82 ] >>890 じゃ具体例挙げてくれ 最近のbashはインクリメンタルサーチなど対応してるというのは聞いたけど
896 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 06:46:06.66 ] >>881 >>886 が指摘してる件は重大なバグだろ? echo hoge >file1 >file2 >/dev/stdout って実行しただけで固まって無限サイズファイルができるって、 危なくて使えない。
897 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 09:56:43.30 ] > 今のbashはzshの持っている機能を100%持ってる。 > 今のbashはzshの持っている機能を100%持ってる。 > 今のbashはzshの持っている機能を100%持ってる。 > 今のbashはzshの持っている機能を100%持ってる。
898 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 12:00:37.83 ] >>897 言いたいことがあるなら具体的に。
899 名前: 忍法帖【Lv=2,xxxP】 mailto:sage [2012/02/06(月) 20:48:23.62 ] 出来るかもしれんけど、より簡単に設定出来るのはzshなんじゃね?
900 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 20:57:22.55 ] bashでzleとかいじれる?
901 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 21:11:50.27 ] >>898 100% 知っているとは思えないってことじゃないかな。
902 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 21:29:09.15 ] >>901 だったらそれを自分で言うべき。
903 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 21:54:16.33 ] 矛先が非建設的な方向に向いております
904 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 23:27:59.71 ] bash にしかない機能って何?いいのある? よさそうなら使いたい。
905 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/06(月) 23:33:50.86 ] bashがzshの機能を入れるのはzshユーザにとっても喜ばしいことじゃない?
906 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/07(火) 00:22:28.90 ] >>890 bash にも既にあるってフレーズはよくきくからそうなんだろうなー、って思ったけど ちなみに bash で multios ってどうやんの? やり方がわからなかった。
907 名前:zsh初心者 ◆./pq9ARSgM mailto:sage [2012/02/07(火) 00:24:29.43 ] けんかはやめて(´・ω・`)
908 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/07(火) 01:30:33.03 ] >>889-890 はどうみてもクソコテのクソ質問を適当にあしらってるだけだろ
909 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/07(火) 02:12:44.28 ] だとして >>893 は要らんけどな。
910 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/02/07(火) 02:39:27.57 ] >>885 それなら echo hoge >file1 >file2 >/dev/tty じゃないか?これだと抽象度に欠けるが。 echo hoge >file1 >file2 |cat が解りやすいけど cat とか書きたくなければ echo hoge 3>&1 >file1 >file2 1>&3 かな。試してみたら echo hoge 1>&1 >file1 >file2 もできるね。しかし echo hoge 3>&1 1>&1 1>&3 1>&1 で hoge が 4つでるのに対して echo hoge 1>&1 1>&1 で hoge が 2つじゃなく1つでるのは何故なんだろう。 >>896 zsh にはバグが多い印象があるけどそれは仕様だろう。 自分が何をしようとしてるか理解してるか確認するなんて 気の利いたことは zsh はしないからな。 それがバグだってんならそうかもしれないが、まあ余計だろう。 あーでも rm * はするんだっけ?
911 名前:名無しさん@お腹いっぱい。 [2012/02/28(火) 22:50:26.88 ] 2012-02-23 : Release 4.3.17 Complete fixes from last release.
912 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/02(金) 23:20:33.32 ] 2行目ってどう訳すん?
913 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/03(土) 08:40:54.41 ] 2行目は動詞がない名詞区。fixesは3単現の s じゃなくて、fixの複数形。 あとはわかるな。
914 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/03(土) 09:27:07.25 ] 主語のIかWeが省略されてるんじゃないかな completeは動詞でfixesが名詞 訳すと「この前のリリースからの(バグ等の)修正を完了したよ」
915 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/03(土) 09:30:11.26 ] 主語がないと訳せない人がいるのか ニュアンスでわかんないものかねぇ
916 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/03(土) 09:48:41.16 ] いや、completeは形容詞として訳して欲しい。全体で箇条書風の名詞句。
917 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/03(土) 09:50:42.66 ] >>914 completeを動詞と考えると、現在形なのはおかしいね。 なので >>916 説に1票。
918 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/03(土) 10:05:43.36 ] >>917 ああ言われてみれば確かにおかしい。というわけでリリースノート見てきた zsh.sourceforge.net/releases.html > Changes between versions 4.3.16 and 4.3.17 > Complete fixes from last release. 「4.3.16と4.3.17の間の変更点は何か」なので 自分もComplete fixesでひとつの名詞句と考える>>914 説に改説します 「この前のリリースからの(バグ等の)完全な修正」
919 名前:名無しさん@お腹いっぱい。 [2012/03/03(土) 10:50:18.07 ] 4.3.16で直し方が半端だったバグがあって、それを完全に修正したってこと?
920 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/03(土) 13:41:34.71 ] はい
921 名前:名無しさん@お腹いっぱい。 [2012/03/03(土) 16:35:59.06 ] zshの設定って面倒くさいな zshの本読んでたら頭痛くなってきた・・・ うまく構成して見やすいドキュメント整えた配布版ってないの
922 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/03(土) 16:44:15.83 ] デフォルトでも十分に便利だと思うが。。。
923 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/03(土) 17:14:39.37 ] oh-my-zshでも使ったら。
924 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/03(土) 20:49:21.06 ] 更に面倒だよ...
925 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/04(日) 01:23:46.40 ] 大丈夫か。辛いなら fish とか使ったら。今どうなってんのか知らんけど。 >>915 いやー主語はどうでもいいんだけどニュアンスでしか読めなかったから あんまり考えずに聞いてみた。 ニュアンスで読んだら見当違いの内容も浮かんだんでね。 >>919 どっちかというと 4.3.16 に対して完全にバグ修正しかしてないよってことじゃないかな。
926 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/09(金) 03:35:07.50 ] fish初めて知ったわw 悪くなさそうだが最終更新が2009年・・・
927 名前:名無しさん@お腹いっぱい。 [2012/03/09(金) 14:06:16.31 ] fishと名のつくシェルは fish.x しか知らんかった。
928 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/17(土) 19:56:00.78 ] sudo -s でrootユーザになると、TAB押して補完するときに↓のようになるけど何でじゃろ? 補完自体はできてるんだけど _path_files:17: command not found: _have_glob_qual _path_files:201: command not found: _have_glob_qual _path_files:202: command not found: _have_glob_qual _path_files:695: command not found: _list_files
929 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/17(土) 21:17:22.57 ] どうじゃろ?
930 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/17(土) 22:20:52.25 ] root の設定が悪いとか
931 名前:928 mailto:sage [2012/03/18(日) 00:45:06.34 ] 「sudo -u 自分 -s」 で自分のアカウントになっても同じっす。 CentOS5.7でそうなる一方、CentOS6.2では出ない。 でも、どちらもzsh4.3.17をソースからビルドしてるし、.zsh*自体も同じなんだよなぁ。
932 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/18(日) 01:35:14.43 ] ググって最初に出てきたものくらいは当然試してるだろうけど、 「試したけど駄目だった」くらいは書け > Remove ~/.zcompdump and restart zsh.
933 名前:928 mailto:sage [2012/03/18(日) 02:16:08.50 ] >>932 実は.zcompdump消すのは試してたんだけど、問題がでたりでなかったりで よく分からずじまいだった。・・・で、今一度調べてやっと分かりました。 .zprofileにて if [[ $SHELL == /bin/zsh ]] ;then SHELL=$HOME/bin/zsh exec $SHELL fi とすることでログインシェルの/bin/zshを最新のzshに切り替えてたんだけど、 インタラクティブシェルは.zprofileを読み込まないのを忘れてました。 新しいzshが作った.zcompdumpを古いzshで読んだのでこうなったと。 実にくだらないミスで・・・orz。皆さんお騒がせしました。
934 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/21(水) 23:26:33.31 ] 以下のようなディレクトリ構成のところで、hoge下にdir1/dir2へのシンボリックリンクがあるとします。 $tree hoge hoge |-- dir1 | |-- dir2 | |-- dir3 | `-- dir4 `-- dir2 -> dir1/dir2/ dir2にcdし、「cd ../」まで打ってからTAB押すと、dir2〜dir4が候補表示され、 実際に「cd ..」するとhoge下にcdします。 ここで、補完をdir2〜dir4じゃなくて、hoge下のdir1〜dir2となるような方法はないですか? ちなみにbashだとその仕様みたいです。
935 名前:名無しさん@お腹いっぱい。 [2012/03/21(水) 23:38:28.15 ] setopt chaselinks ?
936 名前:934 mailto:sage [2012/03/23(金) 00:19:46.27 ] >>935 それだと「cd dir2」でdir1/dir2に移動するだけなんで、やりたいことと違います。
937 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/24(土) 04:19:32.53 ] こんな方向でどか _directorys_symlink () { local pre="${PREFIX%/*}/"; local -a tmp; tmp=($(cd "$pre" && echo *)); compadd -f -p "$pre" -W "$(cd "$pre" && pwd -P)/" "$@" -a tmp } _cd_symlink () { local expl; _wanted directorys-symlink expl 'directory when retain symbolic links' _directorys_symlink } _cd_wrapped () { local pre="./${PREFIX%/*}" ret=1; [[ "$(cd "$pre" 2>/dev/null && pwd -P)" != "$(cd -P "$pre" 2>/dev/null && pwd)" ]] && _cd_symlink && ret=0; _cd && ret=0; return ret } compdef _cd_wrapped cd 色々足らんけど
938 名前:934 mailto:sage [2012/03/24(土) 18:36:46.18 ] >>937 非常に申し訳ないですけど、さすがにそれは使う気がしないですw でも、ありがとうございます。
939 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/24(土) 22:21:42.30 ] それは残念。でもないか。 よく知らないけど、多分 cd の補完処理を直さないと無理じゃないかな。 ワーキングディレクトリのシンボリックリンクを残して path を辿るのは cd の特殊な仕様みたいだけど、 cd の補完がそれを考慮せず通常の path 補完をしているようだ。 なんで _cd を直すか cd の compdef を対応版に変える必要がある …ように見える。
940 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/24(土) 22:27:23.24 ] 関係ないけど compadd の -P と -p の違いがよくわからない。 なんか前調べた気もするけどなんだったかな…
941 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/27(火) 22:42:55.78 ] 今日rsyncを使ってて妙なことに遭遇したのですが、zshスクリプトにおいて ディレクトリのコピーを以下のようにしていたところ、たまにrsyncのコピーが 正しくなされないことが分かりました。 while :;do rsync -av dir.org/ dir 〜dir内のファイルを書き換える処理〜 done rsyncの直前で dir.org と dir の中身を見ると確かに更新されているのですが、 rsyncはそれらのコピーをスルーしていました。今のところ以下が分かっています。 @上記現象は再現性が一定でない(正常コピーできるときもある) Arsyncの直前でsleep 1を入れると何故か正常にコピー Bbashだと無問題 zshの問題とも限らない気がしますが、このスレの方々は経験豊富だと思うのでお尋ねします。 何かアドバイスあればお願いします。
942 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/30(金) 11:06:21.55 ] , -'"´  ̄`丶、_ ,.∩ `ヽ 〃∪'´ ̄`二二人\ ヽ | ツ´ ̄ ̄ ̄ ̄´ ヾ ヽ. ', |ハ ,ニ、 ,. - 、 | | | l | | ハ ィハ ,二ヽ. | | | | | 同じ板にコピペするとそのままだけど、 | | | じ' |トJ〉 /)} l | 違う板にコピペすると鬼のような怖い顔 | ハ 、'_,  ̄,, 厶イ川| に変わる摩訶不思議な佳子様コピペ。 l l /\ .. イV\川 | ,' l l ,イ `l ̄´ / /ヽl l l | l ハ `メ、 〃 ヽヽ、__ノ
943 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/03/31(土) 00:58:41.59 ] dir内の〜 がなにかによるんじゃないの。 つーか dir が dest なんだよね。それだとコピーしない気がするけど、するんだね。 rsync はよーしらんから勘違いしてるかな。
944 名前:941 mailto:sage [2012/03/31(土) 21:41:34.17 ] すいません、自己解決しました。以下、zshとは関係ない話で恐縮ですがいちおう報告します。 rsyncはタイムスタンプを見てコピーするか否か判断しますが、>>941 のファイル書き換え処理が 一瞬で終わるためにタイムスタンプが変化しないのが原因でした。 実際、ls -l --full-timeで見ると↓のように秒以降が全部0になっています。 -rw-r--r-- 1 hoge users 326 2012-03-31 21:24:24.000000000 +0900 file ちなにみ環境はCentOS6.2です。おそらく、秒以降のタイムスタンプも記録するシステムならば 今回の問題は起こらないはずだと思います。あと、>>941 で言った@とAも勘違いでした。 この現象がランダムに出たために、誤って解釈してしまいました。失礼いたしました。
945 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/27(金) 23:45:48.02 ] ls とかのソートって unsetopt numeric_glob_sort の場合は以下の順ですよね? 特殊文字( _ を除く) 数字 大文字 _ 小文字 実は、あるホストへ自宅からログインすると上記の通りなのが、 職場からログインすると「 _ 」の存在が無視されたようにソートされます。 たとえば、A _b C というファイルがA C _b の順でソートされます。 こんなことってあるんですかね?全く同じホストにログインしてるのだから、 もう残る違いはログイン元の端末環境ぐらいしか・・・
946 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/27(金) 23:58:15.17 ] >>945 > 大文字 > _ > 小文字 > たとえば、A _b C というファイルがA C _b の順でソートされます。 大文字 大文字 _ の順になってる ってのは正常な動作じゃないのか?
947 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/28(土) 00:11:03.30 ] >>946 すいません、間違えました。以下の意味に訂正します。 「辞書順で A C _B となるのが、A _B C となってしまう」
948 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/28(土) 00:34:14.98 ] LC_COLLATEの値は?
949 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/28(土) 14:06:53.07 ] >>948 自宅からの接続ですが、空でした。 こうなったら、自宅からと職場からとで環境変数が同じかどうか調べるしかないですね。 ところで「 _ 」って特殊文字には入らないんですかね?
950 名前:名無しさん@お腹いっぱい。 [2012/04/28(土) 17:38:50.08 ] LC_COLLATEをみるなら それより優先されるLC_ALLと 最後の砦のLANGも見ないと…
951 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/28(土) 21:22:15.90 ] >>949 ていうか ascii 順でしょ。
952 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/28(土) 21:32:43.75 ] $ LC_COLLATE=en_US.UTF-8 ls a _a b _b $ LC_COLLATE=C ls _a _b a b
953 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/28(土) 21:59:07.34 ] てか、「lsとかのソート」の時点でzshもsetoptも関係なくね?
954 名前:名無しさん@お腹いっぱい。 [2012/04/28(土) 22:08:06.56 ] そうは思ったがきっとglobの展開のことだと汲み取ってあげたい。
955 名前:名無しさん@お腹いっぱい。 [2012/04/28(土) 22:10:50.41 ] lsは表示するファイルを自力でソートしているのでlsの問題。 (directory entryの出現順のままソートせずに表示するオプションがある) glob展開の結果の順序はシェルの問題。
956 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/28(土) 22:15:19.85 ] $ LC_COLLATE=en_US.UTF-8 zsh -c 'echo *' a _a b _b $ LC_COLLATE=C zsh -c 'echo *' _a _b a b
957 名前:名無しさん@お腹いっぱい。 [2012/04/30(月) 00:17:44.41 ] 最近はzshあんま更新されてないし、bashのがいいってまじ?
958 名前:名無しさん@お腹いっぱい。 [2012/04/30(月) 07:45:44.90 ] そろそろ5を出そうかというタイミングで何言ってるんだ?
959 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/04(金) 23:55:38.50 ] >>952 >>956 両方 _a _b a b になるじゃねーか。試しちまった。
960 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/05(土) 11:39:09.60 ] >>959 え? お前の環境変だろ。LC_ALL設定してしまってるとか。
961 名前:名無しさん@お腹いっぱい。 [2012/05/05(土) 12:00:08.94 ] en_US ロカールが定義されているか、未定義かで変わる?
962 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/05(土) 12:10:33.40 ] 各地域ロケールの内容ってどこかで決まってたりするの? 環境依存だと思ってた。
963 名前:名無しさん@お腹いっぱい。 [2012/05/05(土) 12:12:56.73 ] >>959 ではないけどやってみた。OSX Lion。 普段の環境は LC_ALL 未定義、LC_MESSAGES=C、LC_TIME=C、他のLC_xxxは未定義、LANG=ja_JP.UTF-8 $ LC_COLLATE=en_US.UTF-8 zsh -c 'echo ZSH_VERSION=$ZSH_VERSION LC_ALL=$LC_ALL LC_COLLATE=$LC_COLLATE; echo *' ZSH_VERSION=4.3.11 LC_ALL= LC_COLLATE=en_US.UTF-8 _a _b a b $ LC_COLLATE=C zsh -c 'echo ZSH_VERSION=$ZSH_VERSION LC_ALL=$LC_ALL LC_COLLATE=$LC_COLLATE; echo *' ZSH_VERSION=4.3.11 LC_ALL= LC_COLLATE=C _a _b a b
964 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/05(土) 12:21:42.24 ] 多分、en_US localeをインストールしてない環境ってオチ。それならLC_COLLATE=C と同じになって当然。
965 名前:963 [2012/05/05(土) 13:42:40.15 ] うちのzshはここ見てないのかねぇ。 $ ls -l /usr/share/locale/en_US.UTF-8/LC_COLLATE lrwxr-xr-x 1 root wheel 28 2011-08-02 23:22 /usr/share//locale/en_US.UTF-8/LC_COLLATE -> ../la_LN.US-ASCII/LC_COLLATE $ ls -l /usr/share/locale/la_LN.US-ASCII/LC_COLLATE -r--r--r-- 1 root wheel 2086 2011-08-02 23:22 /usr/share/locale/la_LN.US-ASCII/LC_COLLATE LNってどこだよw
966 名前:963 [2012/05/05(土) 13:52:07.08 ] $ strings =zsh | grep strcoll 少なくとも strcoll は呼んでないわー。 libiconvとかはリンクしてるけど。
967 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/05(土) 22:53:05.58 ] >>960 片方 a _a b _b になるじゃねーか。LC_ALL設定失念しちまった。 なにこれ _a を 1文字として扱ってるの? >>966 % echo $ZSH_VERSION 4.3.17 % strings =zsh | grep strcoll strcoll
968 名前:名無しさん@お腹いっぱい。 [2012/05/06(日) 04:10:16.92 ] >>967 configure 次第か。
969 名前:名無しさん@お腹いっぱい。 [2012/05/13(日) 00:17:40.31 ] 以下のように拡張子の前の数字を取り除きたいのですが、zmvでどのように実行をすれば良いでしょうか? hoge1.mp3 → hoge.mp3 #数字を取り除く hoge1hoge.mp3 → hoge1hoge.mp3 #そのまま 試行錯誤したのですが、うまく行きません。 以下のように実行すると、"hoge1.mp3"と"hoge1hoge.mp3"を"hoge.mp3"に変換しようとして失敗します。 zmv -n '([a-z]*)[0-9]*.mp3' '$1.mp3' 以下のように実行すると".mp3"に変換しようとして失敗します。 zmv -n '^([a-z]*)[0-9]*.mp3$' '$1.mp3'
970 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/13(日) 00:22:52.56 ] >>>969 basename使うわけにはいかないの?
971 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/13(日) 02:07:28.60 ] いつも for で zmv 使ってないから知らんけど '(*)<->.mp3' じゃないか? 多分それ re じゃないよ。
972 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/13(日) 10:25:40.61 ] それだと (hoge12)3.mp3 になるぜ
973 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/13(日) 12:02:16.55 ] 自分も普段は for 文を使っちゃうけど zmv '(*)[0-9]##.mp3' '$1.mp3' とかでいいのかな。まあ便利なのかもw
974 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/13(日) 12:06:46.39 ] ああ>>972 と同じになってしまうのか zmv '(*).mp3' '${1%%[0-9]##}.mp3' かな?
975 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/13(日) 15:41:51.71 ] おお、たしかに。こうする必要があるか。 '(*[^[:digit:]])<->.mp3'
976 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/13(日) 16:34:24.13 ] そうか shortest match flag とかはないんだな。 うーん *(#c,)<-> で落ちる。こんなパターン使わないけど。
977 名前:969 mailto:sage [2012/05/13(日) 17:35:45.22 ] ありがとうございます。 >zmv '(*).mp3' '${1%%[0-9]##}.mp3' でうまく行きました。 これは$1のうちの%%と##で挟まれた正規表現を取り除くという書式なのでしょうか? >おお、たしかに。こうする必要があるか。 '(*[^[:digit:]])<->.mp3' <-->はどういう処理ですか? こちらは使いかたがよく分かりませんでした。 すみません。zmvのパラメータについて解説しているサイトはありませんか? zmvの書式が難しくて。
978 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/13(日) 18:03:15.98 ] man zshcontrib
979 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/13(日) 19:04:25.29 ] >>978 ありがとうございます。 man zmvで見つからない、とか思っていたので。
980 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/13(日) 21:42:08.02 ] >>977 man zshexpn すれば詳しいことが載っているが ${name%%pattern} と x## の組み合わせだよ 前者はシェルスクリプト一般でよく使われる <-> は <[x]-[y]> の特殊例で数字にマッチする
981 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/15(火) 01:08:56.08 ] >>980 ありがとうございます。 ようやく理解できました。
982 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/15(火) 19:43:39.12 ] man zshall しかうたないな
983 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/16(水) 01:24:52.01 ] >>982 俺もman zshall派 でもそうすると目当てのものみつけにくいんだよなw
984 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/16(水) 01:34:37.45 ] 使うのは zshall でも人に示すときは絞る 昔から言われてるけど zsh 関係のドキュメントは読み物としては面白くないな
985 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/16(水) 23:36:44.49 ] 言われてた気もするけど今思うに特別そうでもない
986 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/05/17(木) 12:33:01.23 ] うん。