zsh入門 パート2 ..
[2ch|▼Menu]
581:名無しさん@お腹いっぱい。
03/09/05 18:57
hoge=fuga
fuga=hage
のときに
$hogeの値を評価してhageを得る方法を教えてください。

582:名無しさん@お腹いっぱい。
03/09/05 18:59
不便って程のこともないだろ。
左プロンプトが長くなりすぎないように、右プロンプト表示させたり
そんな程度だろ。

まあプロンプトも改行できる事を知れば、わざわざ出たり消えたりする
ウザい右プロンプト使うのも馬鹿らしくなるさ。

そんな事言いつつも、コマンドの返り値を表示させてる俺。

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%}'

583:名無しさん@お腹いっぱい。
03/09/05 19:03
なんか、右側だと右に目をやらなくちゃならいないのが鬱陶しくないですか?
慣れの問題なのかな


584:名無しさん@お腹いっぱい。
03/09/05 19:05
そんなに画面広いん?
あ、Xの仮想端末使わないでコンソールオンリー?
フレームバッファで、だだっ広く表示してたら確かに目疲れるわな。

わざわざ、右に表示するくらいなら
改行いれて二段で表示しる。

585:名無しさん@お腹いっぱい。
03/09/05 19:16
仮想端末をフルスクリーンに広げて使ってるけど
RPROMPT='[%~ %*]' にしてる。

プロンプトを2行にするのも試してみたけど自分にはいまいち合わなかった。

586:名無しさん@お腹いっぱい。
03/09/05 19:21
>>585
慣れないうちは、俺もウザいと思った>改行


587:名無しさん@お腹いっぱい。
03/09/05 19:35
>>582
setopt print_exit_valueで非0のコマンドの返り値を表示してくれる。

bashの$#はないのか? 現在のシェルでのコマンド数ってやつ。

autoload promptinit
autoload prompt
promptinit
prompt clint
3行のプロンプト

588:583
03/09/05 19:36
>>584
いや、X 上のターミナルです。
結構幅を狭くしても気になっちゃうんだよね。
二段も試したけど、いちいち二行占有されるのがうっとうしくて。

俺には向いてないって事なのか、、



589:名無しさん@お腹いっぱい。
03/09/05 19:38
>>587
%!

590:名無しさん@お腹いっぱい。
03/09/05 19:40
>>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は独り善がりな基地外なんですよ キモイ 死ね

594:名無しさん@お腹いっぱい。
03/09/05 21:18
(´-`).。oO(カッコつけて二行にするのはなんでだろう?)

595:名無しさん@お腹いっぱい。
03/09/05 21:18
(´-`).。oO(2行ってかっこいいのか?ダセーよキモイし)

596:名無しさん@お腹いっぱい。
03/09/05 21:19
(´-`).。oO(>>582はキモヲタ)

597:一行でも二行でもなんでもいいだろが
03/09/05 21:21
なんかウザいのが粘着してるな
zshユーザーってこんなのばっかりなのか?

598:名無しさん@お腹いっぱい。
03/09/05 21:25
本当に本が欲しいところ。ハァァ…

599:名無しさん@お腹いっぱい。
03/09/05 21:26
>>597
ウザくない奴は書き込まないから、こういうのばかり目立って
zshユーザはこんなのだ。と勘違いしているだけ。

600:名無しさん@お腹いっぱい。
03/09/05 21:29
>>597 厨房必死だな
おまえなんか死ね
zsh最強

601:名無しさん@お腹いっぱい。
03/09/05 22:05
zshは正直ウザいね

602:名無しさん@お腹いっぱい。
03/09/05 22:52
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 のディレクトリが合わなくってしまうので、まだ使っていません。
この辺解決された方いますか?


604:名無しさん@お腹いっぱい。
03/09/06 01:18
>>603
子プロセス (term の中の shell) のカレントディレクトリを得るのが難しいから
無理そうな気もするね。
それこそ、 RPROMPT に埋め込んだカレントディレクトリを term が watch しとく、
みたいなんができると解決できるのかな?

605:603
03/09/06 02:01
>>604
仰せの通り、カレントディレクトリはプロンプトから得れば良いですが、
term-send-raw() に advice する時にちょっと工夫しないとダメそうです。
この関数は何か入力されるとコールされる関数のようですので、
`Enter'が入力された時だけ default-directory を更新し、
`a'が入力された時などは子プロセスのカレントディレクトリを
検索しないようにしないと使い物にならないみたいです。


606:名無しさん@お腹いっぱい。
03/09/06 03:21
>>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'.

607:581
03/09/06 09:05
>>606
ありがとう。
${(P)$(echo bar)}こんなこともできるんですね。

608:名無しさん@お腹いっぱい。
03/09/06 14:15
右プロンプト邪魔臭いよね。俺は端末エミュレータのタイトルに色々
表示させてる。結構便利。

609:名無しさん@お腹いっぱい。
03/09/06 17:10
X上ではいいが、普通のコンソールではそれができないからなあ

610:名無しさん@お腹いっぱい。
03/09/06 17:23
%20<...<%~%<< とかやって適当に切り詰めてみては

611:名無しさん@お腹いっぱい。
03/09/06 17:29
URLリンク(www.dreaming.org)
bashのプロンプトだけど、画面の右上にプロンプトが出る。

612:名無しさん@お腹いっぱい。
03/09/08 01:27
たしかに、わざわざ右見るのが嫌で
%3~ とかしてるので、PWDを表示する用途ではRPOMPTは必要なしだな。
で、RPOMPTは何に使ってるの?


613:名無しさん@お腹いっぱい。
03/09/08 06:54
>>612
pwd

614:名無しさん@お腹いっぱい。
03/09/08 07:45
>>612
PWD

615:名無しさん@お腹いっぱい。
03/09/08 17:48
>>612
おれはpwdだ。

616:名無しさん@お腹いっぱい。
03/09/10 00:42
$と%って、なんか歴史的な意味合いがあるの?

617:名無しさん@お腹いっぱい。
03/09/11 13:53
>>612
時刻{ヒストリ# or Error#}ホスト名

618:名無しさん@お腹いっぱい。
03/09/11 18:23
時刻   いらね
ヒストリ# いらね
ホスト名  左
pwd    左


619:名無しさん@お腹いっぱい。
03/09/11 20:31
プロンプトなー。俺はこんな感じにしてる。
PS1=$'[%n@%m] (%~)\n%# '
2行って初めは違和感あったけど、慣れると使いやすい。
RPS1は初めのころ使ってたけど、出たり消えたりするのが
ちょい欝陶しかった。

620:名無しさん@お腹いっぱい。
03/09/12 01:47
二行とかいうと
またウザいのが粘着しだすからやめて。

621:名無しさん@お腹いっぱい。
03/09/12 04:33
3行以上って香具師いる?

622:名無しさん@お腹いっぱい。
03/09/12 09:55
ホスト名とかはscreenのcaptionに表示させてるYO!

623:名無しさん@Emacs
03/09/12 12:20
kterm 使ってたときは、プロンプトは % だけの
シンプルなものにして、ホスト名とディレクトリは
status line に表示させたりしてたな。


624:名無しさん@お腹いっぱい。
03/09/12 17:15
>>582
設定パクらせていただきますた。

625:名無しさん@お腹いっぱい。
03/09/12 22:56
zshで
cd /u/l/b [TAB]

cd /usr/local/bin
と補完する方法はありますか?
あったら教えてエロい人!!

626:名無しさん@お腹いっぱい。
03/09/12 23:24
>>625
できるけど、どの設定か忘れた。
オプションは>>554

627:名無しさん@お腹いっぱい。
03/09/12 23:56
>>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じゃ上手くいかない…。
何かが足りないのか、バージョンによる違いなのか…。

628:名無しさん@お腹いっぱい。
03/09/13 00:30
>>627
>>626 は「オプションは」と言っとるだろが。 setopt complete_in_word じゃないの?

629:628
03/09/13 00:36
あぁ、後半読んでなかった。確かに compinit 使わないとうまくいかない。逝ってきます。

630:名無しさん@お腹いっぱい。
03/09/15 19:14
zsh重すぎ
こんなの常用してる香具師の気がしれんな。

シェル一個起動するの1秒〜3秒かかる。
ログインした後のzsh初回起動は5秒。

tcsh
bash
ksh
なら、呼び出した途端に起動するというのに。

631:名無しさん@お腹いっぱい。
03/09/15 19:16
compinitが重い原因なのわかるが
こいつがなきゃロクに補完もできないじゃないか。

compctlは設定まんどくさすぎ。

zsh最低。

632:名無しさん@お腹いっぱい。
03/09/15 20:02
Zsh 、良くも悪くも富豪シェル

633:名無しさん@お腹いっぱい。
03/09/15 20:20
shellなんてそう頻繁に起動するもんじゃないし、いいじゃないか。

634:名無しさん@お腹いっぱい。
03/09/15 20:45
>>633
screen使うようになると、shellバンバン起動します。

あ、それともzshユーザーはshellは一個で我慢してるの?

635:名無しさん@お腹いっぱい。
03/09/15 20:45
>>633
>>630 はシェルスクリプトに tcsh やら zsh を使ってるアホ

636:名無しさん@お腹いっぱい。
03/09/15 20:46
>>634
まっとうな screen 使いはめったに shell 終了させないのでめったに起動もしません。

637:名無しさん@お腹いっぱい。
03/09/15 20:56
>>636
cd や lsにしかshell使わないならそれもいいだろうけど
フォアグラウンドで時間のかかる処理させてると
もう一個シェル欲しくなるのは人情というものではなかろうか。

zsh使い = cd lsだけで満足してる痛い人

という認識でよろしいか?

638:名無しさん@お腹いっぱい。
03/09/15 20:57
>>636
確かに1つは上げっぱなしだけど、screen の window をちょくちょく増やした
りしない?


639:名無しさん@お腹いっぱい。
03/09/15 20:59
>>638
まっとうなscreen使いはwindow1つです。
アタッチもデタッチもしません。
screen一つです。

640:名無しさん@お腹いっぱい。
03/09/15 21:04
まあ、ある意味zsh + screen使いは強者だな。
悪く言えば馬鹿なんだろうけど。

641:名無しさん@お腹いっぱい。
03/09/15 21:07
>>635
スクリプトとしてzshを使う場合
重い印象ないんだけどね。
メモリもそんなに喰わないし。

むしろ強力なファイル名生成機能が素晴しく使い易いんだが。
システムの中心を担うスクリプトには使わないけど
ユーティリティとしてのスクリプトにはzsh使うと
簡潔に書ける。

でも、compinitしてるときはわからん。
うちはcompinitしない主義なので。

642:名無しさん@お腹いっぱい。
03/09/15 21:11
別にシェルの起動が5秒短くなったところで、仕事の効率は変わらないよ。

643:名無しさん@お腹いっぱい。
03/09/15 21:15
>>642
それ、負け惜しみとも泣き言とも取れるんですが。
そんなこと言わずに、改善していきましょうよ。


5秒も待たされるこのイライラ。
俺は嫌でたまりませんね。
廃れゆくcompctlで頑張ってますが
いつ、まともに動かなくなるか。

644:名無しさん@お腹いっぱい。
03/09/15 21:21
screen+zsh だったらバックグラウンドで起動すればいいんじゃない?
確かに時間かかるけど、せっかくマルチタスクなんだからじっと待つ
必要はないわけだし。


645:名無しさん@お腹いっぱい。
03/09/15 21:23
zshで唯一 絶対的に他のものより優れていえる部分は
ファイル名生成機能とコマンドラインスタックだと思う。
そのためだけに使ってるといってもいい。
(つまり、それほどの魅力がある)

補完なんか、tcshとそれほど変らないし
単語中の補完なんかはtcshの方が親切だったりする。
compinitで補完が完璧になるという手軽さも利点かもしれないが
当然重くなるというリスクもある。

最強 といえば最強なんだろうけど
相対的なバランスでいけば
bashあたりが無難でいいと思う。

ログインシェルはtcsh
スクリプトはbash
とかもいいと思う。


646:名無しさん@お腹いっぱい。
03/09/15 21:27
>>644
zsh単体でもバックグラウンドでもいいと思うが
処理内容を表示"させたい"場合はバックグラウンドに回すと
えらい邪魔くさい思いをすることになる。
(プロンプトが表示されたと思ったら処理内容が流れてきて邪魔する)
フォアグランドで動かして、screenで別にWindowにして
そっちで続きの作業する。もしくは別の仮想端末立てて
作業を同時進行する。これもマルチタスクらしい使い方だと思うけど。

ただ、zshユーザーは、大事な処理内容は捨てるか、ファイルに落して
リアルタイムに監視したい場合も、我慢して処理終了後に確認するわけね。



647:名無しさん@お腹いっぱい。
03/09/15 21:30
普通にもう一つシェルを起動させればいいじゃない。
待ち時間が我慢できない人は他のシェルを使えばいいだけだし。

648:名無しさん@お腹いっぱい。
03/09/15 21:32
そうです!
zshは最強なんだから改善の余地などないのです!!
どんどん機能盛り込んで重くなることこそが目的なのです!!
性能低いビンボー人は死ぬまでkshでも使ってなさい!!

649:名無しさん@お腹いっぱい。
03/09/15 21:33
zsh = Unix界のWindows

650:名無しさん@お腹いっぱい。
03/09/15 21:42
age

651:名無しさん@お腹いっぱい。
03/09/15 21:50
もう夏休み終わったんだけどなー

652:名無しさん@お腹いっぱい。
03/09/15 21:51
夏休みが終ったからzshユーザーはいなくなったんですね。

653:名無しさん@お腹いっぱい。
03/09/15 21:53
zshは最強だよ
間違いない
最強のシェル

654:名無しさん@お腹いっぱい。
03/09/15 22:01
>>641

compinitはふつー.zshrcでやるものなので、
スクリプト(=対話モードで起動されていない)
では実行しないのでは?

655:名無しさん@お腹いっぱい。
03/09/15 22:05
>>654
だね。
だからスクリプトとして実行するときは重くないわけだ。
まあ、kshやらbashからしてみりゃデカいが
zshでスクリプトやるのも面白いよ。

656:名無しさん@お腹いっぱい。
03/09/15 22:06
熱くなってるとこ悪いんだけど、zsh でも複数起動はできるんだよ。
確かに起動は遅いけど、待ってれば起動するんだよ。


657:名無しさん@お腹いっぱい。
03/09/15 22:10
そうです!!
zshユーザーはセッカチな厨房とは違うのです!!
とにかく待つのです!!メモリをいくら消費しようとも気にならない寛大さがあります!!

658:名無しさん@お腹いっぱい。
03/09/15 23:10
煽るといろんな意見や本音が聞けて楽しい。

659:644
03/09/15 23:33
>>646
いや、screen で Create したまま放っておけばいいのでは、って後半に
書いてるね。誤解を招く表現でスマソ。


660:名無しさん@お腹いっぱい。
03/09/15 23:35
>>646
アファなの?

661:名無しさん@お腹いっぱい。
03/09/15 23:41
zshユーザー必死

662:名無しさん@お腹いっぱい。
03/09/15 23:45
>>661
zsh スレで必死になるぶんにはええやん。

663:名無しさん@お腹いっぱい。
03/09/15 23:52
>>662
たしかに

イキロ zshユーザー

664:名無しさん@お腹いっぱい。
03/09/16 10:32
$ 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秒でした。


665:名無しさん@お腹いっぱい。
03/09/16 10:54
zsh + screen + nxt が最強

666:名無しさん@お腹いっぱい。
03/09/16 11:25
以前から起動に5秒とかいってるやつって、
100MHzぐらいのマシン使ってるの?

667:名無しさん@お腹いっぱい。
03/09/16 11:38
対話的に実行される場合と
スクリプトとして実行される場合の区別もつかない香具師がいるようです

668:名無しさん@お腹いっぱい。
03/09/16 14:40
WinホストのVMware内のFreeBSD + screen + zshでwindow増やすと
HDDがスリープしてるときは、5秒ぐらいかかるね。

669:名無しさん@お腹いっぱい。
03/09/16 14:43
Cygwinのzshだけど、1秒以内で起動するよ

670:名無しさん@お腹いっぱい。
03/09/16 15:16
ちゃんとcompinitしてる?
いいなぁ。

671:名無しさん@お腹いっぱい。
03/09/16 15:16
>>667
もしかして、>>664 では compinit が実行されないと言うことですか。
ではどうすればいいのだろう。

time zsh -c '. ~/.zshrc;exit'
time kterm -e zsh -c exit

こんな感じ?

>>668
それは zsh の実行速度とは関係ないような...


672:名無しさん@お腹いっぱい。
03/09/16 19:50
screenで最初に3つぐらい起動しとけば、平均一週間くらいもつから起動時間
なんて気にしない。
echo $SECONDS
106345

673:名無しさん@お腹いっぱい。
03/09/16 20:05
漏れも screen 内に常時 5匹 zsh 飼ってて、
終了したり新たに立ち上げたりとかは滅多にしないので、
起動に時間掛かっても気にならないなぁ。

674:名無しさん@お腹いっぱい。
03/09/16 20:43
俺10匹.でもCtrl-Dでよく死ぬのでちょくちょく起動し直してる
でもあまり気にならない.zshが古いからかな

675:名無しさん@お腹いっぱい。
03/09/16 21:00
ファイル名生成機能(というか**/)だけのために zsh 使ってるんですが
他に使えるシェルないですか?

676:名無しさん@お腹いっぱい。
03/09/16 21:01
>>674
3.0.5あたりか?だとしたら古過ぎ。

677:674
03/09/16 21:18
3.0.8みたいです.古すぎ?


678:名無しさん@お腹いっぱい。
03/09/16 21:23
>>677
軽すぎ。

679:名無しさん@お腹いっぱい。
03/09/16 21:26
>>677
バッファに^Dが残ってしまうという問題がその頃に修正されたのでは
なかったかな? URLリンク(www.zsh.org)

俺は最初からignoreeof派なのでzshが落ちるということはなかったが

680:674
03/09/16 21:43
>>679
それはならないみたいです.
ただ単純に連打しすぎるだけです.

使い慣れてないので,あまりバージョンによる違いがわかりません...
軽いならいっかな.

681:名無しさん@お腹いっぱい。
03/09/16 21:52
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

682:676=679
03/09/16 22:01
>>680
> ただ単純に連打しすぎるだけです
ignoreeofは?

> 使い慣れてないので,あまりバージョンによる違いがわかりません...
俺も長い間3.0.x系に留まっていたので最近の補完機能はわからん。
かといって当時書いた補完の設定を移植するのも面倒なので最近は
ファイル名生成({01..52}とかw)だけのためにzshを使っている。

683:名無しさん@お腹いっぱい。
03/09/16 22:24
4.0.4使ってるが、compinit 利用してても
1GHzマシンで1秒もかからんぞ。

684:名無しさん@お腹いっぱい。
03/09/16 22:26
連打するような状況のときは Alt + D しる

685:674
03/09/16 22:35
>>682
^Dで終了するのも好きなので,まあたまに間違ってもいいかなあと

>>684
Alt+Dでどうなるの?
やってみてもzsh終了するけど.やり方が違うのか?

686:名無しさん@お腹いっぱい。
03/09/16 22:48
3.1.6あたりで、compinitせずに使うのが理想的かも
軽い軽い

687:名無しさん@お腹いっぱい。
03/09/16 22:52
ちなみに、compinitが正式採用されたのは3.1.6。
multicomp使いたいので、3.1.5にしようかと思ったら
ラージファイルに対応してなかった。
vmware使ってるとデカいファイル扱うことがあるので
ラージファイル必須。

688:名無しさん@お腹いっぱい。
03/09/17 17:49
zshだめぽ
kshが最強です。

689:名無しさん@お腹いっぱい。
03/09/17 17:57
pdkshにzshにglobが移植できないものかと奮闘中
すげー難しいです。

690:名無しさん@お腹いっぱい。
03/09/20 03:51
ファイル名補完の順番を、カレントディレクトリのものを最優先
にするにはどうすればいいんでしょうか?

691:名無しさん@お腹いっぱい。
03/09/20 03:55
何もせずともカレントのものを優先してますが何か?

692:690
03/09/20 05:07
そうならないことがあるんですが。
CDPATHを設定しているせいでしょうか?

693:名無しさん@お腹いっぱい。
03/09/21 22:46
>>581
eval echo \$$hoge
eval echo $`echo $hoge`
eval $hoge=aaaa


694:名無しさん@お腹いっぱい。
03/09/22 00:53
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH"

path=( /bin /usr/bin /usr/local/bin $path )
って結果が違うんだな


695:名無しさん@お腹いっぱい。
03/09/22 09:11
>>694 いっしょじゃねーかよ。


696:名無しさん@お腹いっぱい。
03/09/23 18:12
zshってutf8に対応してないの?

697:名無しさん@お腹いっぱい。
03/09/23 18:14
>>696
端末依存だぞ。

698:名無しさん@お腹いっぱい。
03/09/23 18:41
>>696
「対応」ってどのレベルの話を言ってる?

699:名無しさん@お腹いっぱい。
03/09/23 18:44
表示くらいしかないでしょ

700:名無しさん@お腹いっぱい。
03/09/24 00:22
>>696
ちがうだろ、
export PATH="/bin:/usr/bin" したあと
export PATH="/bin:/usr/bin:$PATH" を数回した$PATHと
path=( /bin /usr/bin $path ) を数回した$PATHを比べてみろ


701:700
03/09/24 00:23
スマン s/696/695/

702:名無しさん@お腹いっぱい。
03/09/24 12:31
>>700
まったく同じでしたが。

703:名無しさん@お腹いっぱい。
03/09/24 12:36
>>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')
$


704:名無しさん@お腹いっぱい。
03/09/24 15:16
>>696
現時点ではbash以外はだめらしい。

705:名無しさん@お腹いっぱい。
03/09/24 17:43
for i (hoge) { echo $i }
とかの{}の中で補完って効く?

706:700
03/09/24 18:02
スマン、typeset -U path してたからだ。


707:名無しさん@お腹いっぱい。
03/09/24 18:26
>>705
なぜかセミコロンを入れたら補間できるようになった。
for i (hoge) { ;echo $i }

708:名無しさん@お腹いっぱい。
03/09/24 23:30
% grep '^ls$' .zsh-history| wc -l
8283
% wc -l .zsh-history
36710 .zsh-history

709:名無しさん@お腹いっぱい。
03/09/25 00:04
lsとかcdとかをヒストリに入れたくないときは
コマンドの前にスペースを入れたものをaliasしておくと良いよ。
alias cd=' cd'
alias ls=' ls -F --color=auto'
こんな感じ。
そうすればヒストリがcdとかlsまみれになることはない。


710:名無しさん@お腹いっぱい。
03/09/25 02:46
重複が嫌なら
typeset -U path PATH
typeset -U fpath
とか。

>>709
関連するsetoptは?

711:名無しさん@お腹いっぱい。
03/09/25 03:08
>>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:名無しさん@お腹いっぱい。
03/09/25 03:11
一年ぶりくらいに見たらアホが常駐するスレになってますね。

713:名無しさん@お腹いっぱい。
03/09/25 03:13
>>709-711
おまえらの事だよ

714:名無しさん@お腹いっぱい。
03/09/25 03:16
>>712=713が一番アフォな書き込みに見えるんだが

715:712
03/09/25 03:22
違いますよ。
>>600-700,712-714 あたりのことです。

716:名無しさん@お腹いっぱい。
03/09/25 11:19
>>708
sort ~/.zhistory|uniq -c |egrep -v '[ \t]*1'|wc -l
11
hist_ignore_all_dupsにしてあるから、重複が11行でした。なんで0じゃない
かっていうと、数行のコマンドの1行が重複するってのがあるから。

>>711
zshをたくさん立ち上げてるなら、share_historyにした方がいいよ。

オプションの説明はここを見ました。
URLリンク(www.ayu.ics.keio.ac.jp)

717:名無しさん@お腹いっぱい。
03/09/28 12:52
cygwinスレでも聞いたんですが反応が無かったのでこちらでも
伺わせて下さい.
     
cygwin rxvtでzshを使ってるんだけど, exitとかせずに右上の×ボタンで
終了するとそのディレクトリにzsh.exe.stackdumpができるのは
私だけですか?

718:名無しさん@お腹いっぱい。
03/09/28 15:49
>>717
> cygwinスレでも聞いたんですが反応が無かったのでこちらでも
> 伺わせて下さい.

えらそう。


719:名無しさん@お腹いっぱい。
03/09/28 16:05
>>718
(´,_ゝ`)プッ

720:名無しさん@お腹いっぱい。
03/09/28 17:21
>>717
なんのスタックかわからないけど
次回のためにスタック保存してるんじゃないの?
憶測でもうしわけないけど。

#ディレクトリスタックかコマンドラインスタックくらいしかおもいつかない

721:名無しさん@お腹いっぱい。
03/09/28 17:56
>>720
Cygwin の *.stackdump ってのは core みたいなもんかと。

zsh のバージョンは何?

722:名無しさん@お腹いっぱい。
03/09/28 18:46
coreなのか。
ナルホド

723:名無しさん@お腹いっぱい。
03/09/29 12:57
zshのバージョンは4.0.6ですが, 前からこの症状は再現していたような気がします.
偉そうでスミマセン…

724:名無しさん@お腹いっぱい。
03/09/29 17:26
偉そうでごめんなさい って
「美しすぎてごめんなさい」
「天才すぎてごめんなさい」
みたいな

725:名無しさん@お腹いっぱい。
03/09/29 19:13
ひがみっぽくてごめんなさい

726:名無しさん@お腹いっぱい。
03/09/29 21:22
迷惑かけて、ありがとう

727:名無しさん@お腹いっぱい。
03/09/29 22:59
3べん回ってワンと鳴く

728:名無しさん@お腹いっぱい。
03/10/05 16:56
>>724
それなら「偉くて/偉すぎてごめんなさい」じゃねーか?

729:名無しさん@お腹いっぱい。
03/10/06 02:45
美しそうでスミマセン…

730:名無しさん@お腹いっぱい。
03/10/11 16:14
おはようございます

2003/5月号
zshマスター 最終回
 「compsysを利用した補完機能の設定」

どうでした?
呼んだ人感想キボン

731:名無しさん@お腹いっぱい。
03/10/11 19:00
viモードの場合、コマンドラインスタックってどーやるの?

732:名無しさん@お腹いっぱい。
03/10/11 20:39
適当なキーに割り当てなされ

733:名無しさん@お腹いっぱい。
03/10/13 05:32
terminfo ファイルをホームの中に入れている場合、~/.zshrc の中で、export
TERMINFO=$HOME/.terminfo みたいなことをやっても、zsh には反映されません
よね。こういう場合どのように対処するのが zsh 流なのでしょうか?
TERM=$TERM というのは無しとします。


734:名無しさん@お腹いっぱい。
03/10/13 07:35
質問の意味がよくわからん。なにが反映されないのか

735:名無しさん@お腹いっぱい。
03/10/13 08:30
>>734
試しに、TERM=noexist zsh で zsh を起動させると、カーソルの移動もままな
りませんよね。その後 TERM=xterm などとしてやることによって、カーソルの
移動が出来るようになります。

私の場合 root 権限を持たなにので、ホームディレクトリに terminfo をイン
ストールしているのです。で、.zshrc で、$TERMINFO を設定してやっても、既
に zsh が起動しちゃっているので、上と同じようなことになります。理解して
いただけたでしょうか。


736:名無しさん@お腹いっぱい。
03/10/13 15:47
ものすごく偉そうな教えて君ハケーン

737:名無しさん@お腹いっぱい。
03/10/13 16:07
zsh 使うならまず態度から、と考えているのだろう

738:名無しさん@お腹いっぱい。
03/10/13 19:21
これをえらそうだと感じるのは、よほど卑屈な思いをしているのか

739:名無しさん@お腹いっぱい。
03/10/13 19:25
>>736
そうかな?
>>737 == >>736 ?


740:名無しさん@お腹いっぱい。
03/10/13 19:33
というか普通に使えてるぞ

741:名無しさん@お腹いっぱい。
03/10/13 19:45
>>735
.zshenvに書いたらできたぞ。
export TERMCAP=$HOME/.termcap
export TERMINFO=$HOME/.terminfo
TERM=$TERM

742:名無しさん@お腹いっぱい。
03/10/13 19:46
>>740
日本語の修行がたりませんね。

743:名無しさん@お腹いっぱい。
03/10/13 19:47
>>741
>>733
> TERM=$TERM というのは無しとします。


744:名無しさん@お腹いっぱい。
03/10/13 20:00
ということで、
TERM=$TERM
とするのがzsh流です。

745:名無しさん@お腹いっぱい。
03/10/13 20:02
>>744
ださっ。


746:名無しさん@お腹いっぱい。
03/10/13 20:02
>>741
> .zshenvに書いたらできたぞ。

.zshenv に書かなくてもできます。というか、.zshrc に書くべきでは?

747:名無しさん@お腹いっぱい。
03/10/13 22:07
>>744
わろた

748:名無しさん@お腹いっぱい。
03/10/15 15:17
>>38

> setopt:133: no such option: PRINT_CHEESE_BIT
うちではPRINT_EIGHT_BITで成功した。ちなみに4.0.4。


749:名無しさん@お腹いっぱい。
03/10/15 23:23
今頃ネタにマジレスとは…

750:名無しさん@お腹いっぱい。
03/10/18 14:32
zshを使おうとしてみたのですが、tabでカーソルが進まないようにするにはどうしたら良いでしょう?

bashではこんなふうにならないんですが。

751:名無しさん@お腹いっぱい。
03/10/18 16:01
ハァ?

752:750
03/10/18 18:04
いや、マジで。
シェル上だってのに、テキストみたいにタブでカーソルが飛んでいく…

環境
・RedHat Linux 9
・RPMでインストール。入れたのは↓
URLリンク(rpmfind.rediris.es)

753:名無しさん@お腹いっぱい。
03/10/18 18:07
%wh[tab]
#whichを期待

%wh□

754:名無しさん@お腹いっぱい。
03/10/18 18:08
ありゃタブだめか

%whi □
ってなるってこと?

755:名無しさん@お腹いっぱい。
03/10/18 18:58
ネタか。

756:750
03/10/18 19:29
>>754
うい。そんな感じ。
%wh[tab]

%wh□ich

となって、ここでEnter叩くとちゃんとwhichは実行されます。
補完もされますが、見にくくてしょうがない。

757:名無しさん@お腹いっぱい。
03/10/18 20:49
確認とれました
ネタですね

758:名無しさん@お腹いっぱい。
03/10/18 21:13
>>750
~/.zshrc か何かを弄れ。

759:名無しさん@お腹いっぱい。
03/10/18 21:25
(´-`).。oO(「何か」ってなんだろう?)















(((゚Д゚;)))ガクガクブルブル

760:名無しさん@お腹いっぱい。
03/10/19 01:18
%[tab]

%□

ってことじゃないの?
これはうちでもなる

761:名無しさん@お腹いっぱい。
03/10/19 11:07
setopt zle
じゃだめ?

762:名無しさん@お腹いっぱい。
03/10/19 16:14
.zshrcにはzshの挙動に関する設定を記述し,
.zloginにaliasやpathなどの zshに直接関係ない設定を記述したのですが,
screenを使うと.zloginを読み込んでくれません
.zshrcには自分の使うマシンで共通にしたいと目論んでいたので
aliasとかpathの設定は.zloginに記述したくなかったわけですが,
.zloginではなく他の…例えば.zprofileに記述すべきですか?

763:762
03/10/19 16:19
あ,もしや .zshrcに source 〜/.zlogin を明示的に記述する必要あり?
これならscreenを使っても問題ないわけですけど…

764:名無しさん@お腹いっぱい。
03/10/19 16:41
>>762
まずは man zsh して各ドットファイルの責務を確認しる。話しはそれからだ。

765:名無しさん@お腹いっぱい。
03/10/19 17:13
コマンドはまず /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 をこの順に読みます。


766:762
03/10/19 17:51
>>765 はman zshの一部を訳したものですよね
読み込む順序はUUで読んでいたので>>762のようなことをしようとしたわけです.
screenやXからターミナルを開くときもログインシェルとして扱ってくれるものと
思っていたのですが,どうやら挙動が若干異なるようですね
>>763 を記述しなかった場合でも,コンソールやリモートからログインしたときは
ちゃんと.zloginを読んでくれていたので安心していたのですが…

ログインシェルに関する挙動をもう少し調べてから出直してきます.
ありがとうございました

767:名無しさん@お腹いっぱい。
03/10/19 18:07
つい最近てめえでmakeしたscreen使うと
勝手にzlogin読みこんでムカついてた
一般ユーザのzloginにはstartxが書いてあるから。

Gentooのportageのscreenが4.0.1になってたので
そっち入れなおした。
そしたらzloginよまなくなった。
ウマー

768:名無しさん@お腹いっぱい。
03/10/19 20:02
>>762
screenが起動するzshはログインシェルではないのでzloginは読ま
れない。screenをzshから起動したなら、環境変数は既に設定され
ているはずなので、わざわざ設定する必要はない。aliasはzshrcに
書くべき。

769:名無しさん@お腹いっぱい。
03/10/20 03:24
>>766
> 読み込む順序はUUで読んでいたので>>762のようなことをしようとしたわけです.

UU ってなあに?

770:名無しさん@お腹いっぱい。
03/10/20 08:17
>>769
unix user?

771:名無しさん@お腹いっぱい。
03/10/20 09:13
>>770
意味がわからない…。


772:名無しさん@お腹いっぱい。
03/10/20 10:28
uuencode

773:名無しさん@お腹いっぱい。
03/10/20 10:33
>>771
雑誌だろ

774:名無しさん@お腹いっぱい。
03/10/20 10:45
>>773
雑誌買ったことないんでしらんかった。すまそ。


775:名無しさん@お腹いっぱい。
03/10/21 13:24
連載、単項盆になるのかしらん。

776:名無しさん@お腹いっぱい。
03/10/21 17:34
zshネタだけで本作っても、あまり売れそうにない悪寒

777:名無しさん@お腹いっぱい。
03/10/22 14:27
>>776
俺はほすぃぞ。


778:名無しさん@お腹いっぱい。
03/10/22 15:17
とりあえず一冊は売れる予定です
一冊のために本作る会社あるなら
是非見てみたい。

779: ◆Ir5kue8F32
03/10/22 15:27
私も買うかも。

780:名無しさん@お腹いっぱい。
03/10/22 15:31
2冊 これじゃあ作っても大赤字だYO!

781:名無しさん@お腹いっぱい。
03/10/22 15:51
おいおまえら、ビックサイトロンにて売ったら買ってくれますか?

782:名無しさん@お腹いっぱい。
03/10/22 16:31
たのみこむ?

783:kjhjk
03/10/22 23:20
モロトミ ヤスミツ (ヨコチン大使)

体育館で自らヨコチンを曝け出し、「汚い」「触るな」と虐められ泣かされていた。

「先生。○○君がヨコチン大使って言うねん」と朝の会で皆の前で泣きじゃくっていた。
彼はまるで銀幕スターだった。銀シャリが食べたい。

784:名無しさん@お腹いっぱい。
03/10/24 05:09
~/.zshenv ってスクリプトとして zsh を使うときも呼ばれるんだっけ?

785:名無しさん@お腹いっぱい。
03/10/24 06:07
>>784
だな。 man zsh の STARTUP/SHUTDOWN を良く嫁。

786:名無しさん@お腹いっぱい。
03/10/24 08:30
>>785
んー、zsh script 書くときって、
#!/usr/local/bin/zsh -f
しといたほうがいいんでしょうか?

787:名無しさん@お腹いっぱい。
03/10/26 17:31
aho & disown とか
nohup aho & とかやらなくても、
zsh を終了して aho が終了しない方法って、どうするんでしたっけ?
何かの zsh parameter を設定してできた気がするんですが。

788:名無しさん@お腹いっぱい。
03/10/26 18:24
setopt no_hup no_check_jobs
これであーだこーだ言われずにjob残したまま
zsh終了できまつ

789:786
03/10/26 19:02
おー、ありがとうご座意間酢丸

790:名無しさん@お腹いっぱい。
03/11/01 17:18
おそらく、zsh だと思うのですが、

% f=(/bin/*(:t))
% ${^f}

はどういう意味ですか?

791:名無しさん@お腹いっぱい。
03/11/04 06:36
zshをログインシェルにして
X立ててない状態でviやEmacsでファイルを開くと画面がおかしくなります。
文字化けじゃなく画面全体がおかしくなるんです。
これを直すにはどうしたら良いでしょう。

FreeBSD 4.9-RELEASE
portsよりzsh-develをインストール


792:名無しさん@お腹いっぱい。
03/11/04 08:17
>>791
擦れ違い

793:名無しさん@お腹いっぱい。
03/11/09 15:29
お前らもう萌え終わったのかYo!
そんな俺にssh*でホスト名を補完する際に
~/.ssh/known_hosts からホスト名を参照する方法を教えてください

794:名無しさん@お腹いっぱい。
03/11/09 15:36
>>793
つーかうちの zsh タンは特に何も設定せずに最初から補完してくれてるが?

795:not 793
03/11/10 01:48
>>794
ウチのzshはどーやら /etc/hosts から補完してくれてるっぽいんだが、
何か特殊な設定した?


796:名無しさん@お腹いっぱい。
03/11/10 02:15
>>793 >>795
ああ、ごめん!何も設定してないことなかった。こんなん設定してた。
正規表現とか適当なので変なとこあったら適当にいじってちょ。

rehash_cache_hosts() {
_cache_hosts=(`awk '{ sub(/[^A-Za-z0-9.:-].*/, ""); print }' ~/.ssh/known_hosts* | sort | uniq`)
}
rehash_cache_hosts


797:名無しさん@お腹いっぱい。
03/11/10 02:15
>>794 はネタです
>>795
_cache_hosts=(`perl -ne 'if (/^([a-zA-Z0-9.-]+)/) { print "$1\n";}' ~/.ssh/known_hosts`)


798:名無しさん@お腹いっぱい。
03/11/10 02:27
あ、IPv6 リンクローカルアドレスが補完できなかったんで、正規表現のとこはさらにこうしてた。
_cache_hosts=(`awk '{ sub(/[^A-Za-z0-9.:%-].*/, ""); print }' ~/.ssh/known_hosts* | sort | uniq`)

>>797
すまんです。しかもかぶってるし・・・

799:名無しさん@お腹いっぱい。
03/11/10 15:28
_cache_hosts というのがホスト名補完に関わる変数になるのですね
これらのあらかじめ宣言されている変数を理解すれば,
なんとか自由に補完を楽しめるようになるかなぁ

800:名無しさん@お腹いっぱい。
03/11/10 19:53
/usr/share/zsh/*/functions/Completion/**/_hosts に定義されている

801:名無しさん@お腹いっぱい。
03/11/11 12:04
zshを理解するのも一苦労だな…

802:名無しさん@お腹いっぱい。
03/11/11 20:47
だれか、man zsh* を日本語に訳してくれ
あれだけの英文を読みとおすのは、つらい
ユーザー会とかないの?

803:名無しさん@お腹いっぱい。
03/11/11 22:24
>>802
どうぞ
URLリンク(hiki.ex-machina.jp)

804:名無しさん@お腹いっぱい。
03/11/12 08:48
hoge1の中のファイルを入力したいとき
%cat hog<TAB>
Completing files
hoge0/ hoge1/ hoge2/
↑ここで2回補完すると↓こうなります。
%cat hoge1/
Completing files
hoge0/ hoge1/ hoge2/
ここでもう1回補完するとhoge2になってしまします。この状態で
hoge1の中のファイルを補完するにはどうすればいいですか? 今ま
では一文字入力してバックスペースで消してから、補完していたの
ですが、いい方法ありませんか?

805:名無しさん@お腹いっぱい。
03/11/12 09:50
>>804
別のキーに complete 系のコマンドを割り当てておいて、hoge1/ になった
ところでそっちのキーで補完するとか。

自分は、setopt NO_AUTOMENU とした上で C-o に menu-expand-or-complete を
割り当て、メニューコンプリートは明示的にするようにしているけどね。
zsh のデフォルトの動作は性に合わなかった。

806:名無しさん@お腹いっぱい。
03/11/12 12:37
>>804
/を押す。
いや、BSが要らなくなるだけだが。

807:名無しさん@お腹いっぱい。
03/11/12 14:14
おまえら、素人、通は C-/


808:804
03/11/12 14:20
>>805>>806
ありがとう

809:名無しさん@お腹いっぱい。
03/11/12 21:12
>>807
ワラタ。戻りすぎだろ

810:名無しさん@お腹いっぱい。
03/11/18 03:20
>>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.

アナウンスされるとしたらこのページか?
URLリンク(www.apress.com)


812:名無しさん@お腹いっぱい。
03/11/20 07:42
kterm+zshで日本語が化けます。
% echo 死ね とか入れると、
「ね」が消えて「死」しか出てきません。
tcshだときちんと表示できます。オラのdotfileが間違ってるんでしょうか?


813:名無しさん@お腹いっぱい。
03/11/20 07:46
>>812
俺はならねーぞ。なんかおまえのやつのほうが
命令に忠実で羨ましいぞ。

814:812
03/11/20 10:15
自己解決。

.zshrcのbindkey -m をコメントアウトしたら桶でした。

他人の腐った.zshrcを参考にしたのがいけなかったのか?

815:名無しさん@お腹いっぱい。
03/11/20 12:17
>>814
> .zshrcのbindkey -m をコメントアウトしたら桶でした。

(゚Д゚)ハァ?

816:名無しさん@お腹いっぱい。
03/11/20 17:54
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 の内容も利用する場合は、適当に行数を増やした方がいいでしょうね


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5337日前に更新/219 KB
担当:undef