1 名前:名無しさん@お腹いっぱい。 mailto:sage [05/02/02 20:03:26 ] zshのスレその4です。 過去スレ zsh入門 pc.2ch.net/test/read.cgi/unix/990283346/ zsh入門 パート2 pc3.2ch.net/test/read.cgi/unix/1036324177/ zsh その3 pc5.2ch.net/test/read.cgi/unix/1080002786/ >>2-3 リンク
596 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/18(木) 21:10:44 ] M-. (insert-last-word) かな?
597 名前:595 mailto:sage [2007/01/18(木) 21:17:18 ] >>596 おお、ありがとうございました。 できましたw zshの強烈な補完に感動してます。 ありがとうございました。
598 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/23(火) 06:52:27 ] predict-on, predict-off を同じキーに配置して オンならオフ、オフならオンに変更するために predictの状態を知りたいんですが どうやったら調べられるんでしょうか?
599 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/24(水) 04:17:04 ] 状態を示す変数でも作ればいいじゃないの
600 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/24(水) 05:38:07 ] >>599 ああ、そうかなるほど。 助かりましたありがとうございます アホなりになんとかできました
601 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/01/30(火) 04:58:45 ] このスレもぼちぼち立ってから2年か。読み返しみると結構レス書いてるな。 実は少人数で廻してるのか。
602 名前:名無しさん@お腹いっぱい。 mailto:age [2007/02/06(火) 17:24:08 ] for i in param1 param2 ... do いろんな仕事を param 毎に done ってやりますけど,各ループ実行に 2個づつ,3個づつみたいな パラメータの渡し方って可能でしょうか? python でいうところの for i,j in ( (x1,y1), (x2,y2), ...) とすると $i, $j でそれぞれ x1, y1 が参照できるみたいな ことなんですが。
603 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/06(火) 19:23:28 ] 関数の中で while [ $# -gt 0 ] do i=$1;shift;j=$1;shift ... done とかやればいいんじゃないの?
604 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/06(火) 19:42:32 ] for i j in param1 param2 ...
605 名前:602 mailto:sage [2007/02/07(水) 02:05:24 ] >603 なるほど〜 とおもったところで >604 ってナンだろう? と目を擦って… ガーン!!! そんなのアリだったのか〜 info zsh したら確かにそう書いてある!! for NAME ... [ in WORD ... ] TERM do LIST done .snip. More than one parameter NAME can appear before the list of WORDs. ありがとうございます
606 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/09(金) 09:38:07 ] MYCOM コラム『漢のzsh』 ttp://journal.mycom.co.jp/column/zsh/001/ こんなん始まったね。
607 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/09(金) 11:06:01 ] >>606 お、これ面白いね。早速ブクマクした てゆーか数年zsh使ってたが、"ls -"の後の補完でオプション出るの知らんかった・・・アホだな俺。。
608 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/09(金) 12:40:10 ] これだけだと面白くなるかどうかまだわからんw WEB上だけの連載なのかな。 UNIX USER の連載は書籍化もされず、WEB で公開されることもなく 埋もれていくのか。本誌は休刊しちゃったし。
609 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/09(金) 12:59:28 ] zshマスターだけちぎってUNIXUSER全部捨てた
610 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/09(金) 13:00:39 ] ん? だからPDF版買えって話じゃないの?
611 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/09(金) 13:54:16 ] >>610 あれ、そんなの売ってたっけ?
612 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/09(金) 15:08:15 ] >>606 pc10.2ch.net/test/read.cgi/linux/1170503611/351 この後にこんな記事ができるってのは、2chみてんのかね。
613 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/09(金) 15:34:33 ] その程度の基本的な機能の紹介で2chと結びつけるのは酷だなw
614 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/09(金) 15:36:41 ] >>612 compinitは設定じゃねーよ。 常識だ。 というわけで、>>606 には一応期待しておくが、まだ評価はできん。
615 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/09(金) 16:02:12 ] >>612 の351も>>606-607 も本人と決め打つのが2ちゃんだろw
616 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/09(金) 20:21:31 ] ぜんぶ俺だから
617 名前:名無しさん@お腹いっぱい。 [2007/02/09(金) 21:22:33 ] UUの連載も内容的にはけっこう古くなっているから、今更書籍化ってのも難しいんじゃないのかな。 今回のは常識だけど、まぁまだ第1回だから今後に期待だな
618 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/11(日) 15:24:29 ] MYCOM記事読んできますた
619 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/11(日) 17:14:19 ] 誰かzshrc晒せ
620 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/11(日) 18:10:44 ] 前にキチガイモーオタが晒してたなw
621 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/11(日) 19:22:49 ] perl -e "print 100"; とすると 100% と表示されます、% は色反転してます この % を出したくないんですけど、どうすればいいですか
622 名前:621 mailto:sage [2007/02/11(日) 19:38:35 ] 事故解決
623 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/11(日) 19:40:34 ] >>622 解決方法くらい書きたまえキミぃ。
624 名前:621 mailto:sage [2007/02/11(日) 19:43:17 ] \n を自動で補ってくれてただけなわけで こんな機能があったとは
625 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/16(金) 12:59:46 ] MYCOMのzsh連載、早速第2回が掲載されているね。 今度はプロンプトのカスタマイズ。
626 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/16(金) 13:22:22 ] PROMPT="%B%{^[[31m%}%/#%{^[[m%}%b " # ただし ^[ は エスケープシーケンス よりは PROMPT=$'%B%{\e[31m%}%/#%{\e[m%}%b ' とか autoload -U colors; colors PROMPT="%B%{$fg[red]%}%/#%{$reset_color%}%b " とかのほうがよさそうなもんだが
627 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/16(金) 13:37:22 ] > エスケープを直接設定ファイルに記述することを嫌って、 > echoやprintfコマンドを使う場合もある。好きな方を選べばいい。 > ただ、コマンドだとプラットフォームごとに動いたり動かなかったりするので、 > ここでは直接書いて使っている echo も print も printf も組み込みコマンドですがなにか
628 名前:626 mailto:sage [2007/02/16(金) 13:39:46 ] 誤)エスケープシーケンス 正)エスケープ orz
629 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/16(金) 14:25:01 ] 設定ファイルとかプロンプトとかどうでもいいからさっさと補完の事教えてくれよう
630 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/16(金) 21:36:58 ] あんまり期待できないな
631 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 09:15:00 ] この程度の事はだれもが通る道だよな それで記事が書けるなんて
632 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 10:59:40 ] 紹介記事(スレ住人的には既に通ってきた内容)と 使いこなし記事(スレ住人も新たな発見がある内容) は違うよなぁ……
633 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 12:02:36 ] このコラムはどういう層を対象にしてるんだろうか
634 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 12:09:58 ] 第1回の出だしに、こんなの書いてある > ここ1年でzshへ移行しやすい状況が整ってきている。 > はじめるには悪くないタイミングだ。 これからzshを始める人向けだろう
635 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 12:34:49 ] いや、それはわかってるけど…
636 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 13:14:31 ] 大地の記事がそんなにいいわけないだろ。 冷静になれ。
637 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 18:20:30 ] むしろこのスレの住人がうなるようなコアな内容を出してきたらウケル。
638 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 19:02:04 ] >>637 ありえない。 もうUNIXUSERの記事の焼き直しでいいよ。
639 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 19:06:28 ] 妙な記事書かれるより安心だなw
640 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 19:17:27 ] zshに限らず最近シェル使わなくなってきた
641 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 19:54:57 ] compctlの解説だけで終わったりして
642 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 20:03:17 ] シェル使わないってなんだ。ログインすらしてないってことか。
643 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 21:14:52 ] 正直にいって細かく設定しても使わないよね zshrcは千行あるけど
644 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/17(土) 23:16:31 ] >>641 compsysは無しかよw
645 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/18(日) 02:04:24 ] その1000行のzshrcを見せてもらおうか
646 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/18(日) 20:08:40 ] 一行一レスでいいから
647 名前:名無しさん@お腹いっぱい。 [2007/02/24(土) 10:43:48 ] htmlで終わるファイルが存在すれば"Exist"と表示させたいとして、 zsh で、 if [ -e *html ];then echo "Exist";fi とすると、 zsh: no matches found: *url となってしまいます。 shでは期待どおりの動作をします。 zshで期待のどおりの動作をするにはどうすればよいでしょうか?
648 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 11:22:11 ] setopt NULL_GLOB
649 名前:647 [2007/02/24(土) 11:56:49 ] ありがとうございました。 こうすると、上の問題は解決しましたが、htmlで終わるファイル名を表示しようとして ls *html とすると、ディレクトリにhoge.htmlがあっても ls: *html: そのようなファイルやディレクトリはありません と出ようになりました。 この問題を解決避けるには、 いちいち、setopt NULL_GLOB, setopt GLOB をしなければならないのでしょうか?
650 名前:647 [2007/02/24(土) 12:09:56 ] if noglob [ -e *html ];then echo "Exist";fi としてもいいみたいですね。
651 名前:名無しさん@お腹いっぱい。 [2007/02/24(土) 12:41:46 ] echo {1..3} で 1 2 3 となります。 echo {a..c} では {a..c} です。 これを a b c とするように出来ないでしょうか?
652 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 12:50:38 ] 出来ない
653 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 12:51:43 ] bashならできる
654 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 13:24:36 ] >>651 setopt brace_ccl echo {a-z}
655 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 13:33:21 ] {a..c}を、という質問なわけだが、、
656 名前:651 [2007/02/24(土) 13:55:06 ] >>652-655 ありがとうございます。 {a..c} ではできない、やりたかったら、 >>654 のようにしろ、ってことですね。 ありがとうございました。
657 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 20:36:40 ] mycomの連載、3回目は履歴に関して
658 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 22:04:30 ] >647 noglob と nullglob を混同してない? noglob は glob しなくするオプション(globの否定)だけど、 null_glob はそれとは違うよ。 オレの環境では null_glob をセットしてもそんなエラーにはならないんだけど。
659 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 22:15:22 ] unsetopt nomatch してるんじゃ?
660 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 23:08:41 ] まあ *.html(N) でいい
661 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/24(土) 23:32:56 ] mycomの今回のはあまり参考にはならんかった。zsh初心者向けぽいな。 ちなみに俺は履歴関連はこんだけオプション有効にしてる。 man zshoptions 読むだけでもマンドクセ状態だが・・・ setopt extended_history setopt hist_expire_dups_first setopt hist_ignore_all_dups setopt hist_ignore_dups setopt hist_ignore_space setopt hist_reduce_blanks setopt hist_save_no_dups setopt hist_verify setopt inc_append_history setopt share_history setopt csh_junkie_history
662 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 00:08:02 ] 漢漢と五月蝿い記事だなあ。
663 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 09:20:45 ] 誰か $path から存在しないディレクトリを削除するコードを書いてくれ
664 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 10:22:44 ] 手元の .zshenv より addpath () {[[ -d $1 ]] && path=($path $1)} # add $* to top of PATH list. addpathlist() { tmppath= for newpath in $* if [ -d $newpath ]; then tmppath=($tmppath $newpath) fi path=($tmppath $path) unset tmppath } addpathlist ~/bin /usr/local/bin /usr/local/gnu /usr/X11R6/bin /usr/local/X11R6/bin /usr/local/X11R5/bin addpath /usr/local/gcc/bin addpath /usr/ucb ...
665 名前:647 [2007/02/25(日) 12:49:04 ] >>658 すみません。ウソ言ってました。 >こうすると、上の問題は解決しましたが、htmlで終わるファイル名を表示しようとして >ls *html >とすると、ディレクトリにhoge.htmlがあっても >ls: *html: そのようなファイルやディレクトリはありません >と出ようになりました。 は間違いでした。正しくは、 (setopt NULL_GLOB とすると) *htmlにマッチするものが無い場合、 カレントディレクトリ以下のファイル、ディレクトリが全て表示される、 です。 そして、NULL_GLOBはglobにマッチするものがなかったら何も渡さない、 ということでNO_GLOBはglobしない、という違いも理解しました。 だから、当前、setopt NULL_GLOB をして*htmlにマッチするものが無かった場合は 上のような動作をするのですね。 私が初めに書いたエラーがでるのは、setopt NO_GLOBとした場合ですね。 >>659 さんのようなオプションをつけていたわけではなく、単に私の間違いでした。 >>660 さんのおっしゃるように、 if [ -e *html(N) ];then echo "Exist";fi でもOKでした。
666 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 14:39:20 ] 試さずにかいたが、-e *html(N) って常に真を返さないか
667 名前:647 [2007/02/25(日) 15:37:36 ] >>666 そうですね汗 またまたいいかげんなこと言ってしまいました。 if [ -e *html(N) ];then echo "Exist";fi はつねにExistとでます。 >>647 で書いたことをやりたい場合には、 1) setopt NULL_GLOB if [ -e *html ];then echo "Exist";fi (この場合はls *htmlで*htmlがなかったらlsと同じになってしまうので) そのあとで setopt GLOB 2) または、 if noglob [ -e *html ];then echo "Exist";fi が正しいようです。
668 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 16:29:49 ] 1) は setopt NO_GLOB では。 NULL_GLOB だと多分 *html(N) と変わらないよ。 あと、特に [ に拘らなければ [[ -e *html ]] でもいいかな。
669 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 17:29:32 ] $ touch test.html $ [ -e test.html ] && echo found || echo not found found $ [ -e *.html ] && echo found || echo not found found $ [[ -e test.html ]] && echo found || echo not found found $ [[ -e *.html ]] && echo found || echo not found not found $ touch '*.html' $ [[ -e *.html ]] && echo found || echo not found found
670 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 17:39:18 ] [[ ]] はグロブを展開しないぽい [ はコマンド扱い? (これも builtin だよね)
671 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 17:55:15 ] >>647 の htmlで終わるファイルが存在すれば"Exist"と表示させたい(ただしzsh: no matches foundは嫌)は、 unsetopt nomatch するのが一番だろ。 その後は [ -e *html ] でも [ -n `echo *html` ] でもおk ( [[ -e *html ]] はだめぽい ) もしnomatchが嫌なら [ -e *html(N) '' ] && echo Exist { [ -e *html ] && echo Exist } 2>/dev/null みたいなw
672 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 17:59:40 ] 案外、簡単に処理できないもんだな。気付かずに罠にはまりそう。 昔ながらのやり方が安全かw if ls | egrep '\.html$' >/dev/null; then echo Exists; fi
673 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 18:13:15 ] glob関連はNOMATCH, NULL_GLOB, CSH_NULL_GLOB とオプションがあってよくわからん。 参考: ttp://d.hatena.ne.jp/amt/20060907/nomatch ttp://d.hatena.ne.jp/amt/20060806/ZshNoGlob ttp://www.ayu.ics.keio.ac.jp/~mukai/translate/zshoptions.html (man zshoptions)
674 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/25(日) 18:33:09 ] nomatchは途中で処理が止まるから厄介 $ echo *UNKO; echo AAAAAAAAAAAAAAAAAAAAAAAA zsh: no matches found: *UNKO $
675 名前:名無しさん@お腹いっぱい。 [2007/02/26(月) 07:55:40 ] >>669 > $ [ -e *.html ] && echo found || echo not found ↑は .html ファイルが2つ以上ある場合は動かない. [ -e `ls -1 *.html|head -n 1` ] && echo found || echo not found だとちゃんと動くが、もっとスマートなやり方はないものか...
676 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 07:59:19 ] >>675 の訂正. > $ [ -e *.html ] && echo found || echo not found は zsh では動くね. bash では動かないけど. でも混乱を避ける為に、↑のように書くのは良くないだろう
677 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 08:34:32 ] サブシェル使ってよければ (for f in *.html; do [ -f "$f" ] && return 0; done; return 1) && echo aru || echo nai /bin/shで動く筈。
678 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 11:03:52 ] もう外部コマンド使って ls *.html | wc | awk '{print $1}' でいいじゃん
679 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 11:18:07 ] アホ現る
680 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 21:05:11 ] [ `echo -n *.html(N) | wc -l` -gt 0 ]
681 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/26(月) 21:26:59 ] [[ -n `echo *html(N)` ]] && echo Exist || echo # うまくいく [[ -n `echo` ]] && echo true || echo false # false [ -n `echo *html(N)` ] && echo Exist || echo # 常にExist, だめ [ -n `echo` ] && echo true || echo false # true
682 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/27(火) 02:46:16 ] [[ls *.html && $? ]] じゃ駄目なわけ?
683 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/27(火) 02:47:37 ] ``わすれた・・・
684 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/02/27(火) 02:48:42 ] しかも-aだね。逝ってきます。
685 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/02(金) 22:11:55 ] mycomの連載、更新されていたけどツッコミどころが幾つかあるな
686 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 01:23:44 ] よしつっこめ。
687 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 03:11:14 ] ショートカットキーという言い方は気持が悪いな
688 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/05(月) 01:38:58 ] 最近はてブのホットエントリでzsh関連のをちょくちょく見掛けるけどなんかあったのかしら。
689 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/05(月) 06:18:24 ] そういう連中にとってzshがクールでナウいんだよ。
690 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/07(水) 18:55:38 ] localeがちゃんとしてたらja_JP.SJISでも動きますか?
691 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/07(水) 19:17:30 ] ナニが?
692 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 01:16:40 ] カーソル移動とかプロンプト等の桁数計算とかSJIS2バイト目のメタキャラクタ無視とか。
693 名前:名無しさん@お腹いっぱい。 [2007/03/16(金) 10:04:06 ] あれ? % autoload predict-on % predict-on predict-on:zle:5: can only be called from widget function
694 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 14:01:13 ] 錫癜
695 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 20:44:04 ] >693 ウチではそのエラー出ないよ ところで、恥ずかしながら predict-on は知らなかったですよ。
696 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/24(土) 22:24:26 ] >>663-664 久しぶりに見たから1ヶ月前へのレスだけど path=($path(N)) でいけない?