- 1 名前:名無しさん@お腹いっぱい。 [02/11/03 20:49]
- パート2ですよ,にーさん
- 39 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/07 21:23]
- zstyle ':completion:*' menu select=10
これでファイルなどの補完をC-f,C-bなどで移動できるんですが、 リターンを一回おしただけではコマンドは実行されず、2回おさなければならないので、 けっこうめんどくさいです。リターン一回で実行できるようにはできませんか?
- 40 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/08 11:24]
- すれ違いかもしレンガ、zshラーに聞きたい!!
みなさんんは、zshのおかげで、 findとgrepは使わなくなったとおもふ。 では、最近あえて、find使うのはどんな時でしょうか?
- 41 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/08 11:58]
- >>40 に聞きたい!!
**/* で find を使わなくなるのは分かるが、 grep はどうしてお使いにならなくなってしまったのですか? その秘技を教えて下さい。
- 42 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/08 15:11]
- たぶん、>>40が言いたいのは "| grep" ではないかな?
憶測だけど
- 43 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/08 21:27]
- findつかわねえから文法しらねえや。zshで何日前という指定じゃなくて
何月何日のファイルと言う風にできたらさらに便利だと思うな
- 44 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/08 22:00]
- >>40
ファイルが多すぎる時. zshで|grepの代わりって何?
- 45 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/09 01:00]
- >>40
色々条件つけたい時(日付とか) zshに依存しないスクリプト書く時
- 46 名前:名無しさん@お腹いっぱい。 [02/11/09 09:34]
- time の結果をファイルに書き込むにはどうすればいいですか?
man zshmisc すると、standard error に出力するって書いてあるけど、 time command 2>logfile としても、command のエラーが記録されるだけで、 測定結果は画面に表示されてしまいます。
- 47 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/09 15:47]
- 今月のUnix Userの記事はおもしろかったです。
>>46 漏れは/usr/bin/time使ったらできたよ。
- 48 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/09 21:24]
- >>47
% /usr/bin/time -o logfile command でいけました。 どういうわけか、シェルのbuiltin コマンドじゃなきゃイカン と思い込んでいた。
- 49 名前:名無しさん@お腹いっぱい。 [02/11/09 21:48]
- >>46 time command 2>&1 >logfile でどうよ?
- 50 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/10 08:20]
- >>31 スレ違い
pc.2ch.net/test/read.cgi/unix/1001966406/193
- 51 名前:46 = 48 mailto:sage [02/11/10 12:16]
- >>49
うまいやりかたがみつからない。 descriptor の指定は全部command の一部として解釈されちゃう。 確かに、HDD の読み出し速度を計ろうと思って、 % time cat <largefile >/dev/null なんてやる時はその方が都合がいいんだろうけどね。
- 52 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/10 13:21]
- >>50
ありがとう。できました。
- 53 名前:名無しさん@Emacs mailto:sage [02/11/10 13:53]
- >>46
% 2>logfile time command
- 54 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/10 16:52]
- >>51
2>logfile time command でいかかでしょうか
- 55 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/10 16:53]
- げっ、何時間も前に書き込みがあったとは。逝ってきます…
- 56 名前:46 mailto:sage [02/11/10 16:55]
- >>53
なるほど、そういうやり方も許されるのね。 ありがと。 ついでに、 command がエラーを吐く場合に、それをlogfile に書き出したくない場合は、 こんな感じでできるみたい。 % 2>logfile time command 2>/dev/null
- 57 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/11 11:23]
- 今日更新したファイルだけ
ls で表示できますか?
- 58 名前:名無しさん@Emacs mailto:sage [02/11/11 12:00]
- >>57
すれ違い氏ね
- 59 名前:名無しさん@お腹いっぱい。 mailto:age [02/11/11 15:51]
- >>57
% ls *(m0) で、カレントディレクトリにあるmtimeが0日前のファイルが表示される。 詳しくは、man zshexpn して、"modification time" で検索したあたりを よく読んでください。 >>58 あんた恥ずかしいよ
- 60 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/11 20:57]
- >>59
そういう書き方もあったのか。 *(m-n)はn日まえ以降に更新したファイルで *(mn)はn日前に更新したファイル ってことですね。
- 61 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/11 21:34]
- しかし、 57 の言う「『今日』更新したファイル」というのは、簡単には
書けない
- 62 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/11 21:58]
- ls -lしてgrepかなぁ。
- 63 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/11 22:04]
- ls -l|grep "`date|cut -d" " -f2,3`"
cutのデフォルトの区切りってスペースじゃないのかよ!
- 64 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/12 02:38]
- GNU date依存かもしれないけど。
echo *(ms-$(($(date +%s) - $(date -d $(date +%D) +%s)))) 出来るだけzshの機能に置き換えてみると…、 echo *(ms-$(($(print -Pn %D{%s}) - $(date -d $(print -Pn %D) +%s)))) 結局現在時刻以外の時刻をstrftimeに渡すのがzshだけで出来なかったよ。
- 65 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/12 04:02]
- >>64
力技で持っていくと echo *(ms-$[$(print -P '%D{%H}' \* 3600 + '%D{%M}' \* 60 + '%D{%S}')]) かな。 まだ簡単にできるかな? しかし、時刻指定がもうちょっと楽にできればなあ
- 66 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/12 06:39]
- もしcronで動かすだけなら
実行時刻を考えればいいだけのような気もしてきた
- 67 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/12 19:39]
- >>64
すげー。それがあれば何月何日から何月何日の間に更新されたファイルとかさがせるね。 もっと簡単につかえるようにするにはどうすればいいだろう。
- 68 名前:名無しさん@お腹いっぱい。 [02/11/15 03:55]
- Emacs21のshell-modeでzshを使ってます
前スレでeshellというshell scriptを書いてそれをESHELLにsetすれば良い という指摘がありましたが、あれではzshの補完を完全には活かせてません よね? どうにかしてこの問題を解決出来ませんでしょうか? 因にterm-modeではファイル名の補完すらできませんでした
- 69 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/15 17:07]
- ansi-term で普通に補完できてますが
- 70 名前:名無しさん@Emacs mailto:sage [02/11/15 17:15]
- >>69
Me too!
- 71 名前:68 [02/11/16 02:42]
- >>69
ansi-term良いですね よろしければ便利な設定とか教えて頂けませんか? 日本語のページが極端に少ないもので… #やっぱり辞書を片手に英語から?
- 72 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/16 12:25]
- >>67
>>65のを使ってこんなのを作ってみた。 # *($(afterNdaysago))または*($(afterNdaysago 0))で今日変更されたファイル # *($(afterNdaysago 1))で今日か昨日変更されたファイル afterNdaysago () { echo ms-$[$(print -P '%D{%H}' \* 3600 + '%D{%M}' \* 60 + '%D{%S}' + "${1:-0}" \* 86400)] } 何月何日とかの指定が出来るようにするために再度dateを使って 書き直してみたらこんな感じ。 # *($(daterange)) で今日変更されたファイル # *($(daterange '2 weeks ago')) で最近2週間で変更されたファイル # *($(daterange 2002-11-01 2002-11-10)) で11月1日から11月10日に変更されたファイル daterange () { echo -n ms-$[$(print -Pn %D{%s}) - $(date -d "${1:-$(print -Pn %D)} 0:0:0" +%s)] [ -n "$2" ] && echo -n ms+$[$(print -Pn %D{%s}) - $(date -d "$2 0:0:0" +%s)] }
- 73 名前:67 mailto:sage [02/11/16 14:11]
- >>72
いやー、すごいですねー。 ちょっと気になったことを ${1:-$(print -Pn %D)}の部分なんですが、 dengaku.org/naoki/comp/zsh/intro/intro-ParameterSubstitution.html をみると${1-$(print -Pn %D)}のように:が無くてもいいようですが、違いはなんでしょう? もう一つ print -Pn %D{%s} で 02-11-16 02-11-16s となってうまくできなかったのでその部分をdate +%sに置き換えました。
- 74 名前:65 mailto:sage [02/11/16 19:09]
- >>73
> 02-11-16 02-11-16s > となってうまくできなかったのでその部分をdate +%sに置き換えました。 zsh のオプション設定によっては、ブレースが更に特別な意味を持つためです。 >>65 で '%D{%H}' などのように quote してあるのはそのためです。 >>72 でも、オプションに左右されないようにそうした方がいいでしょうね。 > ${1-$(print -Pn %D)}のように:が無くてもいいようですが、違いはなんでしょう? たしか : がなければ null かどうかは問わなかったはずです。 ${1-$(print -Pn %D)} で $1 が null だとそのまま null が評価値になります。
- 75 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/16 22:38]
- $(( )) -> $[ ] は気がついたから変更してたんだけど、
''は気づいてなかった。 ブレースの解釈に影響があるオプションって何? と思って探してみたら BRACE_CCL で動作が変わった。 : の有無はzshに限らずshell scriptのFAQという気がする。
- 76 名前:73 mailto:sage [02/11/17 22:16]
- >>74
ありがとうございます。 >>75 FAQでしたか。すいません。
- 77 名前:名無しさん@お腹いっぱい。 mailto:sage [02/11/29 00:24]
- さがってるからあげるね。
setopt printexitvalueってやつさ、シェル関数の返り値はおしえてくれないんだね。 例えば hoge(){ false } ってのを実行して$statusは1なんだけど、printexitvalueは教えてくれない。不便だ。
- 78 名前:名無しさん@お腹いっぱい。 [02/12/01 00:08]
- compctl -g '*.l' + flex lex
と定義してもflexは*.lexファイルしか補完してくれない。 autoload -U compinit compinit -u これを実行しなければ問題ないんだが、そう言うわけにはいかないので だれか教えてください。
- 79 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/01 17:18]
- >>78
_flex を ~/.zfunc/ にコピーして input files の部分を書きかえる。 その後 $FPATH=~/.zfunc:$FPATH を .zshenv 等に加える。 そしてzshを起動しなおす。
- 80 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/01 17:58]
- >>79
できた。ありがとう。 今までオプションの補完ができるなんてスゲーとか思ってたけど、 _flexとかのファイルに書いてあるだけなのか。
- 81 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/01 19:40]
- むしろ_flexとかのファイルに書いてあるから
自由自在にカスタマイズ(のはず)
- 82 名前:名無しさん@お腹いっぱい。 mailto:age [02/12/07 22:59]
- age
- 83 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/09 21:35]
- %cat dummy
001 aho 002 boke 003 hage というファイルを 001 002 003 と aho boke hage に分けるとき、 cut -f1 dummy>f1 cut -f2 dummy>f2 というのを一気にやりたいですが、どうすればいいでしょう。 <() <() や >f1 >f2 などを使ってできないでしょうか?
- 84 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/09 21:51]
- cut -f1 dummy > f1; cut -f2 dummy > f2
いやー、セミコロンって便利♥
- 85 名前:83 mailto:sage [02/12/12 11:11]
- ぼくは真面目に質問してるのです!!
- 86 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/12 11:26]
- >>85
>>84 は真面目に答えてると思うが。
- 87 名前:84 mailto:sage [02/12/12 12:28]
- >>86
フォローして貰っといてなんだが、別にマジメって程のモンではありませぬ(w
- 88 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/12 14:16]
- というか、awk使うべきだろ
この場合
- 89 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/12 17:37]
- ↑キボン
- 90 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/12 23:30]
- >>89
スレ違い awk '{print $1 > "f1"; print $2 > "f2";}' dummy
- 91 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/13 00:43]
- 84 の方が短い罠
- 92 名前:84=90 mailto:sage [02/12/13 02:43]
- そして 84=90 という罠
- 93 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/13 19:34]
- オークの中でリダイレクトできるのか。
- 94 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/15 02:53]
- zshでの関数定義内において
標準入力をファイルに書き出すには どのような書き方がありますか? 使い方: last | x2w コード: x2w(){ while read line do echo >>dummy-memo.txt done <略> } の read line do;〜;done しか思い当たりません。
- 95 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/16 02:40]
- 短く書くのならcatでいいのでは?
x2w () { cat >> dummy-memo.txt }
- 96 名前:83 mailto:sage [02/12/17 14:03]
- どうもです。
cut -f1 dummy>f1 cut -f2 dummy>f2 ・ ・ cut -f5 dummy>f5 を連続して実行したいのですが、 ^1^2 のグローバル置換ありませんか? ^1^2だと cut -f1 dummy>f2 になります。
- 97 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/17 14:59]
- date -3
で今日の日付をhighlight表示させる方法ありませんか?
- 98 名前:65 mailto:sage [02/12/17 16:57]
- >>96
r 1=2 とか。それよりも for loop を廻した方が早いと思うが >>97 くだ質へ行きたまえ
- 99 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/18 01:12]
- >>96
!:gs/1/2/ はどう?
- 100 名前:100 [02/12/19 02:07]
- zsh (・∀・)イイ!!
- 101 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 02:29]
- シェル変数を補完しないようにするにはどうすればよいのでしょう?
- 102 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 08:24]
- awk --help |grep hoge
grep --help | grep hoge のようにhelpの出力をgrepしたい時は | を使うのでしょうか?
- 103 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 09:49]
- >102
そうですが何か?
- 104 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 10:48]
- sourceコマンドの補完で質問。
原因不明で、以下のものが動かなくなった。 他のサンプル持ってないので、皆さんの _source見せてください。 おながいします。 % cat _source #compdef . source compadd ~/.zsh.d/.zsh(rc|env) || _files
- 105 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 14:33]
- あー、グローバルエイリアスってすごいね。
これだけでzshに存在意義を見出させてしまいます。 zsh以外で実現しているシェルってあるの?
- 106 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 17:36]
- >>102
もしできなかったら awk --help 2>&1 |grep hoge >>105 なに設定してる? 漏れは alias -g I=/dev/stdin alias -g O=/dev/stdout alias -g E=/dev/stderr alias -g N=/dev/null alias -g L='|less' alias -g G='|grep'
- 107 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 19:52]
- foreach i (ココの部分)
^^^^^^^^ グローバルエイリアスがいちいち展開されてウザイっす。 例えば、bindkeyでキーバインディングの空き情況を調べる時、 foreach i (w \W i \I);bindkey "^x$i";end のように展開を避ける必要があって、面倒です。 グローバルエイリアス展開の有無を情況ごとに調整する オプションありませんか?
- 108 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 20:52]
- bindkeyを引数なしで実行すればいいのでは?
- 109 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 22:47]
- >>107
> グローバルエイリアス展開の有無を情況ごとに調整する > オプションありませんか? これは自分も以前思ったことがあった。しかし、グローバルエイリアス の有効・無効を「簡単に」切り替えられる方法は見つけられなかったが、 一応の方法は見つけた。 無効にしたいとき、 disable -a $galiases[(I)*] 有効に戻したいとき enable -a $dis_galiases[(I)*]
- 110 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/19 23:36]
- 漏れはグローバルエイリアスって使ったことないんだけども、
それって使い方を間違えているんじゃない? もっと、衝突しづらい文字列のエイリアスをあてがうのが正しい使い方かと。
- 111 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/20 00:25]
- そうでもない
- 112 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/20 21:55]
- %echo '
>hoge >hoge >ho ここまで入力して上の行に戻れる?
- 113 名前:104 mailto:sage [02/12/21 02:48]
-
いろいろ調べていますが、結局のところ % cat _source #compdef . source compadd ~/.zsh.d/.zsh(rc|env) || _files でsourceの補完が聞かなくなった理由が わかりませんでした。 だれか理由か関連情報ご存知ありませんか?
- 114 名前:名無しさん@お腹いっぱい。 [02/12/22 01:52]
- zshで、makeなどの出力結果をコンソールに出しながら
標準出力と標準エラー出力をそれぞれ別ファイルに吐き出すことは出来ますか?
- 115 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/22 03:02]
- make >LOG.stdout 2>LOG.stderr >& /dev/tty
とか make >LOG.stdout 2>LOG.stderr |& tee の方がいいか
- 116 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/22 03:38]
- どうもありがとうございます。
shじゃできないけど、zshだと出来るのですね。
- 117 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/22 23:13]
- history内部コマンドの表示行数はデフォルトでは10行ですが
変更方法はありませんか?
- 118 名前:名無しさん@お腹いっぱい。 [02/12/22 23:19]
- おまいら便利なbindkey教えてください。
unix userに載ってたのを書いてみる accept-and-hold(M-A) コマンドを実行して再び表示する。 transpose-word(M-T) 単語を入れ代える quote-line(M-') 'でくくる insert-last-word(M-.) 直前のコマンドの最後の引数を挿入 autoload run-helpをやってもM-h(run-help)でwhereなどの内部コマンドのヘルプが でてこないのは漏れだけ?
- 119 名前:名無しさん@お腹いっぱい。 [02/12/22 23:21]
- >>117
たぶんHISTSIZE=10000(byte)
- 120 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/22 23:22]
- >>117
勘違いスマソ alias history='history -20'
- 121 名前:117 mailto:sage [02/12/23 00:09]
- alias使うと、
% history -m 'hoge*' などのマッチングが出来ません。 そうすると、 % function history{history 〜}使うしかないのかな?
- 122 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/23 00:10]
- >>121
> % history -m 'hoge*' > などのマッチングが出来ません。 ということにしたいのですね。
- 123 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/23 01:23]
- そもそもhistoryコマンドって何に使う?
>>121 grep使えば?
- 124 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/23 03:01]
- >>118
> autoload run-helpをやってもM-h(run-help)でwhereなどの内部コマンドのヘルプが > でてこないのは漏れだけ? 手許では unalias run-help; autoload run-help で内部コマンドのマニュアルが動いている。 もっとも zshbuiltins(1) が先頭から表示されるだけで、それほど便利ではない(w >>119 単位は byte でないよ。履歴の数そのもの >>117 history は fc -l の別名だから適当に使い分ければ?
- 125 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/23 16:35]
- >>124
run-helpがaliasされてたのですか。おもしろい使い方ですね。 >単位は byte でないよ。履歴の数そのもの スマソ
- 126 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/26 01:38]
- $@, $*の扱いがzshとshで違うのは仕様ですか?
- 127 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/26 10:12]
- >>126
どう違う。
- 128 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/26 21:33]
- #test.sh
arg.sh $@ arg.sh $* arg.sh "$@" arg.sh "$*" 引数の数を表示 #!/bin/sh #arg.sh echo $# sh test.sh 'a b' 'c d' 4 4 2 1 zsh test.sh 'a b' 'c d' 2 2 2 1 勘違いしてたらスマソ>>127 bashは4421になった。
- 129 名前:名無しさん@お腹いっぱい。 mailto:age [03/01/03 11:52]
- から揚げ
- 130 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/03 15:49]
- うまうま
- 131 名前:名無しさん@お腹いっぱい。 [03/01/03 18:08]
- zsh を 3.0.8 から 4.0.4 に上げたら job control が変になりました。
具体的には % less nannoa.txt として見てるときに kill -STOP `pidof less` して止めたとき、 fg で less をフォアグラウンドにだすと jk では上下せず、 j + return, k + return というように改行キー入れないと動かなくなります。 これ、どのへんの設定を直せばいいんでしょうか。
- 132 名前:777 mailto:sage [03/01/03 19:06]
- >>826
すんばらしい。 ありがとうございました。
- 133 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/03 20:16]
- >>826 に期待がかかるわけだが。
- 134 名前:826 mailto:sage [03/01/03 22:49]
- >>777
いえいえ、どーいたしまして
- 135 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/04 13:11]
- >>131
4.06にしたら?
- 136 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/07 01:08]
- >>128
see SH_WORD_SPLIT % zsh -y test.sh 'a b' 'c d' 4 4 2 1
- 137 名前:128 mailto:sage [03/01/07 19:35]
- >>136
ありがとうございます。 zshってzshのオプションは補完してくれないのか。
- 138 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/07 20:04]
- -o
- 139 名前:名無しさん@お腹いっぱい。 [03/01/11 12:07]
- 日経Linuxでちょろっと取り上げられてたage
|

|