zshで日本語ファイル名を補完させたときに、 \M-^B\M-\n\M-O\M-^N@\M-^B\M-L\M-\t\M-o.txta のように文字化けします。 これを直すパッチとかってありますか?
>33 一行の設定で直る。アホ。
>>34 あんた不親切だなぁ。1行ぐらい書いてあげてもいいじゃないか。
setopt PRINT_CHEESE_BIT
cygwin の zsh-4.0.4 を rxvt の上で使っているのですが、 コンソールから日本語を入力すると化けてしまいます。 一応、quote すれば日本語ディレクトリに移ることは出来ます。(化けますが) あと、PROMPT の %~ などが日本語ディレクトリだと化けてしまうのですが、 どうやったら化けなく出来るのでしょうか。 print_eight_bit は設定してあります。
>>36 下のように、叱られますたYO。
setopt:133: no such option: PRINT_CHEESE_BIT
zstyle ':completion:*' menu select=10 これでファイルなどの補完をC-f,C-bなどで移動できるんですが、 リターンを一回おしただけではコマンドは実行されず、2回おさなければならないので、 けっこうめんどくさいです。リターン一回で実行できるようにはできませんか?
すれ違いかもしレンガ、zshラーに聞きたい!! みなさんんは、zshのおかげで、 findとgrepは使わなくなったとおもふ。 では、最近あえて、find使うのはどんな時でしょうか?
>>40 に聞きたい!!
**/* で find を使わなくなるのは分かるが、
grep はどうしてお使いにならなくなってしまったのですか?
その秘技を教えて下さい。
たぶん、
>>40 が言いたいのは "| grep" ではないかな?
憶測だけど
findつかわねえから文法しらねえや。zshで何日前という指定じゃなくて 何月何日のファイルと言う風にできたらさらに便利だと思うな
>>40 ファイルが多すぎる時.
zshで|grepの代わりって何?
>>40 色々条件つけたい時(日付とか)
zshに依存しないスクリプト書く時
46 :
名無しさん@お腹いっぱい。 :02/11/09 09:34
time の結果をファイルに書き込むにはどうすればいいですか? man zshmisc すると、standard error に出力するって書いてあるけど、 time command 2>logfile としても、command のエラーが記録されるだけで、 測定結果は画面に表示されてしまいます。
今月のUnix Userの記事はおもしろかったです。
>>46 漏れは/usr/bin/time使ったらできたよ。
>>47 % /usr/bin/time -o logfile command
でいけました。
どういうわけか、シェルのbuiltin コマンドじゃなきゃイカン
と思い込んでいた。
49 :
名無しさん@お腹いっぱい。 :02/11/09 21:48
>>46 time command 2>&1 >logfile でどうよ?
>>49 うまいやりかたがみつからない。
descriptor の指定は全部command の一部として解釈されちゃう。
確かに、HDD の読み出し速度を計ろうと思って、
% time cat <largefile >/dev/null
なんてやる時はその方が都合がいいんだろうけどね。
>>46 % 2>logfile time command
>>51 2>logfile time command
でいかかでしょうか
げっ、何時間も前に書き込みがあったとは。逝ってきます…
>>53 なるほど、そういうやり方も許されるのね。
ありがと。
ついでに、
command がエラーを吐く場合に、それをlogfile に書き出したくない場合は、
こんな感じでできるみたい。
% 2>logfile time command 2>/dev/null
今日更新したファイルだけ ls で表示できますか?
>>57 % ls *(m0)
で、カレントディレクトリにあるmtimeが0日前のファイルが表示される。
詳しくは、man zshexpn して、"modification time" で検索したあたりを
よく読んでください。
>>58 あんた恥ずかしいよ
>>59 そういう書き方もあったのか。
*(m-n)はn日まえ以降に更新したファイルで
*(mn)はn日前に更新したファイル
ってことですね。
しかし、 57 の言う「『今日』更新したファイル」というのは、簡単には 書けない
ls -lしてgrepかなぁ。
ls -l|grep "`date|cut -d" " -f2,3`" cutのデフォルトの区切りってスペースじゃないのかよ!
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だけで出来なかったよ。
>>64 力技で持っていくと
echo *(ms-$[$(print -P '%D{%H}' \* 3600 + '%D{%M}' \* 60 + '%D{%S}')])
かな。
まだ簡単にできるかな? しかし、時刻指定がもうちょっと楽にできればなあ
もしcronで動かすだけなら 実行時刻を考えればいいだけのような気もしてきた
>>64 すげー。それがあれば何月何日から何月何日の間に更新されたファイルとかさがせるね。
もっと簡単につかえるようにするにはどうすればいいだろう。
68 :
名無しさん@お腹いっぱい。 :02/11/15 03:55
Emacs21のshell-modeでzshを使ってます 前スレでeshellというshell scriptを書いてそれをESHELLにsetすれば良い という指摘がありましたが、あれではzshの補完を完全には活かせてません よね? どうにかしてこの問題を解決出来ませんでしょうか? 因にterm-modeではファイル名の補完すらできませんでした
ansi-term で普通に補完できてますが
>>69 ansi-term良いですね
よろしければ便利な設定とか教えて頂けませんか?
日本語のページが極端に少ないもので…
#やっぱり辞書を片手に英語から?
>>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 > 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 が評価値になります。
$(( )) -> $[ ] は気がついたから変更してたんだけど、 ''は気づいてなかった。 ブレースの解釈に影響があるオプションって何? と思って探してみたら BRACE_CCL で動作が変わった。 : の有無はzshに限らずshell scriptのFAQという気がする。
さがってるからあげるね。 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 これを実行しなければ問題ないんだが、そう言うわけにはいかないので だれか教えてください。
>>78 _flex を ~/.zfunc/ にコピーして input files の部分を書きかえる。
その後 $FPATH=~/.zfunc:$FPATH を .zshenv 等に加える。
そしてzshを起動しなおす。
>>79 できた。ありがとう。
今までオプションの補完ができるなんてスゲーとか思ってたけど、
_flexとかのファイルに書いてあるだけなのか。
むしろ_flexとかのファイルに書いてあるから 自由自在にカスタマイズ(のはず)
age
%cat dummy 001 aho 002 boke 003 hage というファイルを 001 002 003 と aho boke hage に分けるとき、 cut -f1 dummy>f1 cut -f2 dummy>f2 というのを一気にやりたいですが、どうすればいいでしょう。 <() <() や >f1 >f2 などを使ってできないでしょうか?
cut -f1 dummy > f1; cut -f2 dummy > f2 いやー、セミコロンって便利♥
ぼくは真面目に質問してるのです!!
>>86 フォローして貰っといてなんだが、別にマジメって程のモンではありませぬ(w
というか、awk使うべきだろ この場合
↑キボン
>>89 スレ違い
awk '{print $1 > "f1"; print $2 > "f2";}' dummy
84 の方が短い罠
そして 84=90 という罠
オークの中でリダイレクトできるのか。
zshでの関数定義内において 標準入力をファイルに書き出すには どのような書き方がありますか? 使い方: last | x2w コード: x2w(){ while read line do echo >>dummy-memo.txt done <略> } の read line do;〜;done しか思い当たりません。
短く書くのならcatでいいのでは? x2w () { cat >> dummy-memo.txt }
どうもです。 cut -f1 dummy>f1 cut -f2 dummy>f2 ・ ・ cut -f5 dummy>f5 を連続して実行したいのですが、 ^1^2 のグローバル置換ありませんか? ^1^2だと cut -f1 dummy>f2 になります。
date -3 で今日の日付をhighlight表示させる方法ありませんか?
>>96 r 1=2 とか。それよりも for loop を廻した方が早いと思うが
>>97 くだ質へ行きたまえ
zsh (・∀・)イイ!!
シェル変数を補完しないようにするにはどうすればよいのでしょう?
awk --help |grep hoge grep --help | grep hoge のようにhelpの出力をgrepしたい時は | を使うのでしょうか?
>102 そうですが何か?
sourceコマンドの補完で質問。 原因不明で、以下のものが動かなくなった。 他のサンプル持ってないので、皆さんの _source見せてください。 おながいします。 % cat _source #compdef . source compadd ~/.zsh.d/.zsh(rc|env) || _files
あー、グローバルエイリアスってすごいね。 これだけでzshに存在意義を見出させてしまいます。 zsh以外で実現しているシェルってあるの?
>>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'
foreach i (ココの部分) ^^^^^^^^ グローバルエイリアスがいちいち展開されてウザイっす。 例えば、bindkeyでキーバインディングの空き情況を調べる時、 foreach i (w \W i \I);bindkey "^x$i";end のように展開を避ける必要があって、面倒です。 グローバルエイリアス展開の有無を情況ごとに調整する オプションありませんか?
bindkeyを引数なしで実行すればいいのでは?
>>107 > グローバルエイリアス展開の有無を情況ごとに調整する
> オプションありませんか?
これは自分も以前思ったことがあった。しかし、グローバルエイリアス
の有効・無効を「簡単に」切り替えられる方法は見つけられなかったが、
一応の方法は見つけた。
無効にしたいとき、
disable -a $galiases[(I)*]
有効に戻したいとき
enable -a $dis_galiases[(I)*]
漏れはグローバルエイリアスって使ったことないんだけども、 それって使い方を間違えているんじゃない? もっと、衝突しづらい文字列のエイリアスをあてがうのが正しい使い方かと。
そうでもない
%echo ' >hoge >hoge >ho ここまで入力して上の行に戻れる?
いろいろ調べていますが、結局のところ % cat _source #compdef . source compadd ~/.zsh.d/.zsh(rc|env) || _files でsourceの補完が聞かなくなった理由が わかりませんでした。 だれか理由か関連情報ご存知ありませんか?
114 :
名無しさん@お腹いっぱい。 :02/12/22 01:52
zshで、makeなどの出力結果をコンソールに出しながら 標準出力と標準エラー出力をそれぞれ別ファイルに吐き出すことは出来ますか?
make >LOG.stdout 2>LOG.stderr >& /dev/tty とか make >LOG.stdout 2>LOG.stderr |& tee の方がいいか
どうもありがとうございます。 shじゃできないけど、zshだと出来るのですね。
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)
>>117 勘違いスマソ
alias history='history -20'
alias使うと、 % history -m 'hoge*' などのマッチングが出来ません。 そうすると、 % function history{history 〜}使うしかないのかな?
>>121 > % history -m 'hoge*'
> などのマッチングが出来ません。
ということにしたいのですね。
そもそもhistoryコマンドって何に使う?
>>121 grep使えば?
>>118 > autoload run-helpをやってもM-h(run-help)でwhereなどの内部コマンドのヘルプが
> でてこないのは漏れだけ?
手許では unalias run-help; autoload run-help で内部コマンドのマニュアルが動いている。
もっとも zshbuiltins(1) が先頭から表示されるだけで、それほど便利ではない(w
>>119 単位は byte でないよ。履歴の数そのもの
>>117 history は fc -l の別名だから適当に使い分ければ?
>>124 run-helpがaliasされてたのですか。おもしろい使い方ですね。
>単位は byte でないよ。履歴の数そのもの
スマソ
$@, $*の扱いがzshとshで違うのは仕様ですか?
#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になった。
から揚げ
うまうま
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 というように改行キー入れないと動かなくなります。 これ、どのへんの設定を直せばいいんでしょうか。
>>826 すんばらしい。
ありがとうございました。
>>128 see SH_WORD_SPLIT
% zsh -y test.sh 'a b' 'c d'
4
4
2
1
>>136 ありがとうございます。
zshってzshのオプションは補完してくれないのか。
-o
139 :
名無しさん@お腹いっぱい。 :03/01/11 12:07
日経Linuxでちょろっと取り上げられてたage
140 :
名無しさん@お腹いっぱい。 :03/01/12 12:54
zshrcの置き場所って ~/.zsh/zshrc で正しいですか? 設定を読み込んでくれないのですが
>>140 $HOME/.zshrcでいいんじゃない?
>>140 ドキュメントを読まない方はお断りします。
145 :
名無しさん@お腹いっぱい。 :03/01/12 16:59
>>12 のwikiが無くなってるんだけど、どっかに移転しましたか?
140ですが $HOME/.zshrc を読み込んでくれません aliasも有効にならないし 環境変数も有効にならないし 書式がおかしいというエラーも出ません なんででしょうか chpassでログインシェルを変更しました またログインシェルを変更せずとも ただたんにフォアグラウンドで走らせようとも 関係なく読み込んでくれません 関係ないか なんででしょうか?
ちなみにパーミッションは -rw-rw-rw-: こんな感じですね とくに意味は無いですが そのうち変えます 自分に読み込み権限はあります と
>>147 source $HOME/.zshrc って打ったらどうなる?
>>147 > -rw-rw-rw-: こんな感じですね
(゚Д゚)ハァ?
>>140 # $HOME/.zshenv
ZDOTDIR=$HOME
export ZDOTDIR
man zsh に目を通しておきませう
あ、
>>150 は zsh 4.0.6 (i686-pc-cygwin) での話なんで、
他の環境では違うのかも...
(^^)
GUIでアイコンをクリックすると適切なアプリが起動するように、 プロンプトでファイル名をうったら適切なアプリが起動したら便利だと思う。 zshのpreexecとかでできないかな? preexec(){ if [ -f "$1" ]; then vi $1 fi } と定義して %.zshrc とやるとviは起動するんだけど、 そのあとに zsh: command not found: .zshrc となる。ちょっとうざい。
>>153 スクリプトで拡張子見て起動するようにしてみれば?
>>154 まず magic を見て、次に拡張子の方がいいだろうな。
file の出力を拾うのがいいかな?
>>154-155 スクリプトだとたとえ1文字にしても
%a hoge.txt
としなければいけない。
%hoge.txt
ってのはやっぱり無理かな。
よく考えたら補完が使えなくなるのか。うーん。
おれはpreexecの中で一時的にaliasを定義したらいいかな? と思ってやってみたんだが、aliasの展開はpreexecより前 みたいなんだよなー。 ソースをちょっと直せば対応できそうな気がするけど。
faq っぽいですがよろしくです。 shell> aaa bbbbbbbbbbb ccccc とかあって、bbbb の中頃にカーソルがあるとします。そこで、 次の単語までジャンプする方法ってありますか? # つまり ccccc の頭まで。 矢印キー押しっぱなしというのは美しくないので・・
さんくすです! esc か・・。 ctrl に適当に割り当てられれば便利そうですね。 ^F も ^B も日頃使わないからそれに振ってみます ;-)
>>163 Meta-b(Alt-b) でイくない??
macos 上のターミナルなので alt は無いです。option キーだと 変な文字が入力されるだけだし・・。ううむ。
>>161 ではありませんが、C-, とか C-. に割り当てることは出来ませんよね?
ってこれは、terminalの問題か...。
167 :
名無しさん@お腹いっぱい。 :03/02/06 23:32
実行しているコマンド名をウィンドウのタイトルに設定したいんですが、そんなこと 可能でしょうか? Enterでコマンドが投入された直後にそのコマンドラインをウィンドウのタイトルに 設定できればいいと思ったんですが、うまい方法を見つけられませんでした。 実行が終了して元に戻すのはPROMPTでいいんでしょうが。
>>168 そういうフックがあったのですね。ありがとうございました。試してみます。
zshって、tcshとくらべると、 動作速度、メモリの使用量はどうなの?
一回起動しちゃうと、サクサク? screenとかmlterm多様してると、 シェルのプロセス立ちまくるから、 あんまり重い||遅いとこまる。 tcshマンセーな俺はzshを愛せるだろうか
こんな感じ % ps aux |grep '[tcz]sh' xxx 2172 0.0 0.8 2436 2016 p3 Ss 4:17AM 0:00.14 -zsh (zsh) xxx 2178 0.0 0.4 1384 996 p3 S 4:17AM 0:00.03 tcsh うーむ、実質二倍って感じ?
>>172 一回起動するとサクサク!
screenはdetatchしてatatchすれば起動の遅さは気にならないはず
486 なマシンだと zsh の方が completion とか明らかに遅かった。ヲレには 耐えられないレベルだったので使用を諦めた記憶がある。
>>173-175 御丁寧にどうも。
とりあえず、つかってみようかと思います。
多機能なぶん、おもいのはしかたないのかなぁ。
>>175 Pentium/120MHzでもcompletionとか明らかに遅いよ。
でもなんとかつかえる範囲なので使ってるけど。
普段余り触ることのないルータ機だからってものあるけど。
P2/233Mhzでも、微妙に遅いかも…。 使用感ですが、かなりカスタマイズできるようになっていて、 tcshよりも、かなり自由度がたかそうです。 うちのtcshはいじりすぎて、実メモリを1.8Mくらいメモリくっちゃうんで、 zshへの移行もありかなとおもってますが、 .*rcの移行が非常に面倒くさい…。 地道にzshの勉強しながら移行します。
>>178 2.xでも使ってみれば?
それでも現行のtcshより便利じゃないかな。
ってtcshの事はよく知らないんだけど。
ソンナワケ(ry
>>179 |>!|2.xでも使ってみれば?
|>!|それでも現行のtcshより便利じゃないかな。
ということにしたいのですね?
>>180 ,181
いや、おれの.zshrcは2.6の頃から大して変わって
ないからさ(細かい所はいじってるけど)。
最近追加された機能なんて使わなくても十分
便利なんじゃないかな、と思っただけ。
183 :
名無しさん@お腹いっぱい。 :03/02/12 01:49
~/.zshrcって何書いています? キーバインドくらいでしょうか? 私は以前、~/.zshenvには環境変数、~/.zshrcにはシェル変数やエイリアス、 キーバインドの設定を書いていましたが、 rshしたときには ~/.zshrcが読み込まれないみたいなので、 今は全部 ~/.zshenvに書いています。
ssh だと読み込まれるけど
rsh host command では読み込まれない。 rsh host では読み込まれる。 sshでも一緒。
186 :
名無しさん@お腹いっぱい。 :03/02/12 06:39
Mac OS X 10.2.3 付属の zsh 4.0.4 を使っています。 端末エミュレータ (Terminal.app) で表示言語を UTF-8 にしているのですが、 日本語を入力すると文字化けします(EUC だと文字化けしません)。 zsh で utf-8 を通す方法があったら教えて下さい。
>>186 「utf-8移行スレ」なんてスレ立てて情報集めてみるのはどう?
各プログラムの utf-8 対応度が知りたい。
.zshrcってないの?
ある
sjisなファイル名はちゃんと補完できないのか?
なんだか404から406にした時かなり遅くなったように感じますた。
192 :
名無しさん@お腹いっぱい。 :03/02/13 21:31
zsh上でとあるソフトを make install として/usr/bin なんかに入っても zshを再起動させないとコマンドの補完に含まれないんだけど、なんか設定あるのですか? 逆にPATHの中のコマンドを削除した場合、ずっとそのコマンドが補完対象に含まれるし。
zshのオプションに文字列を渡せてそれを実行させてプロンプトに欝って欲しいのですけど どうしたらできますか?
-e -cだと実行した後zsh死んでしまうし。
hoge.c int main(){ fprintf(stderr, "err\n"); fprintf(stdout, "out\n"); } ./hogeのエラー出力をerr.txtに標準出力をout.txtに出力して 画面には両方を出力するにはどうすればいい? ./hoge 1>&2 2>&1 2>error.txt 1>out.txt これで一応できたけど、意味不明。shでもできる方法ない?
>>197 わかりやすいのがいいのなら、
./hoge > out.txt 2> error.txt |& cat
とか。
197もそうだけど、setopt multios されてないとダメ。
hでは
((./hoge |tee out.txt >&3) 2>&1 |tee error.txt) 3>&1
くらいかな。もっと簡単な方法あるかな?
s/hでは/shでは/
>>198 > ./hoge > out.txt 2> error.txt |& cat
これだと、out.txt に stderr も含まれない?
./hoge > out.txt 2> error.txt >& /dev/tty
なら大丈夫だが、あまり好みではない
>>200 あれ、ほんとだ。確認したはずなんだが、頭が寝ていたらしい。
ありがと。
しかし、 |& と >& はふるまいが違うのか。
んなの man 眺めたくらいじゃ気付かんよ・・・
ちなみに/dev/tty使うの嫌いなのは一緒だったりする。
>>198-201 ありがとうございます。
((./hoge |tee out.txt >&3) 2>&1 |tee error.txt) 3>&1
これすごいですね。もうなにがなんだかってかんじ。
./hoge > out.txt 2> error.txt |& cat
俺もこれためしたんだけど、なんでout.txtに全部入るのかわからなかった。
>>202 zshmisc(1) に
`|&' は `2>&1 |' の省略形
`>& word' は `> word 2>&1' の省略形ではない
と書いてある。そこから想像しろという事らしいな。
>>201 >あれ、ほんとだ。確認したはずなんだが、頭が寝ていたらしい。
まあ、そういうこともあるね。 実は
>>115 を書いたのも自分だったりする(w
このとき、自分もちゃんと確認したつもりだったけどね。同じような質問が
きたので、もう一度動作を確かめて気付いた次第。114 の人に悪いことをした。
>>203 どうも直感的に扱えないのが、嫌なところだね。
/dev/tty を使うのが気に喰わないので、zsh 的に他の解決法はないものかと
思案したところ、こんなのでいけそうだ。
./hege >& >(cat) >out.txt 2>error.txt
でも、綺麗とは言い難い…
うわ、既出でしたか。毎日見てるはずなのにな・・・
tcshの bindkey -k up history-search-backward bindkey -k down history-search-forward みたいな事は、zshで出来るのかな? これがないと移行する気になれないんだが、 出来る人情報キボン
>>206 history-search-(back|for)wardならあるけど?
それとも、カーソルキーに割り当てたいの?
up => "^[[A", down => "^[[B" みたい。
208 :
名無しさん@お腹いっぱい。 :03/02/20 00:52
M-xしたときのキーバインドってどう変えるんでしょう? Emacs風に、"C-a"とか"C-b"使いたいし、 M-[pn]で、M-xでコールした関数の履歴を活用したい...。
>>206 autoload -U history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^P" history-beginning-search-backward-end
bindkey "^N" history-beginning-search-forward-end
>>207 ,209
サンクス!
これで移行する事ができました。
zsh、おもったより軽くて快適。
イイ!!
zshがディレクトリのシンボリックを 勝手にリンク先の名前に戻してしまうのですが、 どういう風に設定したらよろしいでしょうか? 意図的に名前をかえてリンクしてあるディレクトリの意味がなくなってしまいました。 お知恵をお貸しください。
すまそ、 ディレクトリのシンボリックリンクを でした。
自己解決しました。 スレ汚しすまそ。
>>214 chase_linksがついてたせいで、
hoge-xxx@ hoge/
pwd ~/hoge-xxx/
にしたかったのが、
pwd ~/hoge/
になってたの。
chase_linksを消したらなおった。
compctl -x 's[-]' -s '`kill -l`' - 'p[*]' -c -- killall tcshから引き継いだやつなんですが、 compinitしないと動かなんです。 compinitせずに動かす方法はありますか?
その設定は別に要らんような。killall のデフォルトの補完とそんなに違う?
必要なんです。 「compinit」しませんから。 非常に重くなるので、compctlで済ませたいです。
>>218 compinitしとけ。重くなるって、起動だけじゃなくて?
>>218 [prefix]/share/zsh/[version]/functions/ から要らない補完関数消したら?
レスどうも。 根本的な解決にならないようですので、 自分でどうにかします。 ありがとうございました。
補完リストをカラー表示する方法ってありますか?
無い。
あるだろ。 zstyle ':completion:*' list-colors '' とか。 まあ、聞く前に man zshall しろってこった。
zmodload -i zsh/complist export ZLS_COLORS='di=01;36'
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
229 :
名無しさん@お腹いっぱい。 :03/03/04 02:05
230 :
名無しさん@お腹いっぱい。 :03/03/04 04:44
cygwinのzshで日本語入力が文字化けするのは仕様ですか? % echo あほ と書くと、echo の後が文字化けします。 (結果は正しく「あほ」と出ます) zshはeucなら標準で入力できるようなのでUN*X環境では 大丈夫だと思いますが…
232 :
名無しさん@Emacs :03/03/07 16:11
zshって\nの扱いが妙じゃないですか? たとえばrubyなんかで print ("hello\n") は表示できるのに print ("hello") だと何も表示されません。 これバグじゃないかと思うのですが。
バグではなくて仕様。echo -n hoghoge でも同様の結果になる。 デフォルトでは、プロンプト前にCRを出力するようになっているから。 zsh には、右プロンプトやマルチライン編集機能があるので、その方が 都合がいいため。 setopt NO_PROMPT_CR すれば、一応お望み通りになるが…
234 :
名無しさん@Emacs :03/03/07 16:47
>>233 それやると今度は画面が崩れます。
RPROMPT='[%~]'
こんなの設定してるからなんでしょうね。
少し不便
>>233 にあるように都合が悪いわけです。RPROMPT に改行いれるように
すればましになりますが
RPROMPT じゃなくて PROMPT だった
>>231 bashだと、それ以下ですね
cygwinの端末問題じゃないですか?
今月号のUNIX USERは結構(・∀・)イイ!!かも
238 :
名無しさん@お腹いっぱい。 :03/03/09 02:08
cygwinのzshの起動時に Ignore insecure directories and files and continue [ny]? と聞かれてしまうのですが、どうすれば聞かれないように出来ますか?
240 :
名無しさん@お腹いっぱい。 :03/03/09 17:14
.zshrc に setopt nohup を追加して読み込ませました。 あるシェルスクリプトを ./a.sh& したあと、exit しようとしたのですが zsh: you have running jobs. となって抜けられませんでした。 どうすればいいのでしょうか? こういう時に nohup を使うのでは ないのでしょうか?
disown
あるいは ./a.sh&!
この場合、もう一度 exit すれば抜けられるけどね
>>239 ありがとうございました。ログに載ってたんですね。
今月のUnix Userより。 mkdir ~/zsh_help cd ~/zsh_help man zshall | colcrt - | \ perl ~/zsh-4.0.6/Util/helpfiles で、~/zsh_helpにヘルプファイルがたくさんできる。 unalias run-help autoload run-help HELPDIR=$HOME/zsh_help これでM-hでいろんなmanが見れる。 autoload promptinit promptinit prompt -l で変更可能なテーマを表示 prompt <theme> プロンプトを変更。 autoload predict-on predict-on 入力を予想して表示。けっこううざい autoload zmv zmv '(*).c' '$1.h' alias mmv='noglob zmv -W' mmv *.c *.h
>>247 今月号の記事はなかなか面白そうだな。立ち読みしてみるか。
ところで、最近のマニュアルだと zshall じゃなくて zshbuiltins にしないと
駄目じゃないの?
249 :
名無しさん@お腹いっぱい。 :03/03/13 23:30
質問さていただきます。 zshの補完リストの色の事なんですが、X端末側で指定してある色に従わせる方法を教えていただけますでしょうか?
連続カキコすいません。 色を表示させる設定は zmodload -i zsh/complist export ZLS_COLORS='di=01;36' としています。 どなたか御教示おねがいします。
自己解決しました。 スレ汚しスマソ。
二つの履歴ファイルを時系列順にマージするような方法は zsh に 用意されていますか? 適当なスクリプトでも書いて対処するしかない のかな
用意されてます
されてないだろ
setopt share_history
>>253-255 煽らないと正解レスが得られないという、UNIX 板の典型的なコンボパターンだな。
申し訳ありませんが、それらのことは知っていますし、実際普段から使っています。
>>252 は、例えば異なるホストでの履歴をマージしたいときなどのことをいっています。
fc を使えば確かに履歴そのものはマージされますが、完全には時系列順にならない
のです。マージしたあと、history -Ei 1 | less とでもして、しばらく眺めれば判ると思います。
履歴の呼び出しはできるので特に困るということでもないのですが、なまじっか記憶が
残っていると、呼び出し順が思いどおりにならないとイライラするものですから。
やはり適当なスクリプトを書いた方がよさそうです
単純なソートでいいかと思ったら複数行あるとまずかったのか。 適当なスクリプトってこんなもんでどう? #!/usr/bin/ruby lines = [] line = nil while line = gets while /\\\Z/ === line line << gets end lines << line end print lines.sort # This code is PDS.
ついでにperl版。 誰かzsh版希望。 #!/usr/bin/perl -w use strict; my @lines; while (<>) { while (/\\\Z/) { $_ .= <>; } push @lines, $_; } print sort(@lines); # This code is PDS.
>>259-260 どうも有難うございます。目的が果たせました。ruby ってすっきり書けるんですね。
自分は setopt INC_APPEND_HISTORY しているので、整列されたものを fc で
単純に読みん込んで exit しても元の木阿弥になってしまいます。
HISTSIZE=0 にしてから $HISTFILE の置き換え & exit することで対処しました。
>>259 短くしてみた(w
#!/usr/bin/ruby
print STDIN.find_all{|line| /\\\Z/ !~ line}.sort
# This code is PDS
そんでつまるところ ま と め る と ど う な る の? …既にfcを使ってマージするところからやり方が 分からない罠
マニュアルの fc の項を見ればわかると思うが…
265 :
名無しさん@お腹いっぱい。 :03/03/18 19:58
マトメトマ
>>262 それだと継続行をまとめてソートじゃなくて
2行目以降が消えて変にならない?
変になります。言うの忘れてた(w
zsh 4.0.6 で、 export PROMPT='%~' mkdir ~/bin cd ~/bin したら、表示が ~i になるのは、漏れだけか?
どこかで変数 i を ~/bin にしてるんじゃないのか
openssl コマンドの補完が欲しいな。
外出ですか?
google() {
^ local google_opt=""
^ if [ $# != 0 ]; then
^ ^ google_opt="search?hl=ja&ie=euc-jp&oe=euc-jp&lr=lang_ja&q=`echo $* | mimencode -q |sed -e 's/=/%/g;s/ /+/g'`"
^ fi
^ w3m "
http://www.google.com/$google_opt "
}
ガイスツ
ソトダシ
tabがあったっぽいところに^がついてるのはなぜ?
>274 271です。それは、screenでコピペしたためエディタの見た目そのままになってました。 失礼しました。そのままじゃ動かない;;
2点ほど質問です。 1) % less hoge.txt を % vi hoge.txt としたいのですが、どうするのが最短手となりますでしょうか? 2) % cv supdate を % cvs update としたいのですが、簡単な手はありますでしょうか?
1) ^A^D^D^D^Dvi 2) ^A^F^Fs^F^D
>>277 阿保
vi !$
C-r SPC C-t
>276 1) % less hoge.txt[RET] v
>>277 M-d じゃなくて、C-d を使っている時点で素人決定
UnixUser キタ━━━━━━(゚∀゚)━━━━━━ !!
そういえば、最近 UnixUser を読んでないんだけど、今月の連載記事 はどんな内容でしたか?
買ったが読んでない。 compsys とかいうやつのはず。 今回が最終回のはず。
皆さんの小技を披露してください
しかしまぁなんですねぇ。
ほんまにほんまやなあ
それは円ひろし
(^^)
290 :
名無しさん@お腹いっぱい。 :03/04/17 16:49
ニヤニヤ(・∀・)
みなさんの小枝が知りたいです。
いらっしゃ〜い。
∧_∧ ( ^^ )< ぬるぽ(^^)
それは桂三枝
295 :
名無しさん@お腹いっぱい。 :03/04/21 06:07
今月と先月のUnix Userは読んでおいたほうがいいぞ >283 あそこまでの解説は保存版になる
そろそろ O'Reilly あたりから本が出るといいのだが。
>>296 YOU shall write it.
Unix User の解説が書籍にならないかなぁ。
299 :
名無しさん@お腹いっぱい。 :03/04/21 18:55
RedHat8.0を使ってます。 標準のシェルをbashからzshにするために、/etc/passwdファイルを編集したのですが、 そうするとmanやlessの日本語が表示されなくなってしまいます。 どなたかこれを解決する方法を教えてください。
大方 .bashrc の $PAGER の設定を .zshrc に移してないってとこだろうな。
>>299-300 LANGとかのlocaleの設定の問題のような気もする。
どうでもいいけどシェルを変えるだけなら
/etc/passwdを直接いじるよりもchshを
使った方がいいのでは。
303 :
名無しさん@お腹いっぱい。 :03/04/29 23:09
cygwinで使うと最近のPen4でも重いのは何とかならないかなあ?
そんなに重いかなぁ?使い方と感じ方次第だろーけど。
305 :
名無しさん@お腹いっぱい。 :03/04/30 01:22
設定にもよるのかもしれないけど、時々カレントディレクトリ上の ファイル名でも1秒くらいかかる場合がある。 sedとかgrepとか呼ぶせいかなあ?
Cygwin だから
307 :
名無しさん@お腹いっぱい。 :03/04/30 10:21
zsh で履歴に重複がある場合, それを履歴に加えないような .zshrc の設定方法ありますか?
308 :
動画直リン :03/04/30 10:25
310 :
名無しさん@お腹いっぱい。 :03/04/30 15:44
>>309 すいません,
検索してみたんですが,
duplicate の使い方が書いて
あるものを見つけることができませんでした.
どう使えばいいんでしょうか?
man zshoptions
setopt hist_ignore_all_dups
313 :
名無しさん@お腹いっぱい。 :03/04/30 17:41
ギャー!!
315 :
名無しさん@お腹いっぱい。 :03/04/30 17:53
すいません hist_ignore_all_dups なんていうオプションはねーぞ というメッセージが出るんですが… hist_save_no_dups も同様です…
もうだめぽ
318 :
名無しさん@お腹いっぱい。 :03/04/30 18:03
>>315 setopt histenablenullpo
ぬるぽ!?
321 :
名無しさん@お腹いっぱい。 :03/04/30 20:09
322 :
bloom :03/04/30 20:25
323 :
名無しさん@お腹いっぱい。 :03/05/01 19:33
zsh シェルが動いているコマンドラインで, その zsh のヴァージョンを調べるには?
zsh --version で出なかった? man zsh でも最下部に出るかも
>>323 $ echo $ZSH_VERSION
krxvt の中で zsh を使っているときに echo 夏 は、ちゃんと実行されるんですが、 echo 春 と書こうとすると、画面上で echo | と化けてしまって、pipe> というプロンプトが出てしまいます。 sh で同じことをすると、ちゃんと echo 春 になるので、krxvt の設定の 問題ではないと思います。 log を見ましたが、日本語そのものが出ないという例はありましたが、 一部だけ化ける、という例は発見出来ませんでした。 どういう可能性が考えられるでしょうか。
327 :
名無しさん@お腹いっぱい。 :03/05/04 07:43
Terminal.app では問題無く出来たよ。zsh 4.0.4 なり。
328 :
名無しさん@お腹いっぱい。 :03/05/07 00:49
色表示させてみようと setopt prompt_subst PROMPT='%{^[[$[32+$RANDOM % 5]m%}%U%B$HOST'"{`whoami`}%b%%%{^[[m%}%u " とかすると、 ^[[34mhostname{gikoneko}%^[[m のように表示されてしまいます。どこら辺の設定がおかしいのでしょうか。 バージョンはzsh 4.0.4 です。
^[ は escape そのものをじゃないと駄目だが、それは大丈夫? `whoami` も %n でいいような
$HOST も %m でいいような。 %% のところは %# の方がお勧め。
>>329 ^[ をそのまま書いてました・・・
thxです。
option='-l -F' ls $option ls: オプションが違います -- 詳しくは `ls --help' を実行して下さい. zsh: 17896 exit 1 ls $option となってしまうんだが、どういうことよ。bashだとできるんだが。
quote されてないときの挙動が違うから。bash などと同じにしたければ setopt SH_WORD_SPLIT とすればよい。 一時的に変えたければ ls ${=option} とかね
>>333 よくわからんけど${=option}で解決したよ。ありがとう。
なるほど
ls '-l -F'
こうなってるのか。
というか
>>128 も俺だ・・・
336 :
名無しさん@お腹いっぱい。 :03/05/08 02:02
set|grep LANG などとすると Binary file (standard input) matches といわれてしまいます。bashだときちんと出来るんですが。 cat hoge.txt|grep hoge など通常のファイルをgrepする文にも正常に出来ます。 どこらへんがダメなんでしょうか?
set の出力を見れば判るけど、IFS の中身に NULL があるからでしょう。 env | grep LANG とでもしておけばいいんでは
>>338 あ、本当だ。
どうもです。
env|grep LANGで望み通りの動作しました。
最近MacOS10.2.6を使い出し、 ファイル名がUTF-8で戸惑っているのですが、 zshではUTF-8を通すことは出来ないのでしょうか。 検索したら186の質問が引っ掛かったのですが そこでは解決していなかったので質問させていただきます。
341 :
名無しさん@お腹いっぱい。 :03/05/14 09:22
chown ro として C-i すると、 chown root: になりますか? chown root. になりますか? この辺の挙動に関して教えてください。
>>341 root.となった。
echo ${_comps[chown]}
_chown
share/zsh/4.0.6/functions/_chownみるよろし。
>>342 $OSTYPE ってどこで定義されているんでしょうか?
いままで、: 立った気がするんですけどいつのまにか . になってたので……。
>>343 どこで定義されてるかはしらんけど、solarisでやったら:になったし、
linuxでやったら.になったぞ。
>>344 すいません。
~/.zshrc に OSTYPE=$(uname) というのを入れていた生でした。
346 :
名無しさん@お腹いっぱい。 :03/05/15 03:29
sudo chown root: ここで C-i したときに、自分の所属していないグループを 補完するにはどうすればいいのでしょうか?
348 :
名無しさん@お腹いっぱい。 :03/05/17 02:46
コマンド打ってる途中でその行の頭に戻りたい場合、tcshならhomeキーで 戻れるけどzshじゃどうすれば戻れるか分かりません。 sudo後から付ける時とかカーソルキーで戻るのめんどくさくて・・・。
>>348 Emacs モードなら Ctrl-A とか。
ていうか、home キーで戻すってすごいな。
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
351 :
名無しさん@お腹いっぱい。 :03/05/22 17:19
emacsモードがあるということは、viモードもあるの?
うほっ! つかいづれ…。
>>349 ほんとだ。戻れました。ありがとう。
emacs使えくせにemacsモードで使ってました・・・。
>emacs使えくせにemacsモードで使ってました・・・。 使えないでした。失礼しますた。
356 :
名無しさん@お腹いっぱい。 :03/05/23 10:01
vi使いはviモードで使ってるんかね イチイチ^[せなあかんって…使いづらくね?
使いやすい。ただ、一度コマンドモードに入った後、再び入力モードにはいると 以前に入力した文字がバックスペースで消えないのがつらい。 それと4xで4文字消して、.で繰り返しても1文字しか消えない。
358 :
名無しさん@お腹いっぱい。 :03/05/23 11:48
>>357 bindkey "^H" backward-delete-char
>>360 ありがとう。というかいつのまにかviモードになってたみたい。
どうやらEDITORがvimになってるせいらしい。
bindkey -e
bindkey '^[' vi-cmd-mode
にした。
zshを常用しようか tcshのままでいようか 激しく悩み中
おれはzshに乗り換えた。オタだから tcshはzshと比べると ・若干省メモリ&機敏。 ・シンプルなので設定が楽。 の2点がいい。普通に使うにはtcshで十分だな。
>>363 そうなんだけど、tcshの持つ妙なクセに最近イラついてきてる
俺もヲタだから乗りかえたいのは山々なんだけど
以前のzshrcを紛失した痛みと、メモリの都合で思案中
設定すんのが何より面倒くさい…。
事ある毎に少しずつ設定していってるからそちらはあまり問題では なくなってきてるけど、機敏でないのが辛いので常用はtcshになってる。
>>365 一応設定おわらせた。
言うまでもないと思うけど、最適化はしてあるよね?
MMX pentium程度あれば、速度的な面は大丈夫だと思うけど。
あ、compinitとか使うとかなりのスペックを要するか。
俺は、未だにcompctlで補完させちょるよ。
(pd)ksh程度のメモリの使用量で zshくらい働けるshellキボンヌ
>>368 おいおい!みんながみんなそんなんじゃねえよ!もまいと一緒にすんなYO!
漏れはvimの連番になってるパチーを落すときに かなり便利だった。 それ以外では、どこが他のshellに比べて優位なのかわからん。 いまいち、zshでなかればならないっていう理由もないな。 至高のナントカカントカっつーHPもむなしく感じる。 「tcsh なんてウンコ」 機能的にそれほどかわらんのに、無駄に重いところをみると zshはタダのうんこではないな。 そういう意味では、タダのウンコのtcshよりは優れているのかもしれないが。
他の shell でもできるかもわからんけど、 漏れは scp でリモートの path を補完してくれるのにはたまげたな。
>>372 そんなん出来たのか
しらんかったよ、zshユーザーなのに。
w3m で ~/.w3m/history の中の URL を補完とか。
chown で user:group の補完とか。
configure のオプションの補完とか。 Makefile のターゲットの補完とか。
>>374-375 tcshでも設定しだいではいけそうだな。
zshでは、compinitすれば一発か?
起動が重いけど。
>>376 それも、zsh固有ではないなぁ。
っつーか、補完じゃtcshとたいしてかわらんべ。
ファイル名生成規則とか、コマンドラインスタックはtcshより優れてるな。
kill で pid の補完とか。 MH のコマンドで folder の補完とか。
>>379 MHコマンドつーのは何かわからんが
killのpid補完もいけるな。
補完ネタでは、格別優位ではないよ。
compinitで設定一発完了っつーのおいしいかもしれんがね。
リスクが無いわけではないけど。
まぁ、実際さ、bash と tcsh の違いが export か setenv くらいにしか 思ってないような奴が、zsh 使っても違いを感じないわけで。 以前 ksh や bash や tcsh をそこそこ使って、いまいち手になじまない と感じた、違いのわかる漢がたどりつくシェルなのであって、一般人が 使うようなものではないと、そう思うわけですよ。ヲタクとしては。 そうですねぇ。わかる奴にはわかるんだけどねぇ、って感じですか。 あれですよ。普段 Windows とかで、たま〜に ssh でログインしてさわっ ているような奴には、違いはわからんと思いますよ。実際、この板に来て る奴にも多いんですよ。そういうエセ UNIX 使いが。 いや、別に煽ってるわけじゃないんですよ。ヲタなもんで、どうしても こういう書き方になってしまうんです(w
>>372 ゲ、マジだ。ビビツタ
だけど、補完しようとしたらpass聞かれた(ワラ
"^[a" accept-and-hold "^[q" push-line "^O" accept-line-and-down-history "^[." insert-last-word "^['" quote-line このへんの機能はほかのシェルにはないよね? あと便利なキーは何がありますか?
>>381 > 以前 ksh や bash や tcsh をそこそこ使って、いまいち手になじまない
> と感じた、違いのわかる漢がたどりつくシェルなのであって、
であるからには、zshをそこそこ使って、いまいち手になじまない
と感じる人間も否定しちゃいけないね。
その一線を越える人がたまにいるみたいで嫌になる。
>>381 俺は君がいうとおりの
>以前 ksh や bash や tcsh をそこそこ使って、いまいち手になじまない
という口なんだが
zshが何物よりも優れているとは思わんなぁ。
ただし、zshはデカいが小回りは効くな、かゆい所に手が届くというか。
>>367 の言うやつがあるといいな。
zsh程度働いてくれて、ksh程度のメモリの使用量ってやつ。
まあ367の名前のとおり無茶なんだが。
pdkshも、ちょっとした不満さえ我慢できればかなり軽くて良いんだがね。
本家kshとの微妙な違いも、時として鼻につくこともあるが。
>>382 あ、そうそう、公開鍵なり ssh-agent なりで、
あらかじめ password 聞かれないようにしておく必要はありますです。
一線を越えた人はなに使うの? もしや scsh?
>>383 の補完設定のやつ使っても
compctlで、ほんの少しだけ設定したzshと同じくらいのメモリの使用量だ。
tcshの方がメモリの面では、お得かな。
でも、C shellの癖がなぁ。
ファイル名生成規則がなぁ。
zshに移行してしまった後から、また悩む。
tcshのHISTSIZEはエントリの数だけど zshはバイト数? ヒストリのサイズはメモリに響くので 識者の方いらっしゃいましたら、回答キボンヌ
zsh もエントリーの数だに
あぼーん
396 :
名無しさん@お腹いっぱい。 :03/05/28 18:14
イッテヨシ!
397 :
名無しさん@お腹いっぱい。 :03/05/31 00:23
zshで # /bin/echo 'aaa\nbbb' bbb'aaa\nbbb # bashだと $ /bin/echo 'aaa\nbbb' aaa\nbbb $ となります。zshでもbashと同じになって欲しいのですが どう設定すりゃあいいの? zsh 4.0.6 (gentoo)です。
>>397 洩れのとこでは zsh で
% echo 'aaa\nbbb'
aaa
bbb
%
となるけど.
bash でも,そいうふうになるようにせい, いうのか,
zsh で aaa\nbbb と echo させたいのか?
# /bin/echo 'aaa\nbbb' bbb'aaa\nbbb 俺はこうなったが。炒ってよし!
>>398 組み込みコマンドの echo と、/bin/echo は違うと思うよ。
zsh の組み込みだとそうなるけど、GNU の echo だと、
% /bin/echo 'aaa\nbbb'
aaa\nbbb
というようになるね。
>>399 のようになるのは、知らん。
ありゃりゃ、オレの環境がむちゃくちゃなのか。 と、いろいろ試してみたところ、 どうやらEtermが悪さをしていたようです。 おさわがせしました。 ヽ(´▽`)ノ zsh万歳
しまった。sage忘れたばっかりに… タイトルバーを変えようと、こんなことをしていたのが悪かったです。 これをやめたらEtermでも改行くずれ(?)は無くなりました。 case $TERM in rxvt|*term) precmd() { print -Pn "\e]0;%n@%m - %~\a" } preexec () { print -Pn "\e]0;%n@%m - $1\a" } ;; esac ヽ(´▽`)ノ Eterm万歳 なんだ、悪いのはオレかよ…
すまそ, 組み込みコマンドでなくて, /bin/echo の話だったのが分かってなかった 私をぶって. んでも, そんなら bash でも zsh でも $ /bin/echo 'aaa\nbbb' aaa\nbbb でっせ, うちでは.
>>12 のwikiはどうなってますか?
最近こちらを見始めて、激しく気になるのですが。
たぶん2ちゃんねらの事だから 荒らして潰したんでしょうね。
>>3 とかのリンクにはへんなのが混じっているようだけど、こういうものなの?
12のことをぜんぜんしらずにzshのWiki作りはじめてました。 需要ありますか?
あります
>>410 Pentium200MHzのノート鯖なんで、ちと負荷が辛そうです。
(というか、自分で使ってても、待たされてじりじりする)
近いうちに中身を別のいくらか速い奴に移すので、そしたらまた来ますわ。
>165 Terminal→ウィンドウの設定...→エミュレーション→「メタキーとしてoptionキーを使用する」をチェック→設定をデフォルトとして使用
printf hoge で、hogeと表示される? 俺のはナニも表示されず(tcsh, bashではOK)原因特定に手間取った。
>411 マジか 期待して待ってます
>>414 あら過去ログにあったのね
Cでstdoutに出力するプログラム組んだけど結果が全く表示されずにツボにはまってた。
改行コードを入れて対処したけど。
つーことで
unsetopt prompt_cr
を.zshrcに追加しますた
417 :
名無しさん@お腹いっぱい。 :03/06/03 22:06
C-rの検索時に、時々(2週間に1回くらい) $HISTFILE には存在しているのにヒットしなくなることがあるのですが、 皆さんはいかがでしょうか? % zsh --version zsh 4.0.6 (i686-pc-linux-gnu) % echo $HISTSIZE $SAVEHIST 1048576 1048576
7桁にしている人を初めてみた。というか、なんでそんな値
高林さんのを参考にしました。今 600Kくらい。
単位はエントリーの数なんだが
俺は10000を超えたら別ファイルに保存してる。 起動が遅くなるからね
おれも一年ほど前から history は富豪的に使うようにした。 C-r でインスコ時からの記録が全て検索できるので便利。
とは書いたが、
>>417 はおれの設定と二けたも違ってるな。
百万もどうやったらたまるんだ。(笑)
setopt hist_ignore_dups
setopt hist_ignore_all_dups
こうしてるから、最近 history の増加率が減少してきたよ。
>>417 はものすごい速さでキーを叩くんだろう。
ホームディレクトリが NFS だったりしたら、zsh の起動や終了が重くて大変そうだ。
ところで、X 上の仮想端末で zsh 使ってる場合、
X を終了したときに history って保存されるの?
昔のhistoryを見るのは結構おもしろい。
setopt HIST_IGNORE_DUPS として、現在履歴が 45000 程溜まっているけど、
それでも一番古いもので一年ちょっと前。100万溜めるのはかなり大変そうだな(w
>>422 X を使うなら setopt SHARE_HISTORY か setopt INC_APPEND_HISTORY として
おかないと、かなり不便のような
>>424 setopt share_historyして、10000人くらいで同時に同じアカウントで使ってるんじゃないの。
>>425 history ファイル見てみたらタイムスタンプが前回 X を終了した時刻になってたから、
logout じゃなくて signal 受けて終了するときにもちゃんと保存するのかな。
>>427 HISTFILE=~/.zsh_history.$HOST.$tty
とかやってるからそれほど不便ではないです。
$HISTSIZE の単位が byte で、 $SAVEHIST が数ですよね? 最初の設定の時にどっちがどっちだか分からなかったので、 両方とも同じにしてました。 あと setopt extended_history して、$HISTFILEに時間も記録しているから サイズが大きめかもしれない。 でも setopt hist_ignore_all_dups, setopt hist_ignore_dups はしてますよ。 とりあえず、 $HISTSIZE => 512000, $SAVEHIST => 10000 にしておきました。
byteじゃないだろ。 The maximum number of events stored in the internal history list.
zsh のスレでは、何故か byte 単位とか言う奴が時々出てくるのが謎 もしかして他にそんな shell があるのか
>>431 ああ、ほんとだ。メモリ上に保存されるヒストリの数なんですね。
ありがとうございます。
>>432 漏れもウェブサイトかどっかで何度かそんな記述を見た憶えがある。
この都市伝説の出所きぼんぬ。
ハゲワラ
>>434 俺もどっかのサイトで見たことがある。
このスレで指摘されるまではサイズだと思ってた
あんたもだったのかよ(w
ファイル名補完などで、通り過ぎてしまった補完候補に戻ることってできますか?
自分は reverse-menu-complete を適当に割り当てている。 戻るだけだったら、undo (C-x C-u、C-x u) でも用は足せるけど
undo に C-_ を忘れていた。C-/ で C-_ を吐く端末も多いからこれが一番楽か
>>440 そんな便利なコマンドがあったのですか!
man zshzleは一通り読んだつもりだけど気づきませんでした。
undoでもできるんですね。
最近知ったんですけどredoもあるんですね。
bindkey -a '^R' redo
bindkey -a u undo
でvimっぽくして使ってます。使う機会ないけど。
reverse-menu-complete のことを書いたんでついでに。 tcsh にも似たようなのに complete-word-back というのがあって、zsh に乗り換える 前は重宝していた。ただし、両者の挙動には違いがあって、自分は complete-word-back の動作が好みなんだよね。 例えば、 % ls 00000.txt 00001.txt 00002.txt 00003.txt 10000.txt 10001.txt 10002.txt 10003.txt という状況で 00003.txt を less で見たいとき、 % less 0 として、complete-word-back すれば 00003.txt が一発で補完できる。それに対して reverse-menu-complete は一旦 00000.txt が補完候補に出てしまう。zsh を使って いてストレスを感じる少ない例かな。zle を駆使すれば対処できるのかもしれないが。 誰かうまい方法を知っていたら教えてたもう
最初だけ reverse-menu-complete を2度実行すればいいかと思ったけど、
これだと ^I の expand-or-complete の直後も2度実行されてしまうから
[ self-insert = "$LASTWIDGET" ] の方がいいかも。
function complete-word-back {
if [ complete-word-back != "$LASTWIDGET" ]; then
zle reverse-menu-complete
fi
zle reverse-menu-complete
}
zle -N complete-word-back
#bindkey '^J' complete-word-back
>>435 相互リンクかよっ。
>>444 [ self-insert = "$LASTWIDGET" ] の方が望みの動作をしてくれるので、
こちらにして快適になったよ!! 助言有難きかな
あと、自分も zshzle をちゃんと読むべきだったな(w
>>447 お疲れ様。良い感じに出来てますね。
ただ、色が淡くて読みづらい&目が疲れる かもです・・・。
確かにちょっと目に厳しいかも
色についてはちょっといじってみますね。 tDiaryのよさげなテーマがあったら or 作ったら教えてください。 HikiにはtDiaryのテーマを流用できることになっているので。
NetBSD-1.6.1 で
% kill
ここで TAB を2 かい押すと↓こうなって、
217 E0 SWs 0:00.00 -zsh
225 E0 SW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx
237 E0 SW+ 0:00.00 xinit /home/hirobo/.xinitrc --
246 E0 S 0:01.75 wmaker
251 E0 S 0:00.26 kinput2 -ccdef ccdef.kinput2.egg -canna -cannaserver 127.0.
320 p2 Ss+ 0:00.78 zsh
338 p2 SN 1:26.35 emacs
544 p0 SNs+ 0:01.93 /usr/pkg/bin/ruby -S migemo -t emacs -i \a -d /usr/local/sh
558 p1 SNs+ 0:05.01 /usr/pkg/lib/mozilla/mozilla-bin
http://bo.st72.arena.ne.jp 594 p3 Ss+ 0:00.20 zsh
601 p3 S+ 0:00.02 zsh
602 p3 R+ 0:00.00 ps
もういっかい押すと、
kill /bin/sh とかになって PID ではなく名前が補完されるのですが、どうす
れば、PID が出てくるようになるでしょうか。
>>446 > [ self-insert = "$LASTWIDGET" ] の方が望みの動作をしてくれるので、
しばらく使ってみて、編集時の後にも complete-word-back な動作をして
くれないと嬉しくないことに気付いた。
結局、補完系以外の後は 2 回 reverse-menu-complete すればいいだろ
うということで、 [[ "$LASTWIDGET" != *complete* ]] に変えてみた。
いまのところ問題なし。
>>452 うちの Linux では PID が補完されるよ
でた犬厨 うぜぇー うちのLinuxでは だってさ(ゲラゲラ 自分が特別な存在だとでも思ってるのかね(ワラ
>>454 おまえはLinux板に行って「BSD厨ウゼー」とか言ってるやつだな(w
そぉです わたすが(ry
気違い、長生きしろよ
>>452 share/zsh/4.0.6/functions/_kill嫁
多分、それだけ読んでも判らんだろ(w
>>447 見やすくなったよ。thx!
あとはこのWikiがどう育つかだね。
項目が少ないページは一まとめにしちゃった方がイイ鴨。
>>460 ひとまとめにするっつーか、いろいろ放り込んでおいて、
あるトピックが成長をはじめたらブランチする(別のページを作る)
って感じの運用がいいかもね。
zstyle ':completion:*' use-cache true したけど、~/.zcompcacheができません。なぜ?
どのコマンド? キャッシュを使うように補完関数が書かれているやつじゃないとダメだと思うけど。 とりあえず、うちのzsh 4.0.6では、 $ perl -M[補完] は、最初の補完候補生成後に .zcompcache覗いたらキャッシュできてたよ。
WikiのTestArrayMemberって${(M)x_terminals:#$TERM}を使って もっとなんとかできそうな気がする。
>>464 is_member_of() {
local heystack=$1
local needle=$2
eval '[[ -n ${(M)'"$heystack"':#$'"$needle"'} ]]'
}
こんな感じかしらん。今環境ないんで未検証スマソ。
>>465 つまらぬことだが、干し草の山は hAystackな。
>>463 url補完とか、pid補完とか、host補完とか、ユーザー名補完とか
いろいろやりましたが、何もできないです。
>>486 いま zsh/4.0.6/functions/Completion で$ grep _store_cache **/*~*.zwc(.)してみたら、Debian/_aptDebian/_deb_packagesMandrake/_urpmiRedhat/_rpmUnix/_perl_modulesこれだけでした。ほとんどなかったのね ;_;
>>469 そうなんですか。ありがとうございます。ほとんど意味ないですね。
>>467 プロンプトには仕込んでないが壊れた時に
一度 Ctrl-u したあと
echo Ctrl-v Esc-c で直ると思われる
出力される文字は気にせず打ち込んでくれ
端末画面に表示されている word から dabbrev 補完できないでしょうか
>>474 誰か compsys 用に書き直してくれ
zsh-4.0.7, 4,1,1 キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
つーか4.0系と4.1系でどう違うのよ?
>>478 ドキュメント嫁。
おおざっぱにいうと、4.0 は安定版、4.1 は開発版。
でも、4.1.1 はもうそこそこ安定してきてるっぽい。
ってことみたいだね。
>>480 申し訳ない。自作のプラグインをいじくりまわしていたので。
直ってるかな……
emacsの{ansi,}termで、 tab補完で補完候補が表示されると表示がおかしくなります。 治し方ありますか。
どうおかしくなる? 試したけど、実用上対して気にならなそうな感じなんだけど
%ls hoge1 hoge11 hoge13 hoge15 hoge17 hoge19 hoge20 hoge4 hoge6 hoge8 hoge10 hoge12 hoge14 hoge16 hoge18 hoge2 hoge3 hoge5 hoge7 hoge9 %ls hoge<tab> hoge1 hoge3 hoge5 hoge7 hoge9 hoge11 hoge13 hoge15 hoge17 hoge19 hoge2 hoge4 hoge6 hoge8 hoge10 hoge12 hoge14 hoge16 hoge18 hoge20 この状態で補完すると普通、ls hogeのところの表示が変化するんですが、 2行3列目のhoge6のところがhoge2→hoge3と変化していきます。 これとは関係ないんですが、右プロンプトが行からはみでて、2行目の左端に表示されます。
incremental-complete-word使える人いる?なんかうまく機能しないんだが。 autoload incremental-complete-word zle -N incremental-complete-word bindkey '^Xi' incremental-complete-word
>>474 4.x では、うまく動かなかったので書き直してみた。普段 menu complete は明示的にしか
使わないのだが、dabbrev ではそうじゃないと不便なので menu-complete を基にした。
zstyle による大文字小文字無視の設定が生きないの不満。あまり良く判ってないので添削希望
ABBREVFILE=/tmp/script-$USER
if [[ $SCRIPT = 1 ]]; then
if [[ ! $screen = 1 ]]; then
screen=1 screen; exit
fi
else
umask 0077; SCRIPT=1 script -f -a $ABBREVFILE-$WINDOWID;
rm $ABBREVFILE-$WINDOWID; exit
fi
alias cutesc="sed -e 's/\([^a-zA-Z]*\([a-zA-Z]\|$\)\)\+/ /g' | col -b"
comp_dabbrev_display () {
local i c reply
for i in $ABBREVFILE*; do
c=($(tail -100 $i | head -99 | cutesc))
reply=("$reply[@]" "$c[@]")
done
compadd - "$reply[@]"
}
zle -C dabbrev-complete menu-complete comp_dabbrev_display
bindkey '^[/' dabbrev-complete
書くのを忘れたけど、comp_dabbrev_display にしか興味がなかったのでそれだけ残した。 まあ他も同じ様なもんだけど
げっ、screen の部分はコメントアウトしていたので修正を加えるのを忘れた。 趣味の問題だから動作に支障はないが…
%zsh-4.1.1 %autoload -U tetris %zle -N tetris %bindkey '^Xt' tetris | #### | Score: 0 | ####()() | | ()()() | Game parameters: 11x20, 100.Hz | () | | ()()()() | Keys: left: a j | () | rotate: s k | ()() | right: d l | ()() | drop: space | ()() | quit: q | () | | () | | ()() | | () | | () | | ()()() | | () | | () | | ()() | | ()() | | ()() | +----------------------+
なんか functions に変なファイルがあるなぁとは思ってたが、なんつーシェルだ・・・
そういやついに tetris ができるようになったと書いてあったな。別にキーに割り当てなくても ^[x で呼び出せばいいと思うが、しょっちゅうやりたいのなら仕方がないな(w
ボスが来た機能は付いてますか?
シェル関数で動くものはサスペンドが効かないのが弱点やねぇ。
494 :
名無しさん@お腹いっぱい。 :03/06/30 08:34
bashだとCtrl+Rで、ヒストリの検索ができるけど、 zshに同じ機能はありますか?
496 :
名無しさん@お腹いっぱい。 :03/06/30 10:16
bash つかってれば?
499 :
名無しさん@お腹いっぱい。 :03/06/30 15:03
結局、ESC -> / でできたわけだが、 なんでそれが1秒で試せることなんだ?
>>499 普通は bindkey -e してあるから、でない?
501 :
名無しさん@お腹いっぱい。 :03/06/30 15:48
ところで compinit + bindkey -v な状態で ESC 押してちょっと 待ってから / を押すとヒストリの検索になるけど、ESC 押して すぐ / を押すとヒストリがだらだらっと表示される。どういう 設定したらヒストリの検索にずばっと行けますか?
502 :
名無しさん@お腹いっぱい。 :03/06/30 16:04
>>500 なるほど。
自分が使ってたbashではset -o viでも
Ctrl+Rで履歴の検索だったから、
それがemacs由来なkeybindだってことも知らなかったよ。
>>501 それは俺もはまった。
screenつかってるだろ。
>>503 screen使ってます!
で、どうやって回避しました?
うーん maptimeout 0 にしたけど直らない・・・ screen なしでもダメだった。 もうちょっと調べてみよ
bindkey -r '^[/' したら直りますた。
510 :
名無しさん@お腹いっぱい。 :03/07/01 14:18
OS X
From: [497] 1 秒で試せるだろ <bindkey -e する必要があるかもな。>
Date: 03/06/30 10:35
>>496 釣れた。
zsh メーリングリストの spam 嵐は酷いな
515 :
名無しさん@お腹いっぱい。 :03/07/07 05:06
厨な質問だが、zshのプロンプトのカスタマイズ方を教えて欲しい set prompt="%〜 " と同じことをzshではどのようにしたらよいのだろうか
518 :
名無しさん@お腹いっぱい。 :03/07/10 02:44
zsh ってなんで、kill -TERM で死なないの?
Zombie shell とか。
%hoge 2>&1 1>/dev/null | cat とやると、エラー出力だけが、出力されてほしいのですが、 標準出力も出力されてしまいます。 redhatの/bin/shでは、エラー出力だけ出力されました。 どうすればいいでしょうか
(hoge 2>&1 >/dev/null) | hogehoge でもいいけどね
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
=(command) <(command) >(command) の地害がマニュアル読んでもわかりません。
そうですか。 それは困りましたね。
< と = の違いは lseek がどうのとか書いてあるがどういうことなんだろう 誰か解説きぼん
パイプだとシークできねーよって話
530 :
名無しさん@お腹いっぱい。 :03/07/22 23:13
パイポでタバコをやめますた。
>>467 巧くいくかどうかまだ試していないけど。
PROMPT='%{^O^[[0m^[(B^[)$B^[*I^[+$D%}'"$PROMPT"
「^O」「^[」はctrl+o,escを適当に入力してくださいな。
533 :
名無しさん@お腹いっぱい。 :03/07/29 18:15
>>485 incremental-complete使うくらいならpredict使った方がいい。
うまくカスタマイズすれば相当打鍵数を減らせそうなんだが。
telnet コマンドなどで、サービス (ポート番号) の指定を /etc/services の内容か何かから取ってきて補完してくれますが、 /etc/services を書き換えて、新しいサービスを追加したあと、 そのサービスも補完してくれるようにしたいのですが、どうすればいいでしょうか? もしかして rehash かと思ったけど違いました (あたりまえか・・・) 。
exec zsh
ん〜、なんだか、zsh を起動しなおさなくても、 しばらくすると、新しいサービスが補完対象になるようなんですが、 これってどういうからくりになってるんだろう・・・?
functions/_ports見ろ
539 :
名無しさん@お腹いっぱい。 :03/08/12 05:20
FreeBSD の ports で4.0.6 から 4.0.7 にしたら TAB で 補完するときに %P って文字が出て補完できなくなっちゃいました。 cd /usr/[TAB] で cd /usr/$P となってしまうってことです。 誰か対処方法知りませんか?
540 :
名無しさん@お腹いっぱい。 :03/08/12 22:16
X上でxterm,rxvt,kterm等で稼動してるzshから、バックグラウンドで起動したXクライアントが、 その親のzshを終了すると一緒に終了してしまうのだが。 zshからその子プロセスを終了させずにログアウトする方法ってあるのかな? 最初の'$ exit'で'zsh: you have running jobs.'って警告が返ってきて。 2回目の'$ exit'で子プロセスを巻き込んで終了するんよ…。 bashだと最初の'$ exit'で子プロセスに影響を与えずに終了してくれるんだが。(;´Д`)
>>540 disown してもだめ?
見当違いだったらスマソ
setopt NOHUP
>>541-542 ありがとう。
両方とも解決になったけど、簡単な方で~/.zshrcに`setopt NOHUP'を追記しました。
zshを筆頭にshellの扱いに精進するわ。
>>543 もいっこだけ。
& のかわりに &! でバックグラウンド実行する。
&| でも同じ。
あぼーん
あぼーん
548 :
名無しさん@お腹いっぱい。 :03/08/18 13:30
空のディレクトリで echo * とコマンドラインを入力すると zsh: no matches found: * とエラーメッセージが返ってくるのですが。 B shellのように、* を展開出来ない場合に * をそのまま返すようには出来ませんか?
Software Design に akr さんの記事発見。入門記事なのでたいしたことは書いてないけれど。
>>548 うちの環境ではそうなってますが,どの設定が効いているのかわかりません...
setoptは,autocd autonamedirs autopushd nobeep cdablevars noclobber
completeinword correctall extendedglob extendedhistory noflowcontrol
globcomplete globsubst histignorealldups histignorespace histreduceblanks
histverify interactive login longlistjobs mailwarning monitor nonomatch
printeightbit pushdignoredups sharehistory shinstdin zle
ZSH_VERSION は,4.1.1 です.
>>550 setopt nonomatch
でした。
ありがとうございます。
552 :
名無しさん@お腹いっぱい。 :03/08/18 21:56
この板みても自分でどう設定したら良くわからんから 誰かが作った設定ファイル(.zsh*)をアップしてくれ(゚Д゚)
>>552 とりあえず、これやっとけば補完はOK
autoload -U compinit
後は適当にsetopt
setopt interactive_comments
setopt numeric_glob_sort
setopt auto_cd
setopt noclobber
setopt share_history
setopt hist_ignore_space
setopt hist_ignore_all_dups
setopt hist_reduce_blanks
setopt menucomplete
setopt list_packed
setopt prompt_subst
setopt autopushd
setopt pushdminus
setopt pushdsilent
setopt pushdtohome
setopt pushd_ignore_dups
setopt long_list_jobs
setopt complete_in_word
setopt extended_glob
setopt brace_ccl
setopt glob_dots
setopt printexitvalue
unsetopt rec_exact
unsetopt flow_control
autoload -U compinitだけじゃなくて compinitも実行しておかないと意味が ないような。
>> 539 .zshrcでこんな設定してない? zstyle ':completion:*' file-patterns '%p:globbed-files *(-/):directories' '*:all-files' 4.0.6に戻して使ってたけど、調べたらこれが原因みたいだったので外したら4.0.7でも動いた。
558 :
名無しさん@お腹いっぱい。 :03/08/26 13:23
tcshだと % whichoge cの後にカーソルを合せてTABを押すと % which hoge とスペース付加して補完してくれるのですが zshでやる方法はありますでしょうか? 他の例として % cd /usr/bin usrの後にカーソルを合せてTABを押すと usr以下のディレクトリが表示され lを押すと % cd /usr/local/bin と補完できるのですが zshだと % cd /usr//bin としてからTabを押さないと補完できません。 誰か、簡単に補完する方法教えてください。
>>558 bindkey "^I" expand-or-complete-prefix
かな?
>>559 ほぼ望みどおりになりました。
サンクス!!
#コマンドの後に自動でスペース入れたり
#補完する語の後ろの語は解釈してくれないみたいで、ちょっと残念。
zshってどうやって発音している? わたしは「ゼットシュ」って読んでいるんだけど。
ぜっとしぇる。
ぜっとえすえっち、、、
ぜっしゅ。
ずぃーしゅ
ずしゅ
じーしぇる
568 :
名無しさん@お腹いっぱい。 :03/09/02 04:58
ソフトウェアデザインでちょこっと取り上げられてたけど 内容かなりしょぼかった。。なんだそりゃって感じ。
569 :
名無しさん@お腹いっぱい。 :03/09/04 16:54
ひどい
zsh % echo a a zsh % echo -n zsh % echo -n a zsh % sh $ echo -n a a$ 設定か何かで改行がないときも sh と同じ挙動にならないでしょうか?
しかしFAQもいいところだな
そもそもなんでこんな挙動がデフォルトなんだ?
それも FAQ の一部だな
> プロンプトの前に改行(CR, キャリッジリターン)を表示するオプション PROMPT_CR は、デフォルトで設定されている。 > これは、行が左端の列から始まらない限り、右端のプロンプト($RPROMPT, $RPS1)が適切な位置に表示されず、 > 複数行編集の場合は行位置に混乱をきたす。 PROMPT_CR なしでも、プロンプトに改行を入れることで、強制的に > 同様のことを起こすこともできる
右プロンプトって便利?
>>578 無いと生きていけないかっていうとそんなことはないが、無いと不便。
hoge=fuga fuga=hage のときに $hogeの値を評価してhageを得る方法を教えてください。
不便って程のこともないだろ。 左プロンプトが長くなりすぎないように、右プロンプト表示させたり そんな程度だろ。 まあプロンプトも改行できる事を知れば、わざわざ出たり消えたりする ウザい右プロンプト使うのも馬鹿らしくなるさ。 そんな事言いつつも、コマンドの返り値を表示させてる俺。 PROMPT=$'%{\e[33m%}-=[%{\e[00m%}%n@%m%{\e[33m%}]-[%{\e[00m%}%l%{\e[33m%}]--[%{\e[00m%}%c%{\e[33m%}]---[%{\e[00m%}%T %W%{\e[33m%}]=-%{\e[00m%} \n%{\e[33m%}-{%E% %{\e[00m%} ' RPROMPT=$'%{\e[33m%}}-{%{\e[00m%}%?%{\e[33m%}}-%{\e[00m%}'
なんか、右側だと右に目をやらなくちゃならいないのが鬱陶しくないですか? 慣れの問題なのかな
そんなに画面広いん? あ、Xの仮想端末使わないでコンソールオンリー? フレームバッファで、だだっ広く表示してたら確かに目疲れるわな。 わざわざ、右に表示するくらいなら 改行いれて二段で表示しる。
仮想端末をフルスクリーンに広げて使ってるけど RPROMPT='[%~ %*]' にしてる。 プロンプトを2行にするのも試してみたけど自分にはいまいち合わなかった。
>>585 慣れないうちは、俺もウザいと思った>改行
>>582 setopt print_exit_valueで非0のコマンドの返り値を表示してくれる。
bashの$#はないのか? 現在のシェルでのコマンド数ってやつ。
autoload promptinit
autoload prompt
promptinit
prompt clint
3行のプロンプト
>>584 いや、X 上のターミナルです。
結構幅を狭くしても気になっちゃうんだよね。
二段も試したけど、いちいち二行占有されるのがうっとうしくて。
俺には向いてないって事なのか、、
>>589 それはヒストリの数で、bashの\#($#ではなかったです。)はシェルを新たに起
動すると1から始まる
591 :
名無しさん@お腹いっぱい。 :03/09/05 21:11
プロンプト2行とか言ってる香具師は、知的障害者か気違い RPROMPT最強 zsh最高
592 :
名無しさん@お腹いっぱい。 :03/09/05 21:14
RPORMPTがないと困ります
というか必需品です。
ほんと最高の機能だと思います
使わない香具師は基地外
>>582 ,584は人として間違っていると思います
倫理 道義に反しています。
気違いは死ね
593 :
名無しさん@お腹いっぱい。 :03/09/05 21:16
>>582 なんか調子こいて
プロンプト晒したものの、単なるオナーニプロンプト
自己満足がそんなに好きですか きもいですよ。
玄人は一行だけで 色つけもなし 必要な情報は右プロンプトに表示させるんですよ。
わかりますか?
>>582 は独り善がりな基地外なんですよ キモイ 死ね
(´-`).。oO(カッコつけて二行にするのはなんでだろう?)
595 :
名無しさん@お腹いっぱい。 :03/09/05 21:18
(´-`).。oO(2行ってかっこいいのか?ダセーよキモイし)
596 :
名無しさん@お腹いっぱい。 :03/09/05 21:19
なんかウザいのが粘着してるな zshユーザーってこんなのばっかりなのか?
本当に本が欲しいところ。ハァァ…
>>597 ウザくない奴は書き込まないから、こういうのばかり目立って
zshユーザはこんなのだ。と勘違いしているだけ。
>>597 厨房必死だな
おまえなんか死ね
zsh最強
601 :
名無しさん@お腹いっぱい。 :03/09/05 22:05
zshは正直ウザいね
ia64-hp-hpux11.23な環境でzsh4.1.1をなんとかmakeして make test したんですがcompletionなどいくつかのテストで ハングアップしてしまいます。 気にしなくても大丈夫ですか。
603 :
名無しさん@お腹いっぱい。 :03/09/05 23:34
zsh を Emacs の shell 上で使うには M-x term がベストかなと思っていますが、 term 上で cd してから、C-xC-f すると shell のディレクトリと buffer のディレクトリが合わなくってしまうので、まだ使っていません。 この辺解決された方いますか?
>>603 子プロセス (term の中の shell) のカレントディレクトリを得るのが難しいから
無理そうな気もするね。
それこそ、 RPROMPT に埋め込んだカレントディレクトリを term が watch しとく、
みたいなんができると解決できるのかな?
>>604 仰せの通り、カレントディレクトリはプロンプトから得れば良いですが、
term-send-raw() に advice する時にちょっと工夫しないとダメそうです。
この関数は何か入力されるとコールされる関数のようですので、
`Enter'が入力された時だけ default-directory を更新し、
`a'が入力された時などは子プロセスのカレントディレクトリを
検索しないようにしないと使い物にならないみたいです。
>>581 echo ${(P)hoge} ${(P)${hoge}}
zshexpnのParameter Expansion FlagsのPのところに
そのものずばりの例がある。
| P This forces the value of the parameter name to be interpreted as
| a further parameter name, whose value will be used where appro-
| priate. If used with a nested parameter or command substitution,
| the result of that will be taken as a parameter name in the same
| way. For example, if you have `foo=bar' and `bar=baz', the
| strings ${(P)foo}, ${(P)${foo}}, and ${(P)$(echo bar)} will be
| expanded to `baz'.
>>606 ありがとう。
${(P)$(echo bar)}こんなこともできるんですね。
608 :
名無しさん@お腹いっぱい。 :03/09/06 14:15
右プロンプト邪魔臭いよね。俺は端末エミュレータのタイトルに色々 表示させてる。結構便利。
X上ではいいが、普通のコンソールではそれができないからなあ
%20<...<%~%<< とかやって適当に切り詰めてみては
たしかに、わざわざ右見るのが嫌で %3~ とかしてるので、PWDを表示する用途ではRPOMPTは必要なしだな。 で、RPOMPTは何に使ってるの?
$と%って、なんか歴史的な意味合いがあるの?
>>612 時刻{ヒストリ# or Error#}ホスト名
時刻 いらね ヒストリ# いらね ホスト名 左 pwd 左
プロンプトなー。俺はこんな感じにしてる。 PS1=$'[%n@%m] (%~)\n%# ' 2行って初めは違和感あったけど、慣れると使いやすい。 RPS1は初めのころ使ってたけど、出たり消えたりするのが ちょい欝陶しかった。
二行とかいうと またウザいのが粘着しだすからやめて。
3行以上って香具師いる?
ホスト名とかはscreenのcaptionに表示させてるYO!
kterm 使ってたときは、プロンプトは % だけの シンプルなものにして、ホスト名とディレクトリは status line に表示させたりしてたな。
zshで cd /u/l/b [TAB] で cd /usr/local/bin と補完する方法はありますか? あったら教えてエロい人!!
>>626 compinitか…。
多少マンドクサくても、compinit使わずにやりたいんですけど
無理かなぁ…。
古いマニュアル(compinitがない時代の)を見ると
complate_in_wordを追加して
bindkey "^I" expand-or-complete-prefix
compctl -D -f + -U -Q -K multicomp
とすれば
cd /u/l/bを補完できる と書いてあるんですが
zsh 4.1.1じゃ上手くいかない…。
何かが足りないのか、バージョンによる違いなのか…。
>>627 >>626 は「オプションは」と言っとるだろが。 setopt complete_in_word じゃないの?
あぁ、後半読んでなかった。確かに compinit 使わないとうまくいかない。逝ってきます。
zsh重すぎ こんなの常用してる香具師の気がしれんな。 シェル一個起動するの1秒〜3秒かかる。 ログインした後のzsh初回起動は5秒。 tcsh bash ksh なら、呼び出した途端に起動するというのに。
compinitが重い原因なのわかるが こいつがなきゃロクに補完もできないじゃないか。 compctlは設定まんどくさすぎ。 zsh最低。
Zsh 、良くも悪くも富豪シェル
shellなんてそう頻繁に起動するもんじゃないし、いいじゃないか。
634 :
名無しさん@お腹いっぱい。 :03/09/15 20:45
>>633 screen使うようになると、shellバンバン起動します。
あ、それともzshユーザーはshellは一個で我慢してるの?
>>634 まっとうな screen 使いはめったに shell 終了させないのでめったに起動もしません。
>>636 cd や lsにしかshell使わないならそれもいいだろうけど
フォアグラウンドで時間のかかる処理させてると
もう一個シェル欲しくなるのは人情というものではなかろうか。
zsh使い = cd lsだけで満足してる痛い人
という認識でよろしいか?
>>636 確かに1つは上げっぱなしだけど、screen の window をちょくちょく増やした
りしない?
>>638 まっとうなscreen使いはwindow1つです。
アタッチもデタッチもしません。
screen一つです。
まあ、ある意味zsh + screen使いは強者だな。 悪く言えば馬鹿なんだろうけど。
>>635 スクリプトとしてzshを使う場合
重い印象ないんだけどね。
メモリもそんなに喰わないし。
むしろ強力なファイル名生成機能が素晴しく使い易いんだが。
システムの中心を担うスクリプトには使わないけど
ユーティリティとしてのスクリプトにはzsh使うと
簡潔に書ける。
でも、compinitしてるときはわからん。
うちはcompinitしない主義なので。
別にシェルの起動が5秒短くなったところで、仕事の効率は変わらないよ。
>>642 それ、負け惜しみとも泣き言とも取れるんですが。
そんなこと言わずに、改善していきましょうよ。
5秒も待たされるこのイライラ。
俺は嫌でたまりませんね。
廃れゆくcompctlで頑張ってますが
いつ、まともに動かなくなるか。
screen+zsh だったらバックグラウンドで起動すればいいんじゃない? 確かに時間かかるけど、せっかくマルチタスクなんだからじっと待つ 必要はないわけだし。
zshで唯一 絶対的に他のものより優れていえる部分は ファイル名生成機能とコマンドラインスタックだと思う。 そのためだけに使ってるといってもいい。 (つまり、それほどの魅力がある) 補完なんか、tcshとそれほど変らないし 単語中の補完なんかはtcshの方が親切だったりする。 compinitで補完が完璧になるという手軽さも利点かもしれないが 当然重くなるというリスクもある。 最強 といえば最強なんだろうけど 相対的なバランスでいけば bashあたりが無難でいいと思う。 ログインシェルはtcsh スクリプトはbash とかもいいと思う。
>>644 zsh単体でもバックグラウンドでもいいと思うが
処理内容を表示"させたい"場合はバックグラウンドに回すと
えらい邪魔くさい思いをすることになる。
(プロンプトが表示されたと思ったら処理内容が流れてきて邪魔する)
フォアグランドで動かして、screenで別にWindowにして
そっちで続きの作業する。もしくは別の仮想端末立てて
作業を同時進行する。これもマルチタスクらしい使い方だと思うけど。
ただ、zshユーザーは、大事な処理内容は捨てるか、ファイルに落して
リアルタイムに監視したい場合も、我慢して処理終了後に確認するわけね。
普通にもう一つシェルを起動させればいいじゃない。 待ち時間が我慢できない人は他のシェルを使えばいいだけだし。
648 :
名無しさん@お腹いっぱい。 :03/09/15 21:32
そうです! zshは最強なんだから改善の余地などないのです!! どんどん機能盛り込んで重くなることこそが目的なのです!! 性能低いビンボー人は死ぬまでkshでも使ってなさい!!
zsh = Unix界のWindows
650 :
名無しさん@お腹いっぱい。 :03/09/15 21:42
age
もう夏休み終わったんだけどなー
夏休みが終ったからzshユーザーはいなくなったんですね。
653 :
名無しさん@お腹いっぱい。 :03/09/15 21:53
zshは最強だよ 間違いない 最強のシェル
>>641 compinitはふつー.zshrcでやるものなので、
スクリプト(=対話モードで起動されていない)
では実行しないのでは?
>>654 だね。
だからスクリプトとして実行するときは重くないわけだ。
まあ、kshやらbashからしてみりゃデカいが
zshでスクリプトやるのも面白いよ。
熱くなってるとこ悪いんだけど、zsh でも複数起動はできるんだよ。 確かに起動は遅いけど、待ってれば起動するんだよ。
657 :
名無しさん@お腹いっぱい。 :03/09/15 22:10
そうです!! zshユーザーはセッカチな厨房とは違うのです!! とにかく待つのです!!メモリをいくら消費しようとも気にならない寛大さがあります!!
煽るといろんな意見や本音が聞けて楽しい。
>>646 いや、screen で Create したまま放っておけばいいのでは、って後半に
書いてるね。誤解を招く表現でスマソ。
661 :
名無しさん@お腹いっぱい。 :03/09/15 23:41
zshユーザー必死
>>661 zsh スレで必死になるぶんにはええやん。
$ ps ax |grep zsh 1081 ttyp0 S 0:00 grep zsh $ time zsh -c 'autoload compinit;compinit;exit' real 0m0.239s user 0m0.070s sys 0m0.030s $ time zsh -c 'autoload compinit;compinit;exit' real 0m0.099s user 0m0.080s sys 0m0.020s $ time zsh -c 'autoload compinit;compinit;exit' real 0m0.100s user 0m0.060s sys 0m0.040s $ 試しに計測。0.3秒でした。
zsh + screen + nxt が最強
以前から起動に5秒とかいってるやつって、 100MHzぐらいのマシン使ってるの?
667 :
名無しさん@お腹いっぱい。 :03/09/16 11:38
対話的に実行される場合と スクリプトとして実行される場合の区別もつかない香具師がいるようです
WinホストのVMware内のFreeBSD + screen + zshでwindow増やすと HDDがスリープしてるときは、5秒ぐらいかかるね。
Cygwinのzshだけど、1秒以内で起動するよ
ちゃんとcompinitしてる? いいなぁ。
>>667 もしかして、
>>664 では compinit が実行されないと言うことですか。
ではどうすればいいのだろう。
time zsh -c '. ~/.zshrc;exit'
time kterm -e zsh -c exit
こんな感じ?
>>668 それは zsh の実行速度とは関係ないような...
screenで最初に3つぐらい起動しとけば、平均一週間くらいもつから起動時間 なんて気にしない。 echo $SECONDS 106345
漏れも screen 内に常時 5匹 zsh 飼ってて、 終了したり新たに立ち上げたりとかは滅多にしないので、 起動に時間掛かっても気にならないなぁ。
俺10匹.でもCtrl-Dでよく死ぬのでちょくちょく起動し直してる でもあまり気にならない.zshが古いからかな
ファイル名生成機能(というか**/)だけのために zsh 使ってるんですが 他に使えるシェルないですか?
>>674 3.0.5あたりか?だとしたら古過ぎ。
3.0.8みたいです.古すぎ?
>>679 それはならないみたいです.
ただ単純に連打しすぎるだけです.
使い慣れてないので,あまりバージョンによる違いがわかりません...
軽いならいっかな.
www.namazu.org/~satoru/diaryを真似して時間を測ってみた。 zsh -c "repeat 1000 ash -c ''" 0.39s user 0.75s system 25% cpu 4.460 total zsh -c "repeat 1000 bash -c ''" 0.88s user 1.79s system 24% cpu 10.816 total zsh -c "repeat 1000 tcsh -fc ''" 2.35s user 3.97s system 25% cpu 24.902 total zsh -c "repeat 1000 zsh -fc ''" 1.03s user 2.66s system 20% cpu 18.400 total
>>680 > ただ単純に連打しすぎるだけです
ignoreeofは?
> 使い慣れてないので,あまりバージョンによる違いがわかりません...
俺も長い間3.0.x系に留まっていたので最近の補完機能はわからん。
かといって当時書いた補完の設定を移植するのも面倒なので最近は
ファイル名生成({01..52}とかw)だけのためにzshを使っている。
4.0.4使ってるが、compinit 利用してても 1GHzマシンで1秒もかからんぞ。
連打するような状況のときは Alt + D しる
>>682 ^Dで終了するのも好きなので,まあたまに間違ってもいいかなあと
>>684 Alt+Dでどうなるの?
やってみてもzsh終了するけど.やり方が違うのか?
3.1.6あたりで、compinitせずに使うのが理想的かも 軽い軽い
ちなみに、compinitが正式採用されたのは3.1.6。 multicomp使いたいので、3.1.5にしようかと思ったら ラージファイルに対応してなかった。 vmware使ってるとデカいファイル扱うことがあるので ラージファイル必須。
zshだめぽ kshが最強です。
pdkshにzshにglobが移植できないものかと奮闘中 すげー難しいです。
ファイル名補完の順番を、カレントディレクトリのものを最優先 にするにはどうすればいいんでしょうか?
何もせずともカレントのものを優先してますが何か?
そうならないことがあるんですが。 CDPATHを設定しているせいでしょうか?
>>581 eval echo \$$hoge
eval echo $`echo $hoge`
eval $hoge=aaaa
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" と path=( /bin /usr/bin /usr/local/bin $path ) って結果が違うんだな
zshってutf8に対応してないの?
>>696 「対応」ってどのレベルの話を言ってる?
表示くらいしかないでしょ
>>696 ちがうだろ、
export PATH="/bin:/usr/bin" したあと
export PATH="/bin:/usr/bin:$PATH" を数回した$PATHと
path=( /bin /usr/bin $path ) を数回した$PATHを比べてみろ
スマン s/696/695/
>>700 重複が削除されるかのような書き方だが、
俺も結果は同じだった。
バージョンの違いかな。
$ zsh --version ~
zsh 4.0.7 (i686-pc-linux-gnu)
$ cmp =(zsh -c 'export PATH="/bin:/usr/bin:$PATH";echo $PATH') =(zsh -c 'path=( /bin /usr/bin $path );echo $PATH')
$
705 :
名無しさん@お腹いっぱい。 :03/09/24 17:43
for i (hoge) { echo $i } とかの{}の中で補完って効く?
スマン、typeset -U path してたからだ。
>>705 なぜかセミコロンを入れたら補間できるようになった。
for i (hoge) { ;echo $i }
% grep '^ls$' .zsh-history| wc -l 8283 % wc -l .zsh-history 36710 .zsh-history
lsとかcdとかをヒストリに入れたくないときは コマンドの前にスペースを入れたものをaliasしておくと良いよ。 alias cd=' cd' alias ls=' ls -F --color=auto' こんな感じ。 そうすればヒストリがcdとかlsまみれになることはない。
重複が嫌なら
typeset -U path PATH
typeset -U fpath
とか。
>>709 関連するsetoptは?
>>710 わすれてた
HIST_IGNORE_SPACE
これで行頭にスペースがあればヒストリに追加されない。
うちは、これくらいHIST関連のつけてる
setopt extended_history APPEND_HISTORY HIST_EXPIRE_DUPS_FIRST HIST_IGNORE_ALL_DUPS HIST_IGNORE_DUPS
setopt HIST_IGNORE_SPACE HIST_NO_STORE HIST_REDUCE_BLANKS HIST_SAVE_NO_DUPS
ヒストリが増えればその分メモリ食うようになるので
できるかぎり削ってくれるようにしてる。
一年ぶりくらいに見たらアホが常駐するスレになってますね。
>>712 =713が一番アフォな書き込みに見えるんだが
cygwinスレでも聞いたんですが反応が無かったのでこちらでも 伺わせて下さい. cygwin rxvtでzshを使ってるんだけど, exitとかせずに右上の×ボタンで 終了するとそのディレクトリにzsh.exe.stackdumpができるのは 私だけですか?
>>717 > cygwinスレでも聞いたんですが反応が無かったのでこちらでも
> 伺わせて下さい.
えらそう。
>>717 なんのスタックかわからないけど
次回のためにスタック保存してるんじゃないの?
憶測でもうしわけないけど。
#ディレクトリスタックかコマンドラインスタックくらいしかおもいつかない
>>720 Cygwin の *.stackdump ってのは core みたいなもんかと。
zsh のバージョンは何?
coreなのか。 ナルホド
zshのバージョンは4.0.6ですが, 前からこの症状は再現していたような気がします. 偉そうでスミマセン…
偉そうでごめんなさい って 「美しすぎてごめんなさい」 「天才すぎてごめんなさい」 みたいな
ひがみっぽくてごめんなさい
迷惑かけて、ありがとう
3べん回ってワンと鳴く
>>724 それなら「偉くて/偉すぎてごめんなさい」じゃねーか?
美しそうでスミマセン…
730 :
名無しさん@お腹いっぱい。 :03/10/11 16:14
おはようございます 2003/5月号 zshマスター 最終回 「compsysを利用した補完機能の設定」 どうでした? 呼んだ人感想キボン
viモードの場合、コマンドラインスタックってどーやるの?
適当なキーに割り当てなされ
733 :
名無しさん@お腹いっぱい。 :03/10/13 05:32
terminfo ファイルをホームの中に入れている場合、~/.zshrc の中で、export TERMINFO=$HOME/.terminfo みたいなことをやっても、zsh には反映されません よね。こういう場合どのように対処するのが zsh 流なのでしょうか? TERM=$TERM というのは無しとします。
質問の意味がよくわからん。なにが反映されないのか
>>734 試しに、TERM=noexist zsh で zsh を起動させると、カーソルの移動もままな
りませんよね。その後 TERM=xterm などとしてやることによって、カーソルの
移動が出来るようになります。
私の場合 root 権限を持たなにので、ホームディレクトリに terminfo をイン
ストールしているのです。で、.zshrc で、$TERMINFO を設定してやっても、既
に zsh が起動しちゃっているので、上と同じようなことになります。理解して
いただけたでしょうか。
ものすごく偉そうな教えて君ハケーン
zsh 使うならまず態度から、と考えているのだろう
これをえらそうだと感じるのは、よほど卑屈な思いをしているのか
というか普通に使えてるぞ
>>735 .zshenvに書いたらできたぞ。
export TERMCAP=$HOME/.termcap
export TERMINFO=$HOME/.terminfo
TERM=$TERM
ということで、 TERM=$TERM とするのがzsh流です。
>>741 > .zshenvに書いたらできたぞ。
.zshenv に書かなくてもできます。というか、.zshrc に書くべきでは?
>>38 > setopt:133: no such option: PRINT_CHEESE_BIT
うちではPRINT_EIGHT_BITで成功した。ちなみに4.0.4。
今頃ネタにマジレスとは…
750 :
名無しさん@お腹いっぱい。 :03/10/18 14:32
zshを使おうとしてみたのですが、tabでカーソルが進まないようにするにはどうしたら良いでしょう? bashではこんなふうにならないんですが。
ハァ?
%wh[tab] #whichを期待 %wh□
ありゃタブだめか %whi □ ってなるってこと?
ネタか。
>>754 うい。そんな感じ。
%wh[tab]
↓
%wh□ich
となって、ここでEnter叩くとちゃんとwhichは実行されます。
補完もされますが、見にくくてしょうがない。
確認とれました ネタですね
(´-`).。oO(「何か」ってなんだろう?) (((゚Д゚;)))ガクガクブルブル
760 :
名無しさん@お腹いっぱい。 :03/10/19 01:18
%[tab] ↓ %□ ってことじゃないの? これはうちでもなる
setopt zle じゃだめ?
.zshrcにはzshの挙動に関する設定を記述し, .zloginにaliasやpathなどの zshに直接関係ない設定を記述したのですが, screenを使うと.zloginを読み込んでくれません .zshrcには自分の使うマシンで共通にしたいと目論んでいたので aliasとかpathの設定は.zloginに記述したくなかったわけですが, .zloginではなく他の…例えば.zprofileに記述すべきですか?
あ,もしや .zshrcに source 〜/.zlogin を明示的に記述する必要あり? これならscreenを使っても問題ないわけですけど…
>>762 まずは man zsh して各ドットファイルの責務を確認しる。話しはそれからだ。
コマンドはまず /etc/zshenv を読みます; これは上書きすることはできませ ん。次のふるまいは RCS と GLOBAL_RCS オプションによって変わります; 前 者は全てのスタートアップファイルに作用し, 後者は /etc ディレクトリの中 のものにだけ作用します。もしいずれかのオプションがどこかの地点ではずさ れた場合,後に続くスタートアップファイルでそのオプションに対応するもの は全て読まれません。$ZDOTDIR ディレクトリにあるファイルで GLOBAL_RCS を再び可能にすることもできます。デフォルトでは RCS と GLOBAL_RCS はど ちらもセットされています。 その後, $ZDOTDIR/.zshenv を読みます。次に, もしシェルがログインシェル ならば, /etc/zprofile と $ZDOTDIR/.zprofile をこの順に読みます。さらに, もしシェルが対話的ならば, /etc/zshrc と $ZDOTDIR/.zshrc をこの順に読み ます。最後に, シェルがログインシェルならば, /etc/zlogin と $ZDOTDIR/.zlogin をこの順に読みます。
>>765 はman zshの一部を訳したものですよね
読み込む順序はUUで読んでいたので
>>762 のようなことをしようとしたわけです.
screenやXからターミナルを開くときもログインシェルとして扱ってくれるものと
思っていたのですが,どうやら挙動が若干異なるようですね
>>763 を記述しなかった場合でも,コンソールやリモートからログインしたときは
ちゃんと.zloginを読んでくれていたので安心していたのですが…
ログインシェルに関する挙動をもう少し調べてから出直してきます.
ありがとうございました
つい最近てめえでmakeしたscreen使うと 勝手にzlogin読みこんでムカついてた 一般ユーザのzloginにはstartxが書いてあるから。 Gentooのportageのscreenが4.0.1になってたので そっち入れなおした。 そしたらzloginよまなくなった。 ウマー
>>762 screenが起動するzshはログインシェルではないのでzloginは読ま
れない。screenをzshから起動したなら、環境変数は既に設定され
ているはずなので、わざわざ設定する必要はない。aliasはzshrcに
書くべき。
>>766 > 読み込む順序はUUで読んでいたので
>>762 のようなことをしようとしたわけです.
UU ってなあに?
uuencode
>>773 雑誌買ったことないんでしらんかった。すまそ。
連載、単項盆になるのかしらん。
zshネタだけで本作っても、あまり売れそうにない悪寒
778 :
名無しさん@お腹いっぱい。 :03/10/22 15:17
とりあえず一冊は売れる予定です 一冊のために本作る会社あるなら 是非見てみたい。
私も買うかも。
2冊 これじゃあ作っても大赤字だYO!
おいおまえら、ビックサイトロンにて売ったら買ってくれますか?
たのみこむ?
モロトミ ヤスミツ (ヨコチン大使) 体育館で自らヨコチンを曝け出し、「汚い」「触るな」と虐められ泣かされていた。 「先生。○○君がヨコチン大使って言うねん」と朝の会で皆の前で泣きじゃくっていた。 彼はまるで銀幕スターだった。銀シャリが食べたい。
~/.zshenv ってスクリプトとして zsh を使うときも呼ばれるんだっけ?
>>784 だな。 man zsh の STARTUP/SHUTDOWN を良く嫁。
>>785 んー、zsh script 書くときって、
#!/usr/local/bin/zsh -f
しといたほうがいいんでしょうか?
aho & disown とか nohup aho & とかやらなくても、 zsh を終了して aho が終了しない方法って、どうするんでしたっけ? 何かの zsh parameter を設定してできた気がするんですが。
setopt no_hup no_check_jobs これであーだこーだ言われずにjob残したまま zsh終了できまつ
おー、ありがとうご座意間酢丸
おそらく、zsh だと思うのですが、 % f=(/bin/*(:t)) % ${^f} はどういう意味ですか?
791 :
名無しさん@お腹いっぱい。 :03/11/04 06:36
zshをログインシェルにして X立ててない状態でviやEmacsでファイルを開くと画面がおかしくなります。 文字化けじゃなく画面全体がおかしくなるんです。 これを直すにはどうしたら良いでしょう。 FreeBSD 4.9-RELEASE portsよりzsh-develをインストール
793 :
名無しさん@お腹いっぱい。 :03/11/09 15:29
お前らもう萌え終わったのかYo! そんな俺にssh*でホスト名を補完する際に ~/.ssh/known_hosts からホスト名を参照する方法を教えてください
>>793 つーかうちの zsh タンは特に何も設定せずに最初から補完してくれてるが?
>>794 ウチのzshはどーやら /etc/hosts から補完してくれてるっぽいんだが、
何か特殊な設定した?
>>793 >>795 ああ、ごめん!何も設定してないことなかった。こんなん設定してた。
正規表現とか適当なので変なとこあったら適当にいじってちょ。
rehash_cache_hosts() {
_cache_hosts=(`awk '{ sub(/[^A-Za-z0-9.:-].*/, ""); print }' ~/.ssh/known_hosts* | sort | uniq`)
}
rehash_cache_hosts
>>794 はネタです
>>795 _cache_hosts=(`perl -ne 'if (/^([a-zA-Z0-9.-]+)/) { print "$1\n";}' ~/.ssh/known_hosts`)
あ、IPv6 リンクローカルアドレスが補完できなかったんで、正規表現のとこはさらにこうしてた。
_cache_hosts=(`awk '{ sub(/[^A-Za-z0-9.:%-].*/, ""); print }' ~/.ssh/known_hosts* | sort | uniq`)
>>797 すまんです。しかもかぶってるし・・・
_cache_hosts というのがホスト名補完に関わる変数になるのですね これらのあらかじめ宣言されている変数を理解すれば, なんとか自由に補完を楽しめるようになるかなぁ
/usr/share/zsh/*/functions/Completion/**/_hosts に定義されている
zshを理解するのも一苦労だな…
802 :
名無しさん@お腹いっぱい。 :03/11/11 20:47
だれか、man zsh* を日本語に訳してくれ あれだけの英文を読みとおすのは、つらい ユーザー会とかないの?
hoge1の中のファイルを入力したいとき %cat hog<TAB> Completing files hoge0/ hoge1/ hoge2/ ↑ここで2回補完すると↓こうなります。 %cat hoge1/ Completing files hoge0/ hoge1/ hoge2/ ここでもう1回補完するとhoge2になってしまします。この状態で hoge1の中のファイルを補完するにはどうすればいいですか? 今ま では一文字入力してバックスペースで消してから、補完していたの ですが、いい方法ありませんか?
>>804 別のキーに complete 系のコマンドを割り当てておいて、hoge1/ になった
ところでそっちのキーで補完するとか。
自分は、setopt NO_AUTOMENU とした上で C-o に menu-expand-or-complete を
割り当て、メニューコンプリートは明示的にするようにしているけどね。
zsh のデフォルトの動作は性に合わなかった。
>>804 /を押す。
いや、BSが要らなくなるだけだが。
おまえら、素人、通は C-/
>>806 804じゃありませんが
setopt autoremoveslash を使っているという前提の技ですよね?
811 :
名無しさん@お腹いっぱい。 :03/11/18 07:45
ZSHの本を執筆中らしい。
Yes, Jerry Peek, Oliver and I are collaborating on a book to be
published by Apress sometime, I imagine, in the first half of next
year. We may be asking for informal reviewers at some point, though the text probably needs drawing together a bit before then.
I think Apress are planning to announce its official forthcomingness in December.
アナウンスされるとしたらこのページか?
http://www.apress.com/book/forthcoming.html
kterm+zshで日本語が化けます。 % echo 死ね とか入れると、 「ね」が消えて「死」しか出てきません。 tcshだときちんと表示できます。オラのdotfileが間違ってるんでしょうか?
>>812 俺はならねーぞ。なんかおまえのやつのほうが
命令に忠実で羨ましいぞ。
自己解決。 .zshrcのbindkey -m をコメントアウトしたら桶でした。 他人の腐った.zshrcを参考にしたのがいけなかったのか?
>>814 > .zshrcのbindkey -m をコメントアウトしたら桶でした。
(゚Д゚)ハァ?
screen のスレを読んでいて、以前
>>486 を書いたものの結局使わなかったなと思いつつ、
よく考えたら screen 内で動いている zsh を前提にすれば話が簡単だということに気付いた。
こんな感じでどうでしょう。
#
# $ZDOTDIR/.zsh/dabbrev
#
HARDCOPYFILE=$HOME/tmp/screen-hardcopy
touch $HARDCOPYFILE
dabbrev-complete () {
local reply lines=100
# screen -X eval "hardcopy -h $HARDCOPYFILE" # scrollback buffer の内容も含む場合
screen -X eval "hardcopy $HARDCOPYFILE"
reply=($(sed '/^$/d' $HARDCOPYFILE | sed '$ d' | tail -$lines))
compadd - "${reply[@]%[*/=@|]}"
}
zle -C dabbrev-complete menu-complete dabbrev-complete
bindkey '^[/' dabbrev-complete
bindkey '^[^_' reverse-menu-complete
あとは .zshrc に例えばこんな風に書いておけばいいか。
if [[ -n $WINDOW ]]; then
source $ZDOTDIR/.zsh/dabbrev
fi
scrollback buffer の内容も利用する場合は、適当に行数を増やした方がいいでしょうね
まだわかってないみたいです
819 :
名無しさん@お腹いっぱい。 :03/11/21 00:10
>>818 >>819 ちょっとだけ理解したぞ。
オラは0.1oぐらいでも前に進もうと思う。
-真面目な感想-
シェルを馬鹿にしてた。悔しいけど。
>>816 taiyaki.org の小松さんが、似たようなものを書いてた気がする。
>>821 >>486 は
>>474 を受けて書いたもので、小松さんのが元になってます。
ただ script を使うので、ログが膨れ上がりやすいとか使い勝手がいまいち
なので常用することはなかったのです。
>>816 のままでは、余計な句読点や括弧類がつくことが多いので、手元のでは
もう少しいじってます。多分、使うことがあっても一日に一回あるかないかだと
思いますが、使いたいときに使えるのはいいものです。
>>822 あー、ちゃんと追ってなかったです。ごめん。
*(@)でシンボリックリンクを生成できるけど、リンク先が存在しな いシンボリックリンクだけを生成することはできますか?
出きます。
うそにきまってるだろ
リンクはったあとにリンク先消すんでない?
824の使っている日本語が、言いたいだろうことと全然違うので、 どんな答があっても不思議じゃないと思うが。 前提が偽ならどんな命題も真となるのは論理学の教えるところ。 「*(@)でシンボリックリンクを生成できる」って、字義通りに解釈したら 成り立ってないだろ。824はもうちょっと日本語作文を練習すれ。 慣れない言語で意図通りの文を作るのはそれなりに大変かも知れないが。
*(@^-./) で出来るかと思ったらシンボリック先がsocketsとかの時にダメだったので *(@^-./=p%) 短くできないかと思ってl[-|+]ctで*(-l0)も試したけど残念ながら無理でした。
833 :
名無しさん@お腹いっぱい。 :03/12/03 15:08
neta naipo? age
新世代のスーパーハカーの皆さんはやはり zsh 何でしょうか?
スーパーハカーはshell程度でピーピー騒ぎません 「やっぱりハカーはzshじゃなきゃね♪」とか言っちゃう香具師は モドキですモドキ
最近のzshはsegvしなくなりましたか?
3.1.6使ってますが、segvしませんよ
4.1.1使ってますが、segvしませんよ
>>839 ラージファイル対応だし
最近のより軽いので
4系はやめてこっちに以降しますた。
841 :
名無しさん@お腹いっぱい。 :03/12/10 13:58
screen や sudo といったコマンドの引数はalias展開(?)させる といったことはできますか。 たとえば、 alias mutt='env LANG=ja mutt' で % screen mutt とかやりたい。 もしくはなんかプレフィックスおくとalias展開してくれたりはしない? % screen #mutt みたいな感じで。
sample の .zshrc くらいよんでくれ。
>>842-843 global aliasってやつですか?
でもこれだとどこでも展開されちゃうじゃないですか。
それってちょっとこわくないですか?
sudo と screen の後だけやりたいです。
845 :
名無しさん@お腹いっぱい。 :03/12/11 00:52
ウザィ
>>844 global alias を使わなくてもできる
setopt auto_pushd pushd_ignore_dups ↓ export DIRSTACKSIZE=15 ↓ ch(){ builtin cd $* } ↓ chpwd(){ compctl -g "`dirs`" + -/ ch } ↓ % ch [TAB] ↓ ウマー(゚д゚) aliasのgdに比べると履歴順じゃないのと ~/ が /home/???? になるのが致命的かなぁ。 補完がぐりぐり動くヤシ(例のこれ↓) setopt auto_menu autoload -U compinit; compinit zstyle ':completion:*:default' menu select=1 と併せて使ってると中々イイ感じ。
どうせ compinit を使うのなら cd -[TAB] の使い勝手の方がいいような。履歴の使い廻しがあまり利かないのが難点だけど。
>>849 > aliasのgdに比べると履歴順じゃないのと
なに?
>850 ch -[TAB] _| ̄|○ …シランカッタ サンクスコ >851 zsh gd でググれ。 compinit あれば要らんけど。 compctlてとっくにobsoleteなのね…見てたWebが古過ぎますた。 履歴の先へ潜ったり少しだけ名前の違うディレクトリにいきたいときくらいか。 入門スレ1から出なおしてきまつ。(;´Д`)
>>852 > zsh gd でググれ。
ハァ?個人的な設定だから聞いとるんだろうが、このバカチンが。
少くとも、manual にはのっとらんだろうが、このばかちょんが。
zsh 使うやつは屑が多いな。 レスのやり取りでわかる。
すんません。 特定のキー動作にシェルスクリプトを割り当てたりとかできますか? "C-c C-c"とかに割り当てるとかなんですが...
よくわからんがシェルスクリプトに限るのか? 例えば Esc-C-o で ls を実行したければ bindkey -s '^[^o' 'ls\n' などとすればいいけど
>>856 いや、教えてくださった方法で問題ないです。
ありがとうございました。助かりました。
cdで補完対象をdirectoryだけにしようと思って、 compctl -g *(/) cd したところ、.で始まるdirectoryが補完できなくなっちゃいました。 .から始まるものも含めてすべてのdirectoryをcdの補完対象にするには どうすればいいでしょう?
>>858 compctl じゃなくて compsys 使ったらどうでしょ。
autoload -U compinit compinit だけで良いはず。
自分とこははこれで .から始まるディレクトリも
補完候補に出ます。
もちろん、ディレクトリ以外は候補に出ません。
メモリどか食いするので嫌
compctl -g '*(/) .*(/)' cd
今まで馬鹿馬鹿しくて誰も答えなかったのか(w
zsh は簡単なスペルチェックとかもしてくれるんですね。
860は資源の有効活用という言葉を知らないんだろうきっと。 貧乏性なのかな
>>864 zshの魅力は補完だけじゃないのよ
globのためだけに使ってる。
補完はtcsh程度にできればいいや → compsys巨大すぎ 必要ないのも混ってる
し無駄 → じゃあcompctlで → 設定まんどくせ
tcshは設定楽でバリバリ補完できるのに、zshはまんどくさい 楽しようとする
とバカみたいにメモリ食う 起動遅い screenを愛用してシェルを湯水のように
使う身としては、それはイタイ。
tcshはglobが貧弱。 そもそもc shellが気にいらない。
kshの補完みたく、ファイルの拡張子みないでテキトーに補完にしてくれるだ
けでも十分。
むしろ勝手に判断して、必要なものが補完されなかったり
不要な物が補完されたりするのがウザい。
そのくせメモリ食い。バカじゃないかと思う。
誰がそんなもん使うか。
>>864 資源の無駄使いが好きな香具師はWindowsでも使えばよろし
compctlの定義と自作関数の定義でzshrcが埋めつくされて メモリもバカ食い 起動も激遅になったら compsysのありがたみがわかる。 ただ、そうでもなければ compsysみたいな重いものつかわなくても幸せになれる。
zsh は ウ ン コ !
モード行っていうの?コマンドを入力するところ。そこに 日本語を何文字か入力してからバックスペースで削除する と1文字ずつちゃんと消せなかったり、プロンプトまで消 されちゃったりして困るんだけどこれって解決法あります か?
パッチを書く
>>871 おお。さんきゅー。パッチあててみます。
>>872 うまくいきました。
wiki に書いておいたほうがいいかな?
1000get
>>811 > I think Apress are planning to announce its official forthcomingness in December.
いまは1月ですが?
偉い人教えて。 対話式のシェルで動作させているとき、標準エラー出力だけを常に色つき(例えば赤)で 表示させることって、zsh のようなシェルで出来るの? ぜひうちの zsh でやってみたいんだが。
>>876 エラーが発生したら色眼鏡をかけるとか。
モニタに赤セロハン貼っとけ。
>>877 その、「フィルタ書いて常に使う」っていうのが、
どのように設定すればいいのかイメージできないんですが。
>>879 それじゃ全部エラー出力に見えます。
簡単にやるとしたらこんな感じかな。ただ、端末周りを扱うプログラムで支障が あるかもね。 % cat ./tored tored () { local line while read line; do print "\e[31;1m$line\e[0m" done } % source ./tored % perl -e 'printf STDERR "this is stderr.\n"' this is stderr. % perl -e 'printf STDERR "this is stderr.\n"' | tored this is stderr. % perl -e 'printf STDERR "this is stderr.\n"' 2>&1 | tored this is stderr. % exec 2> >(tored) % perl -e 'printf STDERR "this is stderr.\n"' this is stderr. # 色は省略しています
876の宿題が…
876は納得したのか
>>883 いや、出来てないです。
すみません、遅くなって。
まだ自分自身の試行錯誤が足りないようです。
881に書いてあるやん
887 :
名無しさん@お腹いっぱい。 :04/01/31 23:35
stdoutの最後に改行がついてないとき、最後の行が消えます。 % echo -n 'foo' % みたいな。 どうすればいいでしょうか?
zshの拡張ファイル名生成機能を使って ある文字列を含まない名前を選びだすことって出来ますかね? カレントディレクトリ以下にある物を列挙する場合 echo * hoge huga foo bar その中からhoge hugaだけを除きたい場合(zsh 3.1.xで使えてた方法) echo *^(hoge|huga) なぜか4.x.xではこの方法が使えなくなってしまって こうしても、hoge hugaは除外されずに表示されてしまいます。
~
>>890 では駄目なのだよ
かといってブラケットで囲むのもだめ
正規表現もだめ
なぜか文字列の扱いがダメになってるのでどうしても必要なら
perl使え
*~*hoge*~*fuga*
>>892 サンクスコ
逐一入力するのがマンドクサそうなので
スクリプト化して使うことにしまつ
echo ^*(hoge|huga) じゃないのか
あるいは echo *~(hoge|huga)
>>895 > echo ^*(hoge|huga) じゃないのか
また、新しい、shell を実装してしまった人が出てきたようですね。
option の設定によって挙動が違うんじゃないのか
拡張ファイル名生成機能 extended glob と明記されてるから大丈夫 ksh互換モードにしてたらシラネ。 パターンに影響及ぼしそうなオプションは他にないからね。
> echo ^*(hoge|huga) これは冗長だった。 echo ^(hoge|huga) でよかった
>>900 は文字がよめない
もしくは3文字タイプしたら1つ前のレスの内容を忘れる
なんだ、この噛み合ってないやりとりは(w
$ setopt extended_glob $ echo ^h* bar foo $ unsetopt extended_glob $ echo ^h* zsh: no matches found: ^h*
<0-5> みたいなグロブって、桁数は関係ないのね。 ちょっとはまった。
そういうこともあって、もっぱら{m..n}のファイル生成を使っている
ごめん、桁数は関係ないってどういう意味? % touch 1 2 3 4 12 23 45 67 123 345 ~/s % ls <0-5> ~/s 1 2 3 4 % ls <0-15> ~/s 1 12 2 3 4 % ls <0-100> ~/s 1 12 2 23 3 4 45 67 これで期待通りなんだけど。
あ、後ろの ~/s は RPROMPT なので無視してください。
% touch 001 2 003 4 05 % ls <001-005> # 001 と 003 だけ出てほしい 001 003 05 2 4 こんな感じ
>>908 ありが
その例では
% ls 00<0-5>
でいいけどね。
3桁の数字にマッチさせるのはこうかなー
% ls <0-9><0-9><0-9>
こうでもできた
% ls <-><-><->
> ls 00<0-5> > ls <0-9><0-9><0-9> > <-><-><-> どれも同じ話だが、既出のように 0004 なんかも含まれてしまうし、 一番下は何桁でもマッチしてしまう。 数字3桁の globbing は [0-9][0-9][0-9] とでもするしかないのでは。
> 一番下は 真中もだった
全然理解してないことがばればれですた。 <0-9>は0から9までにマッチするが 前に0が1個以上ついていた場合それも含める 例えば 1 01 001 0001 <0-9><0-9><0-9>はそれが3個なので 3000040001とかにもマッチしてしまう <-><-><->は3桁以上のすべての数字にマッチ であってるよね?
globに、migemo使えたら便利な事もあるかも。 % echo path/to/%M|nihongo|.mp3 みたいな感じで。 # 表記法に関するツッコミは無しでたのむ。
それで何とechoされることを期待してるの?
path/to/日本語.mp3 じゃない?
あ、globだから、そこにあるファイル名しだいか。 場合によっては path/to/にほんご.mp3 path/to/ニホンゴ.mp3 path/to/日本語.mp3 ね。重そう。
>>916 そういう関数書いて
内部でperl使って上手い事ごまかせばいけるかも
migemoを使って素直にできるかどうかはわからんわ
919 :
名無しさん@お腹いっぱい。 :04/02/08 22:48
誰かGentoo Linuxのportage用の補完コマンド書いてくれませんか? 自分でやろうとしてもわからないんで。 希望としては emerge net-www/mozilla さらには emerge net-www/mozilla/mozilla-1.4.1.ebuild のように カテゴリ/名前(/バージョン) みたいに出来ると良いです。
>>918 Gentooスレに行け
/usr/share/zsh/site-functions/_portage
ついでにこれも読め
誤爆すまん
>>924 ○
ノ|)
_| ̄|○ <し
○ <ダメ人間
ノ|)
_| ̄|○ <し
UNIX USER あんまり買う気はしない雑誌だけど、zshの連載があったから気になる。 なんで UNIX USER のDVDは「特集」しか収録してないんじゃ? っと、こんなところで言うことでもないか。
ls -1 |egrep `echo $1 |migemo -t egrep /usr/share/migemo/migemo-dict` こういうことすると $1 のローマ字に対応する file のリストを migemo で抽出できるんですが、 これをうまく使えば zsh で migemo 補完が可能になると思います。 が、zsh の補完のメカニズムがさっぱりわかりません。 _w3m などいくつか参考にしてみましたが、どうも全体像が理解できませんでした。 僕もこれからいろいろ調べるつもりですが、 どなたか詳しい方、ささっと枠組でも作って下さったりしないでしょうか。
死ね
いやあ、面白いアイデアだと思ったんで、 自分で実装できなくても誰かやる人いないかなと思ったんで。 くれくれ君に見えたんならすみません。
てゆーか何に使いたいの? % ls -1 |egrep `echo $1 |migemo -t egrep /usr/share/migemo/migemo-dict` 使用法: grep [オプション]‥‥ 文字列パターン [ファイル]‥‥ 詳しくは`grep --help'を実行してください。 % となるが
いや、ファイル名の補完に使いたいのだろう、それは
>>930 $1 の所に何か文字を入れなきゃ駄目です。
例えば
% ls -1
あいうえお.sh
愛人.txt
aiko.dic
aho.max
baka.mix
というディレクトリでは、ai という文字で補完すると
% ls -1 |egrep `echo ai |migemo -t egrep /usr/share/migemo/migemo-dict`
あいうえお.sh
愛人.txt
aiko.dic
こういう結果が出ます。この出力を補完のリストに使えないかということです。
% cat ai(ここで C-i すると)
% cat ai
あいうえお.sh 愛人.txt aiko.dic
こんな風に補完の候補が出るような。
僕個人は日本語ファイル名はほとんど付けないんですが、
単にできたら面白いなと思っただけです。
あぁ、migemoつきemacsのdiredモードみたいに使いたいわけね
927製の zmodload migemo 待ちsage
できなくはなさそうですが、
C-i するたびに補完のリストを動的に作り直す必要があるので、
単純に compadd では駄目みたいです。
compadd 以外のやり方を知らないので、つまってます。
あと補完の候補が複数ある時、
% cat ai
あいうえお.sh 愛人.txt aiko.dic
こういう出力を期待してましたが、
% cat ai
\M-5\M-k\M-N\M-A\M-7\M-W\M-;.sh \M-5\M-k\M-N\M-A\M-7\M-W\M-;.txt aiko.dic
こんな風に出てしまう。これは zsh を直さないと無理っぽいです。
>>933 emacs の shell とか eshell とかでならもっと作りやすいかも知れません。
でも自分は shell-mode 使わないからなあ。
後者は setopt printeightbit という話じゃないの
おー、すばらしい。
おー、すばらしい。ありがとう。
うわさの zsh 本はどうなったの?
940 :
名無しさん@お腹いっぱい。 :04/03/02 03:35
~/hoge/foo.log ~/hoge/foo.error ~/hoge/foo.today ~/hoge/foo.yesterday というファイルを元に動く bar というコマンドがあって、 $ bar log $ bar error $ bar today $ bar yesterday という風に foo を無くした引数を指定します。この引数を補完させたいのですが 何か良い手はありませんでしょうか? zshの補完機能は便利だけどややこしいですね。
至極単純にやるとすれば、こんな感じ。 _bar () { compadd ~/hoge/foo.*(:t:e) } compdef _bar bar
なるほど。ありがとう。 精進します。
compaddってググっても殆ど情報ないんだが マイナーなのか?
というかzsh自体、評判の割に日本語の情報が全然ないと思う。 自分が書ければ書くんだけど、compaddとか分からんからなぁ
UnixUser の連載の記事は、compsys を見通すには、なかなかまとまっていて 丁度良かった。
a
http://pc.2ch.net/test/read.cgi/unix/1075033822/548 > これ以上はzshスレで。
えーと、やりたいこと書きますね。=() は知っていますけど、この場合は使え
ませんよね。
#! /usr/local/bin/zsh -f
cd /service/smtpd/log/main
TODAY=`date -d yesterday +%Y-%m-%d`
WORK=(make-temp-file "/tmp/work")
grep -h SBL *.s current | tai64nlocal | grep $TODAY > $WORK
echo >> $WORK
grep -h SBL *.s current | tai64nlocal | grep $TODAY | gawk '{ print $4 }' | sort -nu | dnsfilter >> $WORK
for i in `grep -h SBL *.s current | tai64nlocal | grep $TODAY | gawk '{ print $4 }' | sort -nu`; do
echo >> $WORK
echo % whois $i >> $WORK
whois $i >> $WORK
done
mailsubj "[rblsmtpd] $TODAY"
[email protected] < $WORK
rm -f $WORK
948 :
名無しさん@お腹いっぱい。 :04/03/19 22:50
ついでに、4.2.0 age
要は一時ファイルくらいを作ってほしいということなのか。 zsh は関係ないな
emacs の with-temp-buffer とか便利だよね。 まあ shell では自分でウニクなtmpfile 作る function 作ればいいんじゃないの。
>>947 > えーと、やりたいこと書きますね。=() は知っていますけど、この場合は使え
> ませんよね。
? 素直に使えるよ?
> WORK=(make-temp-file "/tmp/work")
ちゃんと理解しているならこうはしないと思うけど。
#!/usr/local/bin/zsh -f
WORK==(true)
echo WORK=$WORK
echo hoge >> $WORK
echo moge >> $WORK
echo ---
cat $WORK
echo ---
# rm -f $WORK
あと、ふつうはこういうのはパイプでつなげるね。 ( grep ほにゃらら grep はにゃらら てんてんてん ) | mailsubj なんとやら てな具合に。
あーん、今さっき、間違えて $HOME 以下をすべて消してしまったよう。 せっかく確認のプロンプトが出たのに、反射的に y 押しちゃった。 深刻な被害は無かったけど、こんな僕のためにも確か、 rm * コマンドを cp * /tmp/trash に変えてくれるようなscript か alias があったはず。 誰かスマートなサンプルを頼む。 出来れば、/tmp/trash/20040321_010023/* とかに cp されるほうが良い。
>>953 こんなかんじか?
function rm {
mkdir -p /tmp/trash`date +%m%d`
mv "$*" /tmp/trash`date +%m%d`
}
>>954 いえ、rmstar すら効かなかった馬鹿者なんです、私。
>>955 なるふぉど、いただきますです。
>>956 date の引数適当なので、好みに修正してね
cp しても意味ないのでは?
>>959 あ? 知的障害者か? rm のかわりに、cp じゃ意味ないだろって意味なんだが??
誰もcpしてないじゃん
>>955 が適切にmvで書いて
それを戴いたと
>>956 が言ってんだからそれで終りでいいじゃない。
今更ツッコミ入れる
>>960 は陰険
>>961 > 誰もcpしてないじゃん
>>953 > rm * コマンドを cp * /tmp/trash に変えてくれるようなscript か alias があったはず。
> 出来れば、/tmp/trash/20040321_010023/* とかに cp されるほうが良い。
それを真に受けた馬鹿が居なかったんだからそれでいいじゃん って言ってもわからんか。 いつまでも粘着したいのね。 たち悪いなぁ。
結果的に誰もcpしなかったんだから わざわざツッコム必要なかったんでないのってことじゃねーノ
最初に cp って書いた私が悪いんです。 すんませんでした。 では、次の話題へ。
陰険な粘着は以後放置の方向でよろしく
最近 bash から zsh に乗り換えたのですが zsh の恩恵が実感できる処理方法を御教え頂けたらと
971 :
名無しさん@お腹いっぱい。 :04/03/21 03:21
>>969 やはり2chなどクズの巣窟だなw
俺の質問に答えられない歯がゆさから三流の煽りをしなくてもいいぞ
お前は世の中に必要とされていない人間だからな。
そういや、もう春休みだね
だから
>>971 みたいのが夜中まで頑張ってんだなぁ
× 同レベル ○ 役立たず すまそ。
>>977 だったら何? bash しか使えない低能がw
981 氏の職業ってなに?
ケアマネ
986 :
名無しさん@お腹いっぱい。 :04/03/22 02:20
,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ
987 :
名無しさん@お腹いっぱい。 :04/03/22 02:21
,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ
988 :
名無しさん@お腹いっぱい。 :04/03/22 02:22
,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ
989 :
名無しさん@お腹いっぱい。 :04/03/22 02:23
,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ
990 :
名無しさん@お腹いっぱい。 :04/03/22 02:24
,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ
991 :
名無しさん@お腹いっぱい。 :04/03/22 02:25
,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ ,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ ,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ
992 :
名無しさん@お腹いっぱい。 :04/03/22 02:26
,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ ,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ ,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ
993 :
名無しさん@お腹いっぱい。 :04/03/22 02:29
,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ ,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ ,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ
994 :
名無しさん@お腹いっぱい。 :04/03/22 02:31
,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 ,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 ,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 ,..-‐−- 、、 ,ィ":::::::::::::::::::;;;;;:ii>;,、 /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li ヽ '' .:/ > ‐- 、、ノ /:::::::::::::::;;;;;;;;iii彡" :ヤi、 i::::::::::::;:"~ ̄ ::i||li |:::::::::j'_,.ィ^' ‐、 _,,. ::iii》 |:::i´` `‐-‐"^{" `リ" ヾ;Y ,.,li`~~i `i、 ・=-_、, .:/ ヽ '' .:/ > ‐- 、、ノ difficult!!
995 :
名無しさん@お腹いっぱい。 :04/03/22 02:32
abc
996 :
名無しさん@お腹いっぱい。 :04/03/22 02:34
/::::::::::,,:::::::::::::::::::::ヽ /:::::::::::,,,::::::::::::::::::::::::::::::ヽ /::::::::::::::,,,,:::::::::::::::::::::::::::::::::::ヽ、 |::::::/⌒ ^ ⌒ \:::::::::::::::::::::::::ヽ. |:::::| /ヽ::::::::::::::::::::::| |:::::|\ / ヽ::::::::::::::::::::| ヽ:::|<(| こ(> \|ヽ:::::::::| .. ヽ| h J:::::::::| . \ L ヽ::::::/ . \ー―┘ |:::/ __\__/ /V_____ /;;;;;;;;;/ く / ∧;;;;;;;;;;;;;;;;;;
997 :
名無しさん@お腹いっぱい。 :04/03/22 02:35
/::::::::::,,:::::::::::::::::::::ヽ /:::::::::::,,,::::::::::::::::::::::::::::::ヽ /::::::::::::::,,,,:::::::::::::::::::::::::::::::::::ヽ、 |::::::/⌒ ^ ⌒ \:::::::::::::::::::::::::ヽ. |:::::| /ヽ::::::::::::::::::::::| |:::::|\ / ヽ::::::::::::::::::::| ヽ:::|<(| こ(> \|ヽ:::::::::| .. /::::::::::,,:::::::::::::::::::::ヽ /:::::::::::,,,::::::::::::::::::::::::::::::ヽ /::::::::::::::,,,,:::::::::::::::::::::::::::::::::::ヽ、 |::::::/⌒ ^ ⌒ \:::::::::::::::::::::::::ヽ. |:::::| /ヽ::::::::::::::::::::::| |: /::::::::::,,:::::::::::::::::::::ヽ /:::::::::::,,,::::::::::::::::::::::::::::::ヽ /::::::::::::::,,,,:::::::::::::::::::::::::::::::::::ヽ、 |::::::/⌒ ^ ⌒ \:::::::::::::::::::::::::ヽ. |:::::| /ヽ::::::::::::::::::::::| |:::::|\ / ヽ::::::::::::::::::::| ヽ:::|<(| こ(> \|ヽ:::::::::| .. ヽ| h J:::::::::| . \ L ヽ::::::/ . \ー―┘ |:::/ __\__/ /V_____ /;;;;;;;;;/ く / ∧;;;;;;;;;;;;;;;;;;
998 :
名無しさん@お腹いっぱい。 :04/03/22 02:36
/::::::::::,,:::::::::::::::::::::ヽ /:::::::::::,,,::::::::::::::::::::::::::::::ヽ /::::::::::::::,,,,:::::::::::::::::::::::::::::::::::ヽ、 |::::::/⌒ ^ ⌒ \:::::::::::::::::::::::::ヽ. |:::::| /ヽ::::::::::::::::::::::| |:::::|\ / ヽ::::::::::::::::::::| ヽ:::|<(| こ(> \|ヽ:::::::::| .. ヽ| h J:::::::::| . | \ L ヽ::::::/ . \ー―┘ |:::/ __\__/ /V_____ /;;;;;;;;;/ く / ∧;;;;;;;;;;;;;;;;;;
999 :
名無しさん@お腹いっぱい。 :04/03/22 02:37
test
1000 :
名無しさん@お腹いっぱい。 :04/03/22 02:37
\\___finish///
1001 :
1001 :Over 1000 Thread
このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
やほ♪
1003 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。