zsh その6

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
2名無しさん@お腹いっぱい。:2008/12/13(土) 10:29:37
俺たちの zsh スレが復活したぞ!!
3名無しさん@お腹いっぱい。:2008/12/13(土) 20:44:29
前スレは6レスで落ちたけどねw


今日本買ってきたで
4名無しさん@お腹いっぱい。:2008/12/13(土) 20:55:59
>>3
あの本は流し読みしたけど、大体知ってることだし、
screenも触りだけだったので買わなかった。
5名無しさん@お腹いっぱい。:2008/12/13(土) 21:47:26
6名無しさん@お腹いっぱい。:2008/12/14(日) 06:19:37
「zsh-最強シェル入門-」サポート
http://lpic.jp/zsh/

こういうんを著者個人のサイトでやる時代なのか
7名無しさん@お腹いっぱい。:2008/12/16(火) 21:40:01
zsh関連の効率の良い情報収集法って無い?
今のところ http://delicious.com/tag/zsh
である件数以上のをピックアップするのが一番効率的なんだけど。
もっと良い方法があれば。
8名無しさん@お腹いっぱい。:2008/12/18(木) 10:06:56
とりあえず 帰ってきた zsh スレ おめ
9名無しさん@お腹いっぱい。:2008/12/18(木) 20:06:53
ついに立ったな
今度こそはスレ落ちさせないからな覚悟しろ!
10名無しさん@お腹いっぱい。:2008/12/18(木) 22:18:56
Alt押しキーをキーバインドする方法ってありますか?
↓みたいな感じでできるといいんですが
bindkey "Alt+F" forward-char
11名無しさん@お腹いっぱい。:2008/12/18(木) 22:41:23
bindkey "^[f" forward-char
12名無しさん@お腹いっぱい。:2008/12/18(木) 23:09:55
>>11
ありがとうございます
^[はAltに対応してるということですか?

かなりググったつもりですが、全然情報が見つからなくて・・・
調べ方が悪いのかしら
13名無しさん@お腹いっぱい。:2008/12/19(金) 02:53:38
stanakaならともかくnaoyaか。あまり期待できなさそう。
14名無しさん@お腹いっぱい。:2008/12/19(金) 22:54:05
ユーザ名やホスト名の補完って抑制できんの?
scp でタブ押すとカレントの一覧に混じって大量のユーザ名が混じってくれやがる
15名無しさん@お腹いっぱい。:2008/12/20(土) 00:16:36
後藤大地の記事よめ
16名無しさん@お腹いっぱい。:2008/12/20(土) 00:51:34
>>15
読んだがなかったぞおぃ
17名無しさん@お腹いっぱい。:2008/12/20(土) 14:43:21
_ssh にあるよ
18名無しさん@お腹いっぱい。:2008/12/20(土) 16:42:44
なんつーか話題がないね
19名無しさん@お腹いっぱい。:2008/12/20(土) 19:11:36
困ったときの.zshrc晒し
20名無しさん@お腹いっぱい。:2008/12/20(土) 19:44:05
すっかり忘れられたな
http://wiki.fdiary.net/zsh/
2114:2008/12/20(土) 21:25:11
_ssh見てみたけど、zsh歴半月の自分には分かるわけもなく・・・
さんざんググってzstyleの勉強をしようと思ったけど、日本語じゃ初心者向けの解説サイトは皆無だね。
まぁ実際むずいしハンパな素人にはそもそも無理か。

で、結局compdef -dというのを知った。
補完やりすぎなんじゃゴラァってときは、とりあえずこれで解除しとけばいいわけだな。
22名無しさん@お腹いっぱい。:2008/12/22(月) 09:51:16
また少人数で廻すスレ復活か
23名無しさん@お腹いっぱい。:2008/12/22(月) 11:45:07
#compdef scp

_arguments ¥
'(-2)-1[forces ssh to try protocol version 1 only]' ¥
'(-1)-2[forces ssh to try protocol version 2 only]' ¥
'(-6)-4[forces ssh to use IPv4 addresses only]' ¥
'(-4)-6[forces ssh to use IPv6 addresses only]' ¥
'-p[preserve modification times]' ¥
'-r[recursively copy directories]' ¥
'-v[verbose mode]' ¥
'-B[batch mode]' ¥
'-q[disables the progress meter]' ¥
'-P+[specify port on remote host]:port number on remote host' ¥
'-S+[specify ssh program]:path to ssh:_command_names -e' ¥
'-c+[select encryption cipher]:encryption cipher:(idea des 3des blowfish arcfour tss none)' ¥
'-C[compress data]' ¥
'-F+[specify alternate config file]:config file:_files' ¥
'-i+[select identity file]:SSH identity file:_files' ¥
'*-o+[specify extra options]:option string:->option' ¥
'*:file or directory:_files'
24名無しさん@お腹いっぱい。:2008/12/22(月) 11:47:46
これでどうかな・・・
_ssh から _scp オプションの部分だけを抜き出したんだけど。
25名無しさん@お腹いっぱい。:2008/12/28(日) 18:46:11
デフォルトログインシェルをzshにしてるディストリはねーのか?
ちんたらやってたらいつまで経っても普及せんぞ
26名無しさん@お腹いっぱい。:2008/12/28(日) 23:11:15
grml
27名無しさん@お腹いっぱい。:2008/12/31(水) 13:28:18
bashでは--rcfileで初期化ファイルを指定できますが
zshでも同じことができませんか
zsh -h したけど、それらしいのはありませんでした。
28名無しさん@お腹いっぱい。:2008/12/31(水) 15:26:17
man zshoptions
29名無しさん@お腹いっぱい。:2008/12/31(水) 16:00:52
>>28
だからそれらしいのは見つからないんですけど。
30名無しさん@お腹いっぱい。:2008/12/31(水) 18:55:15
年の瀬の逆切れは趣きがあってよい
31名無しさん@お腹いっぱい。:2009/01/01(木) 16:31:26
>>27
zshには--rcfile相当の機能はないよ。
28がマニュアル読めっていっているのは、自分もしらないから。
自分が知らないから、マニュアル読めというしかないじゃん。察してやれ。
32名無しさん@お腹いっぱい。:2009/01/01(木) 16:40:03
>>30
これは・・・自分の無知をごまかすだけの自称上級者様ではないですか!
あけましておめでとうございます。
33名無しさん@お腹いっぱい。:2009/01/01(木) 21:57:53
必死にマヌアル読んだ俺カワイソス
34名無しさん@お腹いっぱい。:2009/01/01(木) 22:01:08
>>33
つ どんまい
35名無しさん@お腹いっぱい。:2009/01/03(土) 18:06:01
--rcfileか、なるほど。
でもどーいう時に使うんだ?
36名無しさん@お腹いっぱい。:2009/01/05(月) 14:34:59
--rcfileがないからZDOTDIRで代替してます
37名無しさん@お腹いっぱい。:2009/01/07(水) 20:27:02
zshって名前にしたの誰だ?
我最強なり的な傲慢さがあっていいよな
38名無しさん@お腹いっぱい。:2009/01/07(水) 20:31:25
>>37
つ 俺
39名無しさん@お腹いっぱい。:2009/01/09(金) 00:24:44
omega shell
40名無しさん@お腹いっぱい。:2009/01/09(金) 03:16:02
>>37
これから次世代シェルを作ろうって思ってた奴は歯がゆく思ってんだろうな
俺がzを使うはずだったのにィってw
41名無しさん@お腹いっぱい。:2009/01/09(金) 11:30:56
bzsh でどうだ
42名無しさん@お腹いっぱい。:2009/01/09(金) 11:31:56
…っと bazsh だな。
43名無しさん@お腹いっぱい。:2009/01/09(金) 11:54:00
zzsh
44名無しさん@お腹いっぱい。:2009/01/09(金) 12:33:30
Ω-shell
45名無しさん@お腹いっぱい。:2009/01/09(金) 15:43:25
zashじゃないのか
46名無しさん@お腹いっぱい。:2009/01/09(金) 16:47:34
zhだろ
47名無しさん@お腹いっぱい。:2009/01/09(金) 17:00:56
日本語訳がないと変態すぎておぼえられない
48名無しさん@お腹いっぱい。:2009/01/09(金) 17:16:14
日本語訳があってもなくても変態すぎる
49名無しさん@お腹いっぱい。:2009/01/09(金) 17:39:14
誰か日本語でわかりやすく補完用関数の書き方教えてくれー。
50名無しさん@お腹いっぱい。:2009/01/09(金) 19:43:02
後藤に頼め
51名無しさん@お腹いっぱい。:2009/01/09(金) 19:59:37
GOTO大地
52名無しさん@お腹いっぱい。:2009/01/10(土) 00:26:21
orzsh
53名無しさん@お腹いっぱい。:2009/01/10(土) 01:03:54
54名無しさん@お腹いっぱい。:2009/01/10(土) 01:19:47
bindkey -v だとコマンドラインスタック使えんのか

>>52 なんか(・∀・)イイ!!
55名無しさん@お腹いっぱい。:2009/01/10(土) 03:31:32
使えるだろ
56名無しさん@お腹いっぱい。:2009/01/10(土) 14:14:19
>>54
bindkey '^Q' push-line
57名無しさん@お腹いっぱい。:2009/01/10(土) 18:12:32
>>52
いいなそれw
誰か作って
58名無しさん@お腹いっぱい。:2009/01/10(土) 19:11:40
scp のリモート側に*を使ってるとno matches found:ってなる。接続前に展開しようとするからかな?
なんか方法ないすかね?
59名無しさん@お腹いっぱい。:2009/01/10(土) 19:53:24
\*
60名無しさん@お腹いっぱい。:2009/01/10(土) 20:44:02
>>59
ありやす!エスケープするのね

#でも、リモートのパス中の*はデフォで\*として解釈してくれたらいいのに
61名無しさん@お腹いっぱい。:2009/01/10(土) 20:54:40
>>60
> #でも、リモートのパス中の*はデフォで\*として解釈してくれたらいいのに
だれが解釈してると思ってんの?
6252:2009/01/10(土) 21:55:10
うっかり書いてしまった。
今は反省している。
つかどんなシェルだよw
63名無しさん@お腹いっぱい。:2009/01/10(土) 23:16:13
使ってるとだんだん気分がorzになるシェルだろ
64名無しさん@お腹いっぱい。:2009/01/10(土) 23:24:41
% readlink /bin/orzsh
csh
65名無しさん@お腹いっぱい。:2009/01/11(日) 01:38:10
>>61
誰も何も、ローカル側のzshでしょ?
リモート側で*を展開する仕事をするのはリモート側のsshdとか、そんなんでしょ?
66名無しさん@お腹いっぱい。:2009/01/11(日) 01:50:33
>>55-56
良く調べもしないですんません、ありがとう!
すごく…快適です…

( なお、うちの環境では
setopt NOFLOWCONTROL
の追加が必要でした )
67名無しさん@お腹いっぱい。:2009/01/11(日) 11:57:28
>>65
> 誰も何も、ローカル側のzshでしょ?
シェルがsshの構文知ってるわけないやん。
> リモート側で*を展開する仕事をするのはリモート側のsshdとか、そんなんでしょ?
sshd が、* を解釈するわけないやん
68名無しさん@お腹いっぱい。:2009/01/11(日) 12:40:54
alias scp='noglob command scp'
69名無しさん@お腹いっぱい。:2009/01/14(水) 09:51:19
>>68
それやったらローカルの*も効かなくなるじゃん。bashのように
scp hoge* remote:
scp remote:hoge* .
ってやりたいってことだろ。

まぁzshの慣習に従って素直に\使えってこったな。長いものには巻かれろ。
70名無しさん@お腹いっぱい。:2009/01/14(水) 09:55:49
> zshの慣習に従って素直に\使え

そんな慣習? zsh???

unix の shell の慣習って言うんならわかるけどサ
71名無しさん@お腹いっぱい。:2009/01/14(水) 13:12:09
>>69
glob の挙動は、setopt で制御できる。
> scp hoge* remote:
> scp remote:hoge* .
こういう書き方するやつは信用できない。
72名無しさん@お腹いっぱい。:2009/01/14(水) 13:49:11
おまえらみんな信用できない。
73名無しさん@お腹いっぱい。:2009/01/14(水) 13:56:05
2ch を信用するやつが一番信用できない
74名無しさん@お腹いっぱい。:2009/01/14(水) 21:12:30
>>58
setopt NONOMATCH
75名無しさん@お腹いっぱい。:2009/01/15(木) 00:33:53
bindkey "^/" undo
と.zshrcに書き込んでもC-/でundoができるようにならないのですが、
どう表記すれば良いのでしょうか?
76名無しさん@お腹いっぱい。:2009/01/15(木) 05:49:50
^/ なんて文字は存在しないから。
たぶん "^_"
77名無しさん@お腹いっぱい。:2009/01/15(木) 08:11:28
>>76
"^_"と設定すると、C-_では動きますがC-/はやはり動きません。
ぐぐってみたら"^/"や"^\/"と書かれた.zshrcを見かけたので、
環境が悪いんですかね?
78名無しさん@お腹いっぱい。:2009/01/15(木) 10:04:32
man ascii (FreeBSD限定?)とかして
ASCII コードのビットコードをよーく眺めるんだ

H と ^H と BS の関係とかな
79名無しさん@お腹いっぱい。:2009/01/15(木) 11:48:10
>>76,78
asciiコード表とにらめっこしてきました。
Ctrl+/で生成される制御文字は存在しないから"^/"にはbindkey
しても意味がない、ということですか?
80名無しさん@お腹いっぱい。:2009/01/15(木) 12:19:01
そんなところだね。
Ctrl+/で端末が何を送ってくるか、あるいは何も送らないのか、
cat | od -c を実行して Ctrl+/、改行、Ctrl+Dを入力するとかして調べてみれば。
81名無しさん@お腹いっぱい。:2009/01/15(木) 14:48:40
setopt glob_complete にすると、マッチしたものを展開しなくなり、
同時に最初の候補に切り替わりますよね。例えば

% ls
tmp1 tmp2 tmp3

% ls tmp*      ← この状態でタブを押すと

% ls tmp1      ← 最初の候補「tmp1」になるのですが
tmp1 tmp2 tmp3

tmp*のままにしておくにはどう設定すればいいんでしょうか?
82名無しさん@お腹いっぱい。:2009/01/18(日) 14:50:30
bindkeyで設定したものが子プロセスのzshに反映されないので困ってます。
.zshrcに

bindkey "^P" history-beginning-search-backward-end

と書いていて、ログイン時のzshでは動くんですが、

% zsh

でサブシェルを立ち上げたときにこのキーバインドが反映されないのです。
screenで起動したときも同じ現象になるのでどうにかしたいのですが、どうすればいいか教えてほしいです。
83名無しさん@お腹いっぱい。:2009/01/19(月) 22:19:03
>>82です。
具体的にはこんな感じです。

% bindkey "^p"
"^P" history-beginning-search-backward-end

% zsh

% bindkey "^p"
"^P" up-line-or-history

% zsh --version
zsh 4.3.4 (powerpc-apple-darwin9.0)


よろしくおねがいします。
84名無しさん@お腹いっぱい。:2009/01/21(水) 07:40:37
zsh -xv でトレースしてみたら
85名無しさん@お腹いっぱい。:2009/01/28(水) 19:11:05
zshだと、
@# date "+%s"
A# echo foo
B# date "+
ここで↑キー押しても「echo foo」と1つ前のヒストリが表示されてしまいますが、
tcshのようにBで↑キー押すと「date "+%s"」と補完するようにはできないでしょうか?
86名無しさん@お腹いっぱい。:2009/01/28(水) 19:22:05
ESC-p
あるいは適当なキーをhistory-search-backwardにバインドすれば?
87名無しさん@お腹いっぱい。:2009/01/28(水) 20:06:57
↑キーにキーバインドってできるんですかね。。
8887:2009/01/28(水) 20:33:14
すいません、できました。
>>86 ありがとうございます。
89名無しさん@お腹いっぱい。:2009/02/01(日) 12:20:41
zsh最強シェル入門買ったー今から読むー
90名無しさん@お腹いっぱい。:2009/02/01(日) 17:07:24
普通はそんなもん買わんよ
ネットと2chで事足りるj
91名無しさん@お腹いっぱい。:2009/02/01(日) 17:10:52
>>90
うん,ネットと2chで事足りることしか書いてない…orz
92名無しさん@お腹いっぱい。:2009/02/01(日) 17:13:07
あははははは
93名無しさん@お腹いっぱい。:2009/02/01(日) 17:13:38
補完の書き方とか超絶難解な変数展開とか、zsh独特でかつややこしいところが
書いてあれば欲しいのだけど、目次みた限りでは書いてなさそうね……
94名無しさん@お腹いっぱい。:2009/02/01(日) 19:22:08
zsh スクリプト書きまくりだと何が互換性があるのかないのか判らなく
なってくる。まあ自分だけしか使わないから一向に構わないのだが。
95名無しさん@お腹いっぱい。:2009/02/01(日) 20:27:11
シェルスクリプトの互換性がよく問題になるのは、「純正sh」用のスクリプトとして書くせいだからね。
zsh専用のスクリプトとして書くぶんには、他のシェルとの互換性なんか気にする必要はない。
96名無しさん@お腹いっぱい。:2009/02/02(月) 14:28:40
そうやって堕落していくのが恐い
97名無しさん@お腹いっぱい。:2009/02/02(月) 14:35:46
なぁに、世の中に zsh 以外など(実用上)存在しないと
見切れば問題ない
98名無しさん@お腹いっぱい。:2009/02/02(月) 14:40:54
移植性を気にするぐらいならシェルスクリプトなど使うな
99名無しさん@お腹いっぱい。:2009/02/02(月) 15:01:06
堕落すればいいじゃん
つ安吾
100名無しさん@お腹いっぱい。:2009/02/02(月) 18:02:19
や…安吾
101名無しさん@お腹いっぱい。:2009/02/02(月) 21:10:11
でもまだzshスクリプトは奇異の目で見られるよな
102名無しさん@お腹いっぱい。:2009/02/02(月) 23:27:36
エロ画像連番スレでは定番の言語だが
103名無しさん@お腹いっぱい。:2009/02/02(月) 23:33:13
勉強になります
104名無しさん@お腹いっぱい。:2009/02/03(火) 00:11:08
for i in {000..123}; do wget …
が期待通り動いた時には感動した
105名無しさん@お腹いっぱい。:2009/02/03(火) 00:21:03
106名無しさん@お腹いっぱい。:2009/02/03(火) 00:39:34
これ使っちゃうと他使うのがつらくなるので
zshは封印気味
107名無しさん@お腹いっぱい。:2009/02/03(火) 03:39:16
他のシェルなんて、本当に必要な時以外使わなければいいじゃない、とか言ってみる。
堕落すると楽になるぞ〜w
108名無しさん@お腹いっぱい。:2009/02/03(火) 14:43:05
>>104
なるほどなw>エロ画像

つーかエロ画像って言葉自体が懐かしいな
淡い青春時代を思い起こさせるw
109名無しさん@お腹いっぱい。:2009/02/06(金) 16:15:39
新スレおめでとうございます
110名無しさん@お腹いっぱい。:2009/02/06(金) 16:23:06
禁止禁止!安吾禁止!
111名無しさん@お腹いっぱい。:2009/02/08(日) 18:53:31
質問です。何も入力がない状態で
112名無しさん@お腹いっぱい。:2009/02/08(日) 18:56:08
途中カキコしてしまいました。すいません
何も入力がない状態でTABキーを押すと、lsを実行し、候補の一つを表示させるにはどうしたらいいでしょうか?
素の状態ではTABでカーソルが移動するだけです・・・
113名無しさん@お腹いっぱい。:2009/02/08(日) 20:41:20
何も入力がない状態だと欲しいのはコマンドの候補じゃないの? そこにあるファイルではなく。
114113:2009/02/08(日) 22:27:34
コマンド候補だと数が多いので…
使うコマンドも多くありませんし、それならカレントディレクトリの内容を表示したほうが有益かと思いました
115名無しさん@お腹いっぱい。:2009/02/08(日) 22:53:18
昔 zsh を推奨するためのネタ一覧で
「ディレクトリを移るのに一々 cd と打つ必要がない」
ってので目を丸くしたのを思い出すな…
116名無しさん@お腹いっぱい。:2009/02/09(月) 15:16:42
auto_cdは使えるだろ
もちろん、使ったほうが速い場合だけ使うわけだが
117名無しさん@お腹いっぱい。:2009/02/09(月) 16:06:09
zshスクリプトで~/.zshrcを自動で読ませる方法ないですか?
今は #!/bin/zsh の真下に source ~/.zshrc を入れてるんですが、毎回書くのも面倒なので
118名無しさん@お腹いっぱい。:2009/02/09(月) 17:54:55
.zshenv
119名無しさん@お腹いっぱい。:2009/02/09(月) 18:09:06
>>118
arigatou
120名無しさん@お腹いっぱい。:2009/02/12(木) 16:40:56
インストールしたパッケージのコマンド (ns) に対する補完が期待した挙動ではなかったので
(具体的には、ns [tab] でカレントディレクトリのファイル名を補完して欲しいのに、host が補完
されてしまう) 。
$FPATH を調べてみたところ _hosts ファイルで compdef されているのが見つかりました。
そこで _hosts ファイル一行目の #compdef から ns を削ったのですが、それでも ns コマンドに
対する補完は期待した挙動にはならず _hosts ファイルでの設定を引きずっています。
デフォルトで設定された挙動を解除するためには他にどのような手順を取るべきでしょうか。
121名無しさん@お腹いっぱい。:2009/02/13(金) 08:16:19
>>120
$HOME/.zshrcでcompinitより後に
compdef _files ns
とか
122名無しさん@お腹いっぱい。:2009/02/13(金) 11:42:05
>> 121
すばらしい。ありがとうございます。
123名無しさん@お腹いっぱい。:2009/02/24(火) 16:33:45
r って押すと直前のコマンド実行するのを抑制する設定ありますか?
124名無しさん@お腹いっぱい。:2009/02/28(土) 15:56:28
タブをどんどん押していって補完ディレクトリ名を次々切り替えていくとき、
名前の最後に/を付加しないようにできませんかね?
そのディレクトリでおkってときは手動で/を付加する、という形にしたい
125名無しさん@お腹いっぱい。:2009/02/28(土) 18:03:26
むしろデフォルトはそうなってますけど

AUTO_PARAM_SLASH <D>
If a parameter is completed whose content is the name of a
directory, then add a trailing slash instead of a space.

126124:2009/03/03(火) 12:27:15
いや、それじゃなくて

例えば、カレントディレクトリにhoge hoge1 hoge2というディレクトリがあって
$ ls h
と打ってタブを押すと
$ ls hoge
まで補完されて、さらにをタブ押すと
$ ls hoge
hoge hoge1 hoge2
と候補が下にリストされ、さらにタブを押すと
$ ls hoge/
となる。このディレクトリ 以下に行きたいときは/を追加して
$ ls hoge//
とすると補完対象がhogeディレクトリ以下に切り替わる。
で、この/がダブるのが何か気持ち悪いってだけの話っす。

まぁ見た目だけの問題だけど・・・
127名無しさん@お腹いっぱい。:2009/03/03(火) 12:35:00
>>126
自分では
ls hoge/
のところでEnterを押して確定していた。

/を押しても確定するって初めて知ったから試してみたけど、
ls hoge//にはならずに、ls hoge/のままの表示になるぞ。
128名無しさん@お腹いっぱい。:2009/03/03(火) 15:52:27
>>127
autoremoveslashしてるとそうなるね。

確定するときはその方が/をダブらないぶんスマートだけど、ディレクトリで終わるコマンドの場合
末尾の/が取り除かれた状態でhistoryに残るが嫌なんだよね。(ディレクトリの最後は常に/で終えたい)

まぁこの辺は個人の嗜好だし、しょうがないか・・・
129名無しさん@お腹いっぱい。:2009/03/08(日) 08:00:23
最近attr.cでコンパイルエラーになる
早く直してくれ > 誰か
130名無しさん@お腹いっぱい。:2009/03/08(日) 14:02:16
チミのところだけぶっこわれているのさ
131名無しさん@お腹いっぱい。:2009/03/08(日) 17:07:37
attr.cって3月4日に入ったんだ。
*attr関数をLinuxあたりに決め打ちしてるんだな。
ちゃんとconfigureしろとレポート送っておきました。
132名無しさん@お腹いっぱい。:2009/03/17(火) 10:26:27
グッバイ野郎ども! コピペではじめるzshファイナル
http://journal.mycom.co.jp/column/zsh/024/
133名無しさん@お腹いっぱい。:2009/03/17(火) 16:48:59
後藤乙
134名無しさん@お腹いっぱい。:2009/03/23(月) 22:20:19
function chpwd()を使って、cdを行った後、画面クリア>ls -lを実行、としようと思いました。
function chpwd() { clear;ls -l } だと、画面最上部にプロンプトが出ません。
今、PROMPTとRPROMPTにはパスやユーザ名やマシン名を出しているのですが、
画面クリア後、両プロンプトを出してからls -lの結果を出すようにはできませんか?
135名無しさん@お腹いっぱい。:2009/03/28(土) 01:07:15
>>134
clear; echo $PROMPT; ls -l
じゃダメ…だよね。右プロンプト出ないしな。
136名無しさん@お腹いっぱい。:2009/04/03(金) 15:13:14
zsh の completion で

rm <TAB>

としたときは、補完候補にディレクトリを含めず

rm -r <TAB>

としたときは、補完候補にディレクトリを出して欲しいのですが、どのような補完関数を書けば出来ますかね。
137名無しさん@お腹いっぱい。:2009/04/03(金) 17:21:19
>>136
> としたときは、補完候補にディレクトリを含めず

それではカレントディレクトリ以外にあるファイルを対象にできないのでは?
138名無しさん@お腹いっぱい。:2009/04/04(土) 00:10:25
>>137
あーなるほど。なかなかうまくいかないもんですね……

tar xvf hoge.tar.gz
した後に
rm ho<TAB>
とすると hoge/ に先にマッチするのが嫌だったのです。
139名無しさん@お腹いっぱい。:2009/04/10(金) 23:22:02
シェル関数の中で、その関数からだけ見えるローカル関数って
定義できませんか?

下請的に何度も使うけど、人が直接呼ぶことはないので、
表に出したくない、といったところです。
140名無しさん@お腹いっぱい。:2009/04/11(土) 08:29:31
初歩的な質問で申し訳ないのですが、モジュールとファンクションの違いがよくわかりません。
モジュールの読み込みにはzmodload、ファンクションの読み込みにはautoloadを使うんでしょうか?
141名無しさん@お腹いっぱい。:2009/04/11(土) 10:59:34
モジュール
Cで書かれた機能拡張。
zshコンパイル時に組み込むように指示することも出来る。

ファンクション
シェルスクリプトで定義する。
142140:2009/04/11(土) 15:47:30
>>141
ありがとうございます。なるほど、そういうことですか。
というか普通、モジュールという言葉はコンパイル済みの部品を指すものですよね。変に考えてしまいました・・・

ファイルの場所は、私のzshのバージョンだと以下ですね。
モジュールは /usr/lib64/zsh/4.2.6/zsh/
ファンクションは /usr/share/zsh/4.2.6/functions/

autoload -U などのオプションの意味を知ろうとググっても、日本語ではなかなかヒットしないものですね。
結局 http://zsh.sunsite.dk/Doc/Release/zsh_toc.html などのdocに辿り着きました。
でもなんでmanが用意されてないんでしょう・・・zshの全情報のmanを作ると膨大な量になるからでしょうかね?
143名無しさん@お腹いっぱい。:2009/04/11(土) 16:24:47
zshのマニュアルは長大なので、いくつかに分割されている(とman zshすると書いてある)。

man zshbuiltinsでautoloadを探すと、
Equivalent to functions -u, with the exception of -X/+X and -w.
(-X/+X -wを除いて functions -u と等価)
ということなので、functionsの説明を参照すると
Equivalent to typeset -f, with the exception of the -M option.
(-Mオプションを除いて typeset -f と等価)
ということなので、typesetの説明を参照すると
-U <略> This flag has a different meaning when used with -f; see below.
(このフラグは-fと一緒に使うと違う意味になる。下記参照)
ということなので、もうちょっと下にある -f の説明を読む。
The -u and -U flags cause the function to be marked for
autoloading; -U also causes alias expansion to be suppressed when
the function is loaded.
(-uおよび-Uフラグは関数に自動ロードの印を付ける。-Uはさらに関数ロード時の
エイリアス展開を抑制する)

typesetは(も)複雑すぎる。
144140:2009/04/11(土) 17:24:46
>>143
manあるんですね。失礼しました。
zshのドキュメントの多さと複雑さには気が遠くなりますが、食らい付くしかないですね・・・

どうもありがとうございました。
145名無しさん@お腹いっぱい。:2009/04/14(火) 13:22:51
コマンドスタックってEsc+qの他にCtrl+qでもできるんだ
こっちのほうがやりやすいな
146名無しさん@お腹いっぱい。:2009/04/27(月) 22:51:31
>>142-144
探すの面倒だから、ついman zshallとかしちゃうw

そういえば、未だにLISTMAX=-1が無制限とか大嘘書いてるサイトがあるんだな
147名無しさん@お腹いっぱい。:2009/04/28(火) 16:25:07
LISTMAX=-1は問答無用で表示だと思ってたが違うの?
LISTMAX=-100とかやっても変わらないんだが
148名無しさん@お腹いっぱい。:2009/04/28(火) 23:54:37
ちゃんとmanに書いてある

LISTMAX=N とすると、
N > 0 -- N行以上のとき訊く
N = 0 -- 画面からはみ出るとき訊く
N < 0 -- (-N)行*以下*のとき訊く

-1は兎も角、-100はすぐ気付くと思うけど
149名無しさん@お腹いっぱい。:2009/04/29(水) 17:41:09
>>148
あほんとだ、/binや/usr/binしか見てなかったから気づかんかった・・・アホスw
まぁ普通はLISTMAX=0だよな

ところでmanには↓のように書いてあるが
If the value is negative, the list will be shown if it spans
at most as many lines as given by the absolute value.
「the list will be shown」ってのは「the asking message will be shown」みたいに言うべきじゃないかな?
150名無しさん@お腹いっぱい。:2009/05/02(土) 20:45:17
ls -1 ./dir/* > tmp

見たいにして、ディレクトリ中のファイルの一覧を作ってるんだけど、 zsh でやると

^[0m^[0m./dir/a^[0m
^[0m./dir/b^[0m
^[0m./dir/c^[0m
^[m

見たいにエスケープシーケンスがついてしまう。
このエスケープシーケンスがつかないようにするにはどうすればいいんでしょうか?

とりあえずは、
sh -c "ls -1 ./dir/* > tmp"
で回避できるんだけど。
151名無しさん@お腹いっぱい。:2009/05/02(土) 20:57:38
>>150
\lsや/bin/lsだとどうなる?
152名無しさん@お腹いっぱい。:2009/05/02(土) 21:06:32
>>151

ありがとう。エスケープシーケンスなくなった。
でも、なぜこれだとだいじょうぶなんだろう。
ls だけだと 組み込みの ls を使うとかそういうことですか?
153名無しさん@お腹いっぱい。:2009/05/02(土) 21:09:02
zsh -f できどうしてもそうなる?
154名無しさん@お腹いっぱい。:2009/05/02(土) 21:10:58
>> 153

zsh -f だとだいじょうぶみたい。
これは、zshrc のせいってことでしょうか?
155名無しさん@お腹いっぱい。:2009/05/02(土) 21:17:34
156名無しさん@お腹いっぱい。:2009/05/02(土) 21:18:21
ミスった

alias ls="ls --color"
のせいか・・・

zsh 関係ないのね。
157名無しさん@お腹いっぱい。:2009/05/02(土) 22:44:27
どの色付きlsかにもよるが、GNU coreutilsのlsだと、
ls --color=auto
で、出力先が端末の場合だけ色が付く。

ただ、ページャに食わせた場合も色が付かないことになるので、
色を認識できるページャを使っている場合に味気ないかもしれない。
158名無しさん@お腹いっぱい。:2009/05/03(日) 01:48:35
>>157
うちは --color=auto だったから>>150と同じ結果にならなかったのね
知らなかった
159名無しさん@お腹いっぱい。:2009/05/03(日) 13:05:23
なるほど、--color= を指定しないとalwaysになるのか
160名無しさん@お腹いっぱい。:2009/05/03(日) 14:42:54
>>153
-fって何?
.zshrcを読み込まないとか?
161名無しさん@お腹いっぱい。:2009/05/03(日) 15:49:59
>>160
tcsh -f と一緒JK
162名無しさん@お腹いっぱい。:2009/05/03(日) 16:28:42
そうだったthx
csh系はほとんど使わないんで忘れてた
163名無しさん@お腹いっぱい。:2009/05/14(木) 11:17:03
fpathの設定ってzshがログインシェルじゃないと自動でやってくれないみたいですね。
自分で設定すればいいかと思ったのですが、ログインシェルがbashの状態で、.zshrcに
fpath=(${fpath} /usr/share/zsh/site-functions /usr/share/zsh/4.2.6/function)
を追加した上でzshを起動しても、相変わらず↓のエラーが出るのですが、何故でしょうか?
zsh: compinit: function definition file not found
164名無しさん@お腹いっぱい。:2009/05/18(月) 09:34:37
補完候補、アルファベット名より漢字名が先に並ぶんだけど

$ ls <Tab>
亜 a あ

どゆルール?
165名無しさん@お腹いっぱい。:2009/05/18(月) 19:40:01
俺の手元ではそんなことにはならないなぁ。
166名無しさん@お腹いっぱい。:2009/05/19(火) 10:51:01
>>164
試した
同じ結果になった
167名無しさん@お腹いっぱい。:2009/05/20(水) 14:38:11
日本語なんて使うなって話じゃね
168名無しさん@お腹いっぱい。:2009/05/20(水) 18:00:39
OSのロケールがそういう奇天烈なcollationを定義しているからじゃないのかな?
169名無しさん@お腹いっぱい。:2009/05/22(金) 20:14:31
補完についての質問です。
cdでカレントディレクトリのhomeにというディレクトリに移動したいとき
cd h[Tab]
と入力すると、~hogeなどのユーザーのホームディレクトリも補完候補
にでてしまます。これを消すにはどうすればいいですか?
170名無しさん@お腹いっぱい。:2009/05/22(金) 20:18:27
>>169
setopt nocdable_vars
171名無しさん@お腹いっぱい。:2009/05/22(金) 20:23:54
>>170
できました。
ありがとうございます。
172名無しさん@お腹いっぱい。:2009/05/23(土) 21:34:13
bashのnohupと類似の方法で、&!とかdisownとかあるようですが、どういう風に使い分けるものですか?
173名無しさん@お腹いっぱい。:2009/05/24(日) 10:51:04
&! は & の代わりに使う。
disownは&で実行開始してしまったものに対して使う。
174名無しさん@お腹いっぱい。:2009/05/24(日) 17:59:55
あんまりエロ画像落とさないからzsh使わないなw
たまに連番が必要になってもbashで
echo {0..9}{0..9}
とかやるだけ。
175名無しさん@お腹いっぱい。:2009/05/24(日) 19:11:12
もうzshからkshに乗り換えた
176名無しさん@お腹いっぱい。:2009/05/24(日) 23:55:35
>>173
ありがとうございます。
177名無しさん@お腹いっぱい。:2009/05/25(月) 01:01:22
bashは0で始まる数字が8進数扱いになるので
ファイル名から数字を切り出して処理するときとかにやりにくくてしょうがない。
178名無しさん@お腹いっぱい。:2009/05/25(月) 06:55:15
時代はzsh
おまいたちも普及活動に励んでください
179名無しさん@お腹いっぱい。:2009/05/25(月) 06:59:16
zshは、
> file
で、ファイル内容を切り詰めできないからやりにくくてしょうがない。
180名無しさん@お腹いっぱい。:2009/05/25(月) 09:54:28
>>179
設定ファイルを理解せずに、コピペする方ですか?
181名無しさん@お腹いっぱい。:2009/05/25(月) 10:02:12
179のような脳味噌の足りてない奴にはzshも宝の持ち腐れってことだな。猫に小判。
182名無しさん@お腹いっぱい。:2009/05/26(火) 07:52:59
>>177
それが理由でbashから乗り換える気になった
zshは本当に便利杉
183名無しさん@お腹いっぱい。:2009/05/26(火) 08:04:19
CFLAGS='-O2 -fomit-frame-pointer'
って設定してる時、

gcc $CFLAGS hoge.c
ってやると、$CFLAGSのオプションがくっついてしまって、
cc1: error: invalid option argument '-O2 -fomit-frame-pointer'
となるから、zshはやりにくくてしょうがない。
184名無しさん@お腹いっぱい。:2009/05/26(火) 08:34:12
>>183
export CFLAGSしてmake hogeする位の頭はないのか?
185名無しさん@お腹いっぱい。:2009/05/26(火) 08:39:05
>>184
それが面倒だろ。

Makefileには別のことを書いていて、
make hoge だと別のオプションまで付いてしまう。
臨時で、Makefileとは別に
gcc $CFLAGS を直接実行したい時に困る。

zsh以外のシェルならできるんだよ。
186名無しさん@お腹いっぱい。:2009/05/26(火) 08:44:30
${=CFLAGS} かね。
187名無しさん@お腹いっぱい。:2009/05/26(火) 08:54:58
>>185
お前はmanもロクに読まずに偉そうな奴だな
${=CFLAGS}使うかSH_WORD_SPLITでも設定しとけ馬鹿が
188名無しさん@お腹いっぱい。:2009/05/26(火) 08:57:15
>>187
そんな余分な手間が増えるだけ面倒だろ。
従来のシェルと非互換になってると問題が多いってこと。
189名無しさん@お腹いっぱい。:2009/05/26(火) 08:59:44
zshは、
stty -echo
しても、コマンドラインでは勝手にもとに戻されてしまうから、
やりにくくてしょうがない。
190名無しさん@お腹いっぱい。:2009/05/26(火) 09:00:39
従来のシェルって何のことだよ
そんなに互換性がお望みならshでも使えばいいだろうが
191名無しさん@お腹いっぱい。:2009/05/26(火) 09:06:58
自分の無知を棚に挙げてわめくような人にzshを使うのは難しいでしょう。
192名無しさん@お腹いっぱい。:2009/05/26(火) 09:08:08
>>187
「manも読まずに」という言い方は論点がずれてる。
回避方法を質問してるんじゃなく、
回避しなければならないような仕様が問題だ、って主張してるわけだから。
193名無しさん@お腹いっぱい。:2009/05/26(火) 09:11:23
>>192
>>183でも>>185でも「回避しなければならないような仕様が問題だ」
なんて主張をしてないだろうが。お前こそが論点をずらしているだろうが。
194名無しさん@お腹いっぱい。:2009/05/26(火) 09:17:11
わざわざ違えて作ったものを別のものと同じと決めつけて
自分の思い込みと違うからと文句を言うのはキチガイでしかない。
婉曲な自己紹介乙。
195名無しさん@お腹いっぱい。:2009/05/26(火) 09:19:43
>>193
「やりにくくてしょうがない」
→「やる方法はあるが手間がかかる」
→「わざわざ手間を増やすのは問題だ」
→「回避しなければならないような仕様が問題だ」

主張してるねw


もし、やる方法を本当に知らない場合は、
「やりにくくてしょうがない」じゃなくて「できないので困る」と言うだろうし、
それを質問してるなら、「やる方法はありますか?」って言うはず。
196名無しさん@お腹いっぱい。:2009/05/26(火) 09:21:34
朝から基地外が登場かよ。全く大概にしろ。
197名無しさん@お腹いっぱい。:2009/05/26(火) 09:23:43
>>194
kshやbashも違えて作って(独自)拡張もしてる。
が、shとの互換性は保ってる。

zshは、独自拡張したのは言いが、互換性を犠牲にしたのが大きな欠点。
もちろん、互換モードで回避はできるけど、通常状態では互換性がないし、
互換モードにしてしまうとzshの特徴がなくなってしまうので本末転倒だし。
198名無しさん@お腹いっぱい。:2009/05/26(火) 09:24:29
>>194の言う通りだな
キチガイはスルーで
199名無しさん@お腹いっぱい。:2009/05/26(火) 09:27:00
>>196
名古屋人発見
200名無しさん@お腹いっぱい。:2009/05/26(火) 09:30:00
>>199
名古屋人じゃないが、方言なのか?
201名無しさん@お腹いっぱい。:2009/05/26(火) 09:47:55
http://zsh.dotsrc.org/FAQ/zshfaq02.html

2.1: Differences from sh and ksh

The classic difference is word splitting, discussed in question 3.1;
this catches out very many beginning zsh users. As explained there,
this is actually a bug in every other shell. The answer is to set
SH_WORD_SPLIT for backward compatibility. The next most classic
difference is that unmatched glob patterns cause the command to abort;
set NO_NOMATCH for those.


FAQも読まずに筋違いな文句をつけるあたり、気違いと言わざるを得ない。
202名無しさん@お腹いっぱい。:2009/05/26(火) 09:48:39
ふぁqなんて誰も読まねえよ
203名無しさん@お腹いっぱい。:2009/05/26(火) 09:51:36
>>202
お前が英語も読めない馬鹿なのは分かったから黙ってろ
204名無しさん@お腹いっぱい。:2009/05/26(火) 10:03:05
>>201
いや、だから、>>192 さんは >>201 を知った上で
「それがよくない」と言っているんではないかと。
205名無しさん@お腹いっぱい。:2009/05/26(火) 10:15:20
>>204
明らかに読んでないだろ。読んでいれば、こういう回避法があるのは知ってるが
それは気に食わないという言い方にになる。
206名無しさん@お腹いっぱい。:2009/05/27(水) 00:10:19
ふぁqなど読まずに寝ラーを利用するのが賢いzsher
207名無しさん@お腹いっぱい。:2009/05/27(水) 03:20:19
英語も読めない馬鹿が賢いとは笑止千万だわ
208名無しさん@お腹いっぱい。:2009/05/27(水) 08:56:44
>>203>>207みたいに読まない=読めないって決め付ける奴って何なんだろう
自分がロクに読めないから他人もそうだと思うんだろうか
日本語で書かれてても読まないものは読まないのにね
209名無しさん@お腹いっぱい。:2009/05/27(水) 09:51:11
ドキュメントを読みもせずに偉そうな物言いをするなってこった
210名無しさん@お腹いっぱい。:2009/05/27(水) 09:59:41
>>208
>>202が「誰も読まない」と決めつけているがそれはスルーなの?
おまえ>>202か?
211名無しさん@お腹いっぱい。:2009/05/27(水) 10:01:54
シャドーボクサーはお帰りください
212名無しさん@お腹いっぱい。:2009/05/27(水) 18:02:28
ログインシェルを変えることができない環境で擬似的にzshをログイン
シェルにすることはできますか?
213名無しさん@お腹いっぱい。:2009/05/27(水) 18:22:31
exec zsh
214名無しさん@お腹いっぱい。:2009/05/28(木) 15:14:33
rootでzshをログインシェルにするのは、やっぱやめたほうがいい?
215名無しさん@お腹いっぱい。:2009/05/28(木) 17:25:49
自分で判断できないなら止めとけ
216名無しさん@お腹いっぱい。:2009/05/28(木) 19:29:09
>>212
screen -s zsh
217名無しさん@お腹いっぱい。:2009/05/28(木) 21:55:16
>>215
ずっとそうやってたんだけど、知り合いに言ったら呆れられてしまった
理由を聞いても、rootではそもそもzshみたいなもんは使うな、の一点張りで
確かにbashのほうが安心だとは思うけどさ・・・
218名無しさん@お腹いっぱい。:2009/05/28(木) 22:06:27
オレはrootでこそzsh使いたいんやけどやっぱ甘いんかねえ
219名無しさん@お腹いっぱい。:2009/05/28(木) 22:41:57
自分の鯖で自分しかrootにならないんならいいんじゃね
220名無しさん@お腹いっぱい。:2009/05/28(木) 23:11:16
zshが駄目なら同じ理由でbashも駄目だろ。/bin/shのみ許可とか。
もちろんvimも駄目だ。viかed。
221名無しさん@お腹いっぱい。:2009/05/28(木) 23:32:40
>zshが駄目なら同じ理由でbashも駄目だろ。
ズンドコベロンチョみたいなもんか
222名無しさん@お腹いっぱい。:2009/05/28(木) 23:55:23
>>220
一行目には同意だがvimは関係ないな。使えれる環境なら使えばいいだけの話。
223名無しさん@お腹いっぱい。:2009/05/29(金) 00:13:27
viはディスク復旧時に/var/tmpだのtermcapが見えないと云々というのは
最近でも言うのかね。
224名無しさん@お腹いっぱい。:2009/05/29(金) 06:57:57
純正viはSolarisとかの商用系にしか存在しない。ソース非公開だから。
それ以外のOSでは、viの正体はvimかnviだな。

>>223
vimならtermcap/terminfoがなくてもデフォでbuilt-inのvt100で立ち上がる。

>>222
「ら抜き」ならぬ「れ入れ」やめれ
225名無しさん@お腹いっぱい。:2009/05/29(金) 07:33:49
>>224
単なるtypoに過剰反応しすぎだろ
226名無しさん@お腹いっぱい。:2009/05/29(金) 07:45:13
typoか? 最近こういう言葉流行ってると思うが
227名無しさん@お腹いっぱい。:2009/05/29(金) 08:24:13
>>226
>>222だがtypoだ。こんな使い方が流行ってるのか?
228名無しさん@お腹いっぱい。:2009/05/29(金) 09:06:21
zshのソースはどこのFTPサイトから落せれますか?
FWのせいか、一部のサイトには行けれないようなんですが。
あと、手元のCD-Rは何故か読めれなくなってしまいました。
229名無しさん@お腹いっぱい。:2009/05/29(金) 09:07:46
それは教えれません
230名無しさん@お腹いっぱい。:2009/05/29(金) 09:44:56
>>228
朝からつまんねーぞ
231名無しさん@お腹いっぱい。:2009/05/29(金) 09:47:21
>>229
それは「れ入れ」じゃなくて「ら抜き」

ハイ、やり直し
232名無しさん@お腹いっぱい。:2009/05/29(金) 16:07:02
それは教えれられません
233名無しさん@お腹いっぱい。:2009/05/29(金) 16:38:42
>>232 は「れ入れ」の意味を理解していないようだ。
234名無しさん@お腹いっぱい。:2009/05/29(金) 16:54:21
それは教えられれません
235名無しさん@お腹いっぱい。:2009/05/29(金) 17:38:14
られれのおじさん
236名無しさん@お腹いっぱい。:2009/05/29(金) 17:46:06
その答えは、ここには書けれません
237名無しさん@お腹いっぱい。:2009/05/29(金) 21:13:51
お前ら、zshの話しろよ
238名無しさん@お腹いっぱい。:2009/05/29(金) 21:18:29
zshのことは、これ以上話せれません
239名無しさん@お腹いっぱい。:2009/05/29(金) 22:26:07
いい加減にしれよ
240名無しさん@お腹いっぱい。:2009/05/30(土) 19:13:12
zshの読み方はズシュッ!でいいのでしょうか
241名無しさん@お腹いっぱい。:2009/05/30(土) 19:19:52
雑種
242名無しさん@お腹いっぱい。:2009/05/30(土) 19:22:52
ツェッシュ
243名無しさん@お腹いっぱい。:2009/05/31(日) 01:27:43
ズィーッシュ
244名無しさん@お腹いっぱい。:2009/06/09(火) 20:46:01
昨日bashからzshに引越したんですけど,
bashではalias rma='rm -f *~ .*~ *#'で通じたんですけど,zshだと
zsh: no matches found: *~
となります.

bashだと存在しなかったらなにもコメントがでてこないんですけど
245名無しさん@お腹いっぱい。:2009/06/09(火) 21:10:19
>>244
setopt nullglob
246名無しさん@お腹いっぱい。:2009/06/09(火) 21:30:49
>>217
/bin/sh に比べれば bash も zsh も等しくリッチすぎる環境
247名無しさん@お腹いっぱい。:2009/06/09(火) 21:55:41
純粋のshなんて何年も触ってないや
最近のLinuxは/bin/shがbashのシボリックリンクだし
他のお堅いunix系から見れば甘過ぎなんだろうけど
248名無しさん@お腹いっぱい。:2009/06/09(火) 22:00:57
純正の定義を頼む
249名無しさん@お腹いっぱい。:2009/06/09(火) 23:48:31
>>248
sh:
libedit.so.5 => /lib/libedit.so.5 (0x28096000)
libncurses.so.6 => /lib/libncurses.so.6 (0x280ab000)
libc.so.6 => /lib/libc.so.6 (0x280ed000)
# ldd /usr/local/bin/zsh
/usr/local/bin/zsh:
libzsh-4.3.4.so => /usr/local/lib/zsh/libzsh-4.3.4.so (0x2807d000)
libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x2810f000)
libncurses.so.6 => /lib/libncurses.so.6 (0x28207000)
libm.so.4 => /lib/libm.so.4 (0x28249000)
libc.so.6 => /lib/libc.so.6 (0x28260000)
# ldd tcsh
tcsh:
libncurses.so.6 => /lib/libncurses.so.6 (0x280c6000)
libcrypt.so.3 => /lib/libcrypt.so.3 (0x28108000)
libc.so.6 => /lib/libc.so.6 (0x28121000)
250名無しさん@お腹いっぱい。:2009/06/11(木) 22:27:21
リモートでプロセスをnohupなり&!なりdisownなりで動かした状態でexitすると、
ターミナルが固まってしまうんですが、こういう場合はどうすれば良いですか?
251名無しさん@お腹いっぱい。:2009/06/12(金) 00:33:35
お前も一緒に固まればいい
252名無しさん@お腹いっぱい。:2009/06/12(金) 10:40:45
どうやったらそんなことになるのか謎
253名無しさん@お腹いっぱい。:2009/06/12(金) 10:44:34
>>252
OpenSSH の FAQだろ
254250:2009/06/12(金) 13:32:53
sshやrshなどの仕様として、入出力ストリーム(標準入力、標準出力、標準エラー出力)が
EOFを返すまでコネクションを維持するんですね。スレチで失礼しました。
255名無しさん@お腹いっぱい。:2009/06/26(金) 01:24:11
history共有はOFFのほうが好みなので切っています。
この場合、historyファイルへの保存はログアウトするときにされると思いますが、
ログアウトせずにその場で強制的に書き込ませるコマンドなどはないでしょうか?
256名無しさん@お腹いっぱい。:2009/06/26(金) 15:09:37
tcshのように
何もない所からtabを押したら
カレントディレクトリにあるファイル一覧を表示したいのだが、
どうすればよろしいですか?
257名無しさん@お腹いっぱい。:2009/06/26(金) 17:30:14
tcsh使っとけハゲ
258名無しさん@お腹いっぱい。:2009/06/26(金) 20:33:44
ハゲじゃないもん!
259名無しさん@お腹いっぱい。:2009/06/27(土) 02:11:51
>>255
fc -W
好みに応じて -I オプションをつける
260名無しさん@お腹いっぱい。:2009/06/27(土) 03:43:26
zshでmanでコマンド調べたときに引数のところに色がつくのってどうすればいい?
teratermから接続したときは色づけされてるけど、Xの端末からmanで調べたときに色が付いてない。
zshrcの色関係はdircolorしかしてません
261名無しさん@お腹いっぱい。:2009/06/27(土) 03:46:50
それはたぶん
「強調」のエスケープシーケンスを
「ターミナル」がどう表現するかを設定すべきトコロだと思うぞ。
262名無しさん@お腹いっぱい。:2009/06/27(土) 17:59:56
>>259
ありがとうございました。
263260:2009/06/27(土) 21:41:16
>>261
setopt prompt_subst
でもだめだった他になにかあるんですかね?
264名無しさん@お腹いっぱい。:2009/06/28(日) 07:51:58
>>260
ちゃんとlsで色がつくんだったら、
alias lv='/usr/bin/lv -c'
とか
alias less='/usr/bin/less -r'
とか
alias man='/usr/bin/w3mman'
compdef _man w3mman
とかpagerのオプション変えてみたら?
265名無しさん@お腹いっぱい。:2009/06/29(月) 11:54:58
みなさん、はじめまして。じつは、これが2ちゃんねるデビューです。ところで、zsh を愛用しているのですが、
たとえば
% ls ~/documents/hoge
と打ったあとで、hoge のhにカーソルを持ってきて、fと打ってtabおすと、つまり
% ls ~/documents/f[tab]hoge

bashだと
% ls ~/documents/fuga/hoge
となりますが、zshだと補完してくれません。何かオプションの設定があるのでしょうか。
266名無しさん@お腹いっぱい。:2009/06/29(月) 12:11:28
bindkey "^i" として出てきたものを man zshall で検索してその周辺を読む
267名無しさん@お腹いっぱい。:2009/06/29(月) 14:25:43
266さん ありがとうございます。 さて、bindkey "^i"と、プロンプトで入力
すると、menu-expand-or-complete と出ます。というのは、.zshrcでそういう設定
をしているからなのですが、デフォルトはexpand-or-completeですよね。
それで、man zshall とかinfoファイルなどを読んでもどうも関連のありそうな
ものは見当たらないのですが。。。
268名無しさん@お腹いっぱい。:2009/06/29(月) 14:26:46
じゃあそういうものだと思って諦める。
269名無しさん@お腹いっぱい。:2009/06/29(月) 19:15:25
ubuntuのデフォルトbashでインストールしてないコマンド打つと
パッケージリストから探してきてこれ入れれって感じのメッセージ出るんだけど、
zshではどうやるの?
270名無しさん@お腹いっぱい。:2009/06/29(月) 21:22:21
>>269
source /etc/zsh_command_not_found
271名無しさん@お腹いっぱい。:2009/06/29(月) 21:24:44
command-not-foundパッケージの機能だな。
bashでコマンドが見付からなかったときに実行されるシェル関数
command_not_found_handleを定義することで実現している。
コマンドとパッケージの対応DBは別途作るみたいだね、これ。

相当するものはzshにはないと思うけど、入力文字列の先頭語を
whenceで探し、見付かれば実行、見付からなければパッケージを提案
という動作をするwidget(シェル関数)を作って^M(Enterキー)にバインド
すれば出来るはず。
272名無しさん@お腹いっぱい。:2009/06/29(月) 21:25:28
あら、zsh用も含んでるのか、これ。
273名無しさん@お腹いっぱい。:2009/06/29(月) 21:35:03
>>271
書き込む前にリロードしるw
274名無しさん@お腹いっぱい。:2009/06/30(火) 09:55:43
>5 の本(zsh最強シェル入門)とは別の
「zshの本」って出てるのね
http://www.amazon.co.jp/dp/4774138649
275名無しさん@お腹いっぱい。:2009/06/30(火) 10:03:56
最近流行ってるの?
276名無しさん@お腹いっぱい。:2009/06/30(火) 11:47:58
>>274
書店でめくってみたけど、最強〜よりはまともな感じ。
補完関数の書き方とか詳しかった。
277名無しさん@お腹いっぱい。:2009/06/30(火) 18:15:33
>>270
>>271
どうもです。試してみます
278名無しさん@お腹いっぱい。:2009/07/02(木) 22:29:43
>>202
どうでもいい。黙れ。、
279名無しさん@お腹いっぱい。:2009/07/03(金) 01:14:28
>>278
遅レスにマジレスカコイイ><
280名無しさん@お腹いっぱい。:2009/07/04(土) 08:48:57
>>274
「tcshなんてうんこ」の広瀬さんが本出してたのか
281名無しさん@お腹いっぱい。:2009/07/08(水) 10:32:49
広瀬本関連の記事? かな

zshで究極のオペレーションを
・ 第1回 zshで広がる世界
ttp://gihyo.jp/dev/serial/01/zsh-book/0001

本を出そうという話になってから6年かかったそうで。
お疲れ様です〜
282名無しさん@お腹いっぱい。:2009/07/08(水) 10:35:27
俺はマニュアル読むのに6年かかった
283名無しさん@お腹いっぱい。:2009/07/08(水) 14:59:04
読み終わったら仕様が変わってた
284名無しさん@お腹いっぱい。:2009/07/09(木) 22:40:15
あるあるw
285名無しさん@お腹いっぱい。:2009/07/10(金) 16:03:58
>274
買ってみた

まあ日本語レファレンス的な感じかな

zshが巨大でマニュアル自体が巨大なので
仕方ないとは思うし,ちょっと手にとって
見るために置いておくのも悪くないかな.

できれば冒頭の「デモンストレーション」の章で

ヲラヲラ,すげーだろ

的なノリのzsh魅力紹介がもっとあると良かったかなぁ
286名無しさん@お腹いっぱい。:2009/07/11(土) 16:31:56
一般的に言って、zshがあればファイラなんてものはいらない、て感じなんでしょうか。
287名無しさん@お腹いっぱい。:2009/07/11(土) 16:33:50
人それぞれ
288名無しさん@お腹いっぱい。:2009/07/14(火) 20:48:17
タイプしたコマンドの末尾に空白があると、ヒストリにはその空白を削った形で記録されるようですが、
末尾の空白を削らずにそのまま記録させるには、どうしたらいいでしょうか?
289名無しさん@お腹いっぱい。:2009/07/14(火) 21:23:53
>>288
なんでそんなことしたいのかが、さっぱり分からん。
290名無しさん@お腹いっぱい。:2009/07/14(火) 21:29:38
bashならスペースも含めてヒストリに記録されるよ。
291名無しさん@お腹いっぱい。:2009/07/14(火) 22:19:08
unsetopt hist_reduce_blanks
292名無しさん@お腹いっぱい。:2009/07/14(火) 22:25:35
>>291
それは「末尾の空白削らずに」にはならない。
というか、最初から unsetopt hist_reduce_blanks 状態だし。
293288:2009/07/15(水) 23:25:10
少し勘違いしてました。仰る通り、最初からunsetopt hist_reduce_blanksでした。
何がしたかったかというと、例えば、(■はカーソルです)

ls /etch/zshr■ ・・・@

まで打ってからTAB押すと

ls /etc/zshrc ■ ・・・A

と補完され、■の直前にスペースが挿入されますが、これを実行するとヒストリには
このスペースが取り除かれます。Aの状態でさらにスペースを押すと、見た目上は
名にも変化しませんが、履歴にはスペースも含めて記録されます。

デフォルトではこういう設定なのだと思いますが、見た目通りにヒストリに
記録できたほうが使いやすいなと個人的に思った次第です。
294名無しさん@お腹いっぱい。:2009/07/17(金) 22:02:45
zshrcで、PROMPTの中に改行を含めて2行で表示しています。
この状態でRPROMPTを設定すると、2行目の右端に表示されます。
1行目の右端にも文字を表示したいのですが、どうしたらいいですか?
295名無しさん@お腹いっぱい。:2009/07/25(土) 14:43:54
「zshの本」って買いですか?
当方 zsh 歴1ヶ月の noob です。
296名無しさん@お腹いっぱい。:2009/07/25(土) 16:33:24
コマンドラインの展開で、

$ ls
a1.txt a2.txt a3.txt

として

$ echo a{1,2,3}.txt
a1.txt a2.txt a3.txt

$ echo a*.txt
a1.txt a2.txt a3.txt

と、なりますが、

$ echo --option=a{1,2,3}.txt
--option=a1.txt --option=a2.txt --option=a3.txt

$ echo --option=a*.txt
zsh: no matches found: --option=a*.txt

こういった感じに、展開したファイル名の前に、同じ文字列を付け足したいのです。

上記の操作で、行われていない理由は、理解しています。

展開したファイル名の前 or 後に文字列を足す方法って、ありませんでしたっけ?

# 前に、どっかで見た気がするんだよな〜。
297名無しさん@お腹いっぱい。:2009/07/25(土) 17:04:43
% setopt histsubstpattern
% echo a*.txt(:s/#/--option=/)
--option=a1.txt --option=a2.txt --option=a3.txt
298名無しさん@お腹いっぱい。:2009/07/25(土) 17:52:22
zshのインストールの時点でつまりました><

zsh-4.3.9.tar.bz2は解凍できたんですけど…
システム管理者じゃないのでスーパーユーザーになれません。

ここで質問なんですけど
スーパーユーザーじゃなくてもzsh-4.3.9はインストール出来ますか?
299名無しさん@お腹いっぱい。:2009/07/25(土) 17:53:26
出来る。回答終了。
300名無しさん@お腹いっぱい。:2009/07/25(土) 18:56:11
>>298
             +-----------------------+ +------+
G o o g l e  | configure --prefix    | | 検索 |
             +-----------------------+ +------+
301名無しさん@お腹いっぱい。:2009/07/25(土) 19:39:59
zsh以前の問題だな
302名無しさん@お腹いっぱい。:2009/07/26(日) 01:00:04
/etc/shellsに書かないとログインシェルに使えない環境なら
ログインシェルからzshをexecすれ。
303名無しさん@お腹いっぱい。:2009/07/26(日) 06:45:53
素人がそれをやると無限ループしたりするけどな
304名無しさん@お腹いっぱい。:2009/07/26(日) 20:23:06
昔はよくやらかして死す缶に怒られたもんだ><
305名無しさん@お腹いっぱい。:2009/07/28(火) 06:32:37
>>298だが…
返信ありがとう!
configure --prefix したんだが
「checking if tcsetpgrp() actually works... error
configure: error: unexpected return status」と最後の2行に出て
インストールできなかったorz

Solalis 10 のバージョンが低いのが原因か…?
306名無しさん@お腹いっぱい。:2009/07/28(火) 08:31:56
ncursesとかいれている?
307名無しさん@お腹いっぱい。:2009/07/28(火) 17:39:47
「zshの本」に「うんこ」の単語発見
308名無しさん@お腹いっぱい。:2009/07/28(火) 17:54:52
>>307
ありがと。あやうく買うところだったよ。やっぱくそ本なんだな。
309307:2009/07/28(火) 18:23:41
>>308
いや、買うなとは言ってないんだけど。
一見「tcshはうんこ」みたいな表現を抑えたのかなと思ったら消し忘れがあってちょっと笑った、て程度の話。
310名無しさん@お腹いっぱい。:2009/07/31(金) 04:19:25
>>309
え,あれ,消し忘れだったのかw
なんでいきなりtcshの仕様をうんこで修飾してるんだろうとは思ったがw
311名無しさん@お腹いっぱい。:2009/07/31(金) 19:00:10
ls
Desktop/ aa.file bb.file cc.file

ってあって,D入力してタブでDesktopって補完してほしいけど
他にDBUS_SESSION_BUS_ADDRESS DESKTOP_SESSION DISPLAY
やらがでて来てうっとうしいんですけども,どうすればいいですか?
312名無しさん@お腹いっぱい。:2009/08/02(日) 17:14:20
>>309
ワロタ
わざとなんじゃないのかそれw
313名無しさん@お腹いっぱい。:2009/08/04(火) 19:11:12
cp でフォルダ渡したときに 頭よく再起でフォルダごとコピーしてくれないかね?
フォルダかファイルで判別するとか
314名無しさん@お腹いっぱい。:2009/08/04(火) 19:25:14
>>313
alias cp='cp -r'
315名無しさん@お腹いっぱい。:2009/08/04(火) 20:00:08
>>314
あっ ほんとだ・・・・・ 恥ずかしいっす
316名無しさん@お腹いっぱい。:2009/08/04(火) 22:01:38
ESC-h で$#0を引数にrun-helpしてくれますが
これを $#0がniceだとかsudoだとかのときに$#1を引数にrun-helpしてくれる
ようにできませんかね。ESC-H とかで。
317名無しさん@お腹いっぱい。:2009/08/05(水) 16:23:26
zshって、ゼットシェルって発音でおk?
で、英語発音だとズィーシェルになるんかね?
318名無しさん@お腹いっぱい。:2009/08/05(水) 16:37:25
>>317
Cシェルのもじりでもあるので、Cに濁点を付けたイメージで。
319名無しさん@お腹いっぱい。:2009/08/05(水) 20:52:19
俺の職場の人は雑種って呼んでたけど少数派かな
320名無しさん@お腹いっぱい。:2009/08/05(水) 20:55:17
ズィーシュ
321名無しさん@お腹いっぱい。:2009/08/05(水) 21:06:43
ズシュ(刀で切られた感じで)
322名無しさん@お腹いっぱい。:2009/08/05(水) 22:40:20
デジャヴです
323名無しさん@お腹いっぱい。:2009/08/07(金) 00:44:20
zsh使いは「ゼッシャー」でおk?
324名無しさん@お腹いっぱい。:2009/08/07(金) 00:48:57
Z武
325名無しさん@お腹いっぱい。:2009/08/07(金) 09:10:08
>>324
やめろ
326名無しさん@お腹いっぱい。:2009/08/07(金) 19:48:58
>>324
笑いどころはどこでしょうか
327名無しさん@お腹いっぱい。:2009/08/07(金) 21:13:02
$SHELLがbashの環境で、screen起動時に、rcを指定したzshを起動しようとしています。
ただのzshならscreenrcに shell zsh と書けばいいのですが、自分のzshrcを指定する方法が分かりません。
今はscreenの各ウィンドウでいちいち source /path/to/myzshrc としてます。
どうしたらrcを指定してzshを起動できますか?
328名無しさん@お腹いっぱい。:2009/08/07(金) 21:19:17
環境変数でも使えば。
329名無しさん@お腹いっぱい。:2009/08/08(土) 00:01:56
>>316
こんなんで COUNT 指定で COUNT-th の arg を run-help している。
似たかんじでやればいいかな。

autoload -U run-help-arg
zle -N run-help run-help-arg

% cat .zfunc/run-help-arg
emulate -L zsh

if (( NUMERIC )); then
local bufwords
# This splits the line into words as the shell understands them.
bufwords=(${(z)BUFFER})

zle .push-line -N
BUFFER="$WIDGET $bufwords[NUMERIC]"
zle .accept-line

return
fi

zle .run-help

return 0
330名無しさん@お腹いっぱい。:2009/08/10(月) 22:33:12
質問させてください。

vim app/views/users/show.html.rb
まで打ったのを
vim app/views/users/
まで戻したいとき、何かコマンド一発でできないでしょうか?
Ctrl+wのような感じです。

/とか、デリミタっぽいところまで一気にbackspaceさせたいのです。
教えていただけると幸いです。
331名無しさん@お腹いっぱい。:2009/08/10(月) 23:06:29
>>330 WORDCHARS=`echo "$WORDCHARS" | sed 's!/!!'` とでもしてWORDCHARSから / を抜いてしまうのはグローバルに影響するから 宜しくないかな?
332名無しさん@お腹いっぱい。:2009/08/11(火) 01:37:58
最近tcshから乗り換えたんだが…
tcshでは「/!* &」をaliasで設定するとbgで常に実行されて便利だったので
zshでも設定したんだがうまくbgで実行されなかったorz
333名無しさん@お腹いっぱい。:2009/08/11(火) 03:33:26
>>332
関数を使って、
xv() { command xv "$@" & }
とかすればOK。
ただ、全部これを定義するのは厄介だと前から
思ってるんだけど、何かいい方法はないだろうか。
334名無しさん@お腹いっぱい。:2009/08/11(火) 05:37:22
地震をzshでなんとかするには?
335名無しさん@お腹いっぱい。:2009/08/11(火) 09:43:20
地震後一定時間キー入力がなかったら
生存していないとみなして
rm -rf /erodata を実行するようにしておくとか



…なんていうタイムアウトがないかと
info 見てみたけどなさそうだぬ
336名無しさん@お腹いっぱい。:2009/08/11(火) 12:47:50
>>330
一発ではないけどvi-backward-kill-wordを使えば多少は楽になる。
337名無しさん@お腹いっぱい。:2009/08/11(火) 17:55:42
>>336
bindkey "^W" vi-backward-kill-word

でいい感じになった。>>330 じゃないけどthx
338名無しさん@お腹いっぱい。:2009/08/12(水) 09:24:09
>333
emacsで設定したらエラーが出てしまうなぁ…
339名無しさん@お腹いっぱい。:2009/08/12(水) 10:26:15
>>330
昔は tcsh からの乗換組が多かったから、このスレでも何度か話題に
なっていたと思う。

tcsh-backward-delete-word () {
    local WORDCHARS="${WORDCHARS:s#/#}"
    zle .backward-delete-word
}
zle -N tcsh-backward-delete-word
bindkey '^[^H'  tcsh-backward-delete-word

割当キーはお好きなように。
340名無しさん@お腹いっぱい。:2009/08/14(金) 04:23:51
>>316

ちょっと外れるけど
久しぶりに man zshall してたら

run-help-ssh() {
コマンドラインが ssh ... command だったら run-help command
}

とかすると

% ssh ... command

で run-help したときに
run-help-ssh が呼ばれる → run-help command
ってなるらしい。
昔はこんなんなかった気がするけど。

run-help-nice とか書いとけば要求も満たされるんじゃない?
341名無しさん@お腹いっぱい。:2009/08/16(日) 01:18:57
Parameter Expansion Flags ってよく覚えられないな〜
そう頻繁には使わないし、以前使ってても正確に思い出せない

for i ( ${(f)"$(ls)"} ) echo $i

みたいなのも $〜(f)〜 だか $〜(F)〜 だった気がする程度しかわからん
man zshexpn せんとわからん

もっというと Modifiers も $i:h 使おうとして
dirname の Modifiers って h とか r だっけってかんじだったりする

$i:[補完] でオプション補完みたいに説明付きで補完候補出れば
覚えなくてもいいかな
でもこれけっこう面倒そうさな
342名無しさん@お腹いっぱい。:2009/08/16(日) 01:35:08
csh由来のmodifierは
head ⇔ tail
root ⇔ ext
extの意味は勘違いしないだろうから、そこからはじめれば他もわかるでしょ。
343名無しさん@お腹いっぱい。:2009/08/16(日) 04:52:49
そういやなんで a/b.ext の a/b が root name なんだろう
344名無しさん@お腹いっぱい。:2009/08/18(火) 01:27:41
なに root name って。

$dirname/$(basename file ext) ?キモ
345名無しさん@お腹いっぱい。:2009/08/18(火) 05:29:48
質問
補完候補からディレクトリを除外するにはどうしたらいいですか?
% vi でタブを押したときにディレクトリがマッチして使い辛いです。
間違ってディレクトリを開くこともしばしば……
346名無しさん@お腹いっぱい。:2009/08/18(火) 05:51:55
その動作で構わんだろ。サブディレクトリ中のファイルを指定することも考えろよ。

347345:2009/08/18(火) 15:33:00
詳しい方のみ回答をお願いします。
また回答者の主義・主観の主張はご遠慮ください。
348名無しさん@お腹いっぱい。:2009/08/18(火) 16:20:42
次の方どうぞ
349345:2009/08/18(火) 18:39:18
自己解決しました。
350名無しさん@お腹いっぱい。:2009/08/20(木) 05:54:44
変数値の展開(?)についての質問です。
PAGER='less -Rf' という設定で以下のシェル関数を定義して使うと、

function Diff {
svn diff $1 | ${PAGER}
}

% Diff some_file
Diff:1: command not found: less -Rf
svn: ストリームに書き込めません: Broken pipe

となり、'less -Rf' が一続きのコマンド名として扱われてしまいます。素直に
svn diff $1 | less -Rf

と解釈してもらうにはどう書けばいいのでしょうか?
351名無しさん@お腹いっぱい。:2009/08/20(木) 06:16:14
352350:2009/08/20(木) 06:40:46
>>351
うは、同じスレに答えが、しかもFAQネタorz

ありがとうございました。
${=PAGER} でいけましたっす。
353名無しさん@お腹いっぱい。:2009/08/21(金) 17:53:16
実際使っててどっちが使いやすいんだろうな?
zshのデフォがno_sh_word_splitということは、それはそれでメリットがあるからやってるんだろうけど
大してzsh使い込んでないんでよう分からん
354名無しさん@お腹いっぱい。:2009/08/22(土) 01:53:19
個人的には no_sh_word_split だけど migemo 補完って誰かやってる? (前半と後半に関係は特にありません。)
355名無しさん@お腹いっぱい。:2009/08/25(火) 23:40:52
いつのバージョンからかわからないんだけど
ファイルa aaがカレントディレクトリにあるときに
% rm a
の状態でTABを押したときの補完が

% rm a
a aa
と候補が出るのではなく

% rm aa
とaaにだけ補完されるんだけど

どなたか治し方しらないですか
ファイル消えまくりorz
356名無しさん@お腹いっぱい。:2009/08/26(水) 01:00:49
menu complete の動作が嫌ということ? 自分もこの動作があまり好きでないので、
setopt NO_AUTO_MENU にしている。適当なキーに menu-expand-or-complete を
割り当てて、欲しいときは明示的に menu complete を呼び出すようにしているけど。
でも、デフォルトの動作って途中で変わったかな。tcsh から移行したときに
設定したような気がするが、もうよく覚えてない。
357名無しさん@お腹いっぱい。:2009/08/26(水) 01:26:27
違うっす

lsコマンドなどでは、
% ls aの時点でTABを押すと
a aa
と補完候補が出て、次の文字の入力待ちになるにもかかわらず
rmコマンドの時だけ
% rm aの時点でTABを押すと
% rm aa
となり、aは一切無視されるんです

Gentooで4.3.x(失念)です
358名無しさん@お腹いっぱい。:2009/08/26(水) 10:17:02
おいらは
% touch a aa
% rm a[tab]
すると
rm a [かーそる]
になるけど。

aで(他の候補はあれど)完結しているときに
tab 打つとそこで確定、ってことかな?
(tab でなく ^D だと a aa が表示されます)
359名無しさん@お腹いっぱい。:2009/08/26(水) 20:06:16
compdef -d rm
で対処しました。お手数掛けました
360名無しさん@お腹いっぱい。:2009/08/27(木) 03:42:11
zshでbashのhistignoreみたいなのできませんかね?
zsh その4で
255 :名無しさん@お腹いっぱい。[sage]:2005/10/19(水) 23:09:46
setopt histignorespace で
alias ls=' ls' cd=' cd'
とあるんですが、引数付きの時は残したいのですが、何か手法はありますか?
361名無しさん@お腹いっぱい。:2009/08/27(木) 04:58:20
zshaddhistoryを使えばどうにでもなるはず 参考 ttp://d.hatena.ne.jp/mollifier/20090728/p1 zshは実はファイルマッチで使うようなパターンだけじゃなくて 正規表現も使えたりするのでそういう感じでがんばれ
362名無しさん@お腹いっぱい。:2009/08/29(土) 02:42:07
completion の matcher-list にも正規表現が使えるといいんだけど。
というか、 PATTERN MATCHING でも (a|b) は使えるのにこれも
matcher-list じゃ使えないからなあ。残念な話だ
363名無しさん@お腹いっぱい。:2009/08/29(土) 04:39:08
>>355
_rm が編集行の指定済ファイルを補完対象外にしていて、
入力中の語もその中に入っちゃってるみたいね。
多分期待動作じゃないんだろうな。

_rm 内の↓がそれっぽい。ここらへんの記法が何するものかは忘れたけど
ignored=(${line//(#m)[\[\]()\\*?#<>~\^]/\\$MATCH})
364名無しさん@お腹いっぱい。:2009/08/29(土) 12:59:17
>>363
細かい解説どうも。いつからか_rmが追加されて、それ以降の挙動のようですね

期待動作というかlsのような補完と挙動が違うのは バグ だと思ってます
_rm採用以前はすべての対象ファイルが補完されてたわけだですし

cd でディレクトリのみを補完対象にするのとはワケが違うと思うんですけどね
365名無しさん@お腹いっぱい。:2009/08/29(土) 15:42:25
自分でいじったんじゃなくて?
366名無しさん@お腹いっぱい。:2009/08/29(土) 16:16:40
もちろん。自分ではいじってないですよGentooがいじってる可能性はあるかもしれませんが
バージョンは4.3.9でした
367名無しさん@お腹いっぱい。:2009/08/29(土) 23:38:49
>>364
lsとかの単なるファイル補完と違うのは
rm a a
みたいに同じファイルを2回指定することはないから
補完対象から外しているんだと思う。
(lsも2回指定することはない気はするけど、外すようにはしてない。
必要はないしね)

これ自体は個人的には悪くないと思う。
menulistで補完してると、
2つ目にも指定済のファイルが候補にあると邪魔だからね。

通常のファイル補完でこれをやると、例えば
cat a a
とかはありうるから、うまくない。

まあ rm でやっていて ls でやってないことが気になる人もいるってことかな。

_rm が入力中の語も補完対象外にしているのは
バグっぽいなあと思うけど。
その語は入力が完了しているから補完する必要がないとも
強引には考えられるけど。いや無理があるか。他の補完動作とも合ってないしね。
368名無しさん@お腹いっぱい。:2009/08/29(土) 23:41:56
ていうか、
[[ -e file* ]]
みたいなことって、できないんだっけ?(file* にマッチするファイルがあるか判定)
[[ でできないってだけだけど。
これ普通どうやるんだっけな。
369名無しさん@お腹いっぱい。:2009/08/29(土) 23:46:10
>>368
ls file*の戻り値で代用
370名無しさん@お腹いっぱい。:2009/08/30(日) 00:00:59
そうか。そうだね。

tmp=(file*(N)); (( ${#tmp} ))
↑なん考えちゃったよ。
# tmp が消せなかった

それなら
: file*
でよさそうだね。
thx.
371名無しさん@お腹いっぱい。:2009/08/30(日) 00:11:05
( : file* ) 2>/dev/null
としないと errmsg とともに終わる(forが)
そんだけ
372名無しさん@お腹いっぱい。:2009/09/05(土) 02:51:12
補完の設定でフィルタ関数みたいなのはないのかな。
入力語と補完候補をとってマッチするか否かを判定するようなやつ。
373名無しさん@お腹いっぱい。:2009/09/05(土) 10:35:35
内部コマンドの getopts で POSIXLY_CORRECT=0 に相当する
動作にできないものだろうか。履歴を使い回して末尾にオプションを
付け足したいときがままあるので。
374名無しさん@お腹いっぱい。:2009/09/06(日) 12:33:57
bashのスレはどこですか?
375名無しさん@お腹いっぱい。:2009/09/09(水) 13:10:46
zshでプロンプトに
http://journal.mycom.co.jp/articles/2009/09/09/bash/images/004.jpg
みたいにpts/xを表示させたいんだが環境変数わからないので教えてください
376名無しさん@お腹いっぱい。:2009/09/09(水) 15:16:38
環境変数でなくてプロンプト記法における %l だね
377名無しさん@お腹いっぱい。:2009/09/11(金) 12:45:00
.zshenvっていつでも読まれるはずだよね?
ログインシェルだと.zshenv読んでくれないんだけど,なんでかな

.zprofileはマニュアル通り(ログインシェル時のみ読み込む)なんだけど,
.zshenvがその反対(ログインシェル以外のとき読み込む)になってるみたい
378名無しさん@お腹いっぱい。:2009/09/11(金) 22:54:50
なんでかなって、1行目の思い込みが間違っているからに決まってる。man読め。
379名無しさん@お腹いっぱい。:2009/09/11(金) 23:11:35
もちろん読んだよ

> Commands are first read from /etc/zshenv;
> [...]
> Commands are then read from $ZDOTDIR/.zshenv. If the shell is a login shell, commands are read
> from /etc/zprofile and then $ZDOTDIR/.zprofile. Then, if the shell is interactive, commands are
> read from /etc/zshrc and then $ZDOTDIR/.zshrc. Finally, if the shell is a login shell,
> /etc/zlogin and $ZDOTDIR/.zlogin are read.

これ見るといつでも(NO_RCSでない限り).zshenvを読み込むと思うんだけど
もしかして違ってる?
380名無しさん@お腹いっぱい。:2009/09/11(金) 23:20:43
>>379
ログインシェルでも .zshenvを読む。

ただし、zshが sh互換モードで起動されると .zshenvは読まない。

ログインシェルの時だけ /bin/sh -> zsh の symlink 経由で起動してるんじゃない?
381名無しさん@お腹いっぱい。:2009/09/11(金) 23:45:30
ありがとう
compatibilityの項読んだよ

> The usual zsh startup/shutdown scripts are not executed. Login shells source /etc/profile fol‐
> lowed by $HOME/.profile.

けど /bin/sh -> bash になってるし,.zprofileはちゃんと読んでくれてるから違うと思う
382名無しさん@お腹いっぱい。:2009/09/12(土) 00:55:23
>>379
もしかしなくても違ってる。
そのセクションを全文読んでから、ありえる解釈を列挙して
一つ一つ検討してもっとも妥当なものを選べ。
それができなきゃソース読め。
383名無しさん@お腹いっぱい。:2009/09/12(土) 06:39:45
>>382
違ってはいないだろ。
オレの環境では login shellでも .zshenv をちゃんと読み込んでるから。
384名無しさん@お腹いっぱい。:2009/09/13(日) 01:37:04
setopt globcomplete
man (\\|e)[Tab]

ってやると ex* がヒットするよ〜。

(e|\\)
(\*|e)
('*'|e)

も同じ。

(\\|a) だと ax* がヒットする。

(記号|文字列) で 文字列x にヒットするようだ。

(\\|\\) だと何故か ex がヒットする。

まるでバグのようだ。
385名無しさん@お腹いっぱい。:2009/09/13(日) 02:31:26
zstyle ':completion:*' matcher-list 'm:a=日本語文字'
ってやるとうまく動かない。動く日本語文字もある。
ab とか、 aの後に文字があると ab[Tab] で m:a=日本語文字 が適用されない。

% printenv LANG LC_ALL
ja_JP.UTF-8
ja_JP.UTF-8
% touch 名yy 二yy 椎yy xxyy yyああ あyy アyy 一yy
% ls
xxyy yyああ あyy アyy 一yy 椎yy 二yy 名yy
% zstyle ':completion:*' matcher-list 'm:a=x'
% : aay[Tab] → xxyy
% zstyle ':completion:*' matcher-list 'm:a=あ'
% : a[Tab] → あyy
% : ay[Tab] → あyy
% : yyaa[Tab] → yyああ
% zstyle ':completion:*' matcher-list 'm:a=x m:a=あ m:a=ア m:a=一 m:a=二 m:a=名 m:a=椎'
% : a[Tab]

% : 名yy
file
名yy 二yy 椎yy xxyy あyy アyy 一yy
386名無しさん@お腹いっぱい。:2009/09/13(日) 02:32:38
% : ay[Tab]

% : あyy
file
あyy アyy 一yy

% touch yy名 yy二 yy椎 yyxx yyあ yyア yy一
% ls
xxyy yyxx yyあ yyああ yyア yy一 yy椎 yy二 yy名 あyy アyy 一yy 椎yy 二yy 名yy
% : yya[Tab]

% : yy二
file
yy二 yy椎 yy名 yyxx yyあ yyア yyああ yy一

↑ みたいに、「あ」、「ア」、「一」は動くけど、「名」、「二」、「椎」はうまく動かない。
もう書けない。
387名無しさん@お腹いっぱい。:2009/09/14(月) 14:38:34
アッー!



スンマセン言ってみたかっただけです
388330:2009/09/15(火) 19:12:50
すいませんお礼忘れてました。
レス下さった方々ありがとうございましたm(_ _)m 参考になりました。
389名無しさん@お腹いっぱい。:2009/09/17(木) 16:20:26
実行したプロセスすぐに終了しなかった場合にそのプロセスをkillする
方法ってありますか?
rshなどでタイムアウトのときに使いたいと思っています。
390名無しさん@お腹いっぱい。:2009/09/17(木) 16:23:59
zshって最強なの?
391名無しさん@お腹いっぱい。:2009/09/17(木) 16:32:35
最低です
392名無しさん@お腹いっぱい。:2009/09/18(金) 04:49:12
最強は Version 7 の Bourne Shell
393名無しさん@お腹いっぱい。:2009/09/18(金) 07:50:11
ソースは最狂だが。
394名無しさん@お腹いっぱい。:2009/09/20(日) 03:21:49
残念ながら buggy な zsh
395名無しさん@お腹いっぱい。:2009/09/20(日) 17:59:16
誰か pulseaudio 0.9.15 向けの _pactl 持ってない?
欲しい。
396名無しさん@お腹いっぱい。:2009/09/21(月) 22:09:00
やっぱり反応ないなあ。
自分で使う pactl move-sink-input だけ実装した。
と一応の自己レス。
397名無しさん@お腹いっぱい。:2009/09/25(金) 02:01:31
zshユーザって日本にどんくらいいるんだろ
398名無しさん@お腹いっぱい。:2009/09/25(金) 13:35:01
たしか5人くらいって効いたよ
399名無しさん@お腹いっぱい。:2009/09/25(金) 14:04:58
じゃあおれアシュラマン役な
400名無しさん@お腹いっぱい。:2009/09/25(金) 14:15:47
じゃあ僕はサンシャイン
401名無しさん@お腹いっぱい。:2009/09/26(土) 19:54:54
アシュラマンと組んだ時のサンシャインって
なんで砂にならなかったの?

402名無しさん@お腹いっぱい。:2009/09/26(土) 20:09:46
ログインシェルがデフォでzshなディストリが出てこないと増えないよなやっぱ
403名無しさん@お腹いっぱい。:2009/09/26(土) 20:31:41
SH_WORD_SPLITがデフォじゃないと増えないよなやっぱ
404名無しさん@お腹いっぱい。:2009/09/27(日) 21:12:40
自分のzshスクリプトをbash野郎に説明すんのにすごいストレス溜まる
405名無しさん@お腹いっぱい。:2009/09/27(日) 21:38:00
zshでスクリプトなんて書かねーよ
406名無しさん@お腹いっぱい。:2009/09/27(日) 21:55:21
>>405
普通に書くぞ。
人に説明しないけど。
407名無しさん@お腹いっぱい。:2009/09/27(日) 22:52:33
01,02,・・・,99が{01..99}でできるってだけで有り難いわ
408名無しさん@お腹いっぱい。:2009/09/27(日) 23:54:05
bashでもできるよ
409名無しさん@お腹いっぱい。:2009/09/28(月) 00:39:33
>>408
マジで?うちの環境ではbashは3.2だが古すぎるのか
bash使ってた頃はいちいちprint文とか使って桁を整えてたわ
410名無しさん@お腹いっぱい。:2009/09/28(月) 01:30:12
ぶっちゃけbashは4でzshに近づくことができたのか?
411名無しさん@お腹いっぱい。:2009/09/28(月) 09:10:22
>407
エロ画像連番スレの基本技5ヶ条の1だね
412名無しさん@お腹いっぱい。:2009/09/28(月) 11:13:26
>>409
CHANGES によると { .. } は bash-3.0-alpha で実装された模様。
でもうちの 3.1.17 だとこうなってしまう。
$ echo {01..10}
1 2 3 4 5 6 7 8 9 10
413名無しさん@お腹いっぱい。:2009/09/28(月) 11:38:24
$ bash -c 'echo {01..10}'
01 02 03 04 05 06 07 08 09 10

bash-4.0.33
414名無しさん@お腹いっぱい。:2009/09/28(月) 12:08:23
>>413
bash-4.0-alpha からそうなったみたいね。TNX
415名無しさん@お腹いっぱい。:2009/09/28(月) 13:50:22
ksh93なら
$ echo {01..010}
1 2 3 4 5 6 7 8
$ echo {0x0..0x10}
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
416名無しさん@お腹いっぱい。:2009/09/28(月) 19:09:57
>>413
すげー、bashも進化してんだなw
他シェルの便利機能を取り込む姿勢はたいへん宜しい
ただ、3→4へのメジャーバージョンアップはgccのそれを思い出して
ついまともな出来なのかと疑ってしまうw

>>415
そんなことできるのかksh
417名無しさん@お腹いっぱい。:2009/09/30(水) 00:02:28
bashもtcshもいつの間にか機能増えてたりするんで
なかなか機能差異を説明するのも難しい
まだ鍛錬が足らぬだけか
418名無しさん@お腹いっぱい。:2009/09/30(水) 20:59:00
でもよく調べると、やっぱzshに及ばないジャンwって結論に至る
419名無しさん@お腹いっぱい。:2009/10/02(金) 21:42:40
420名無しさん@お腹いっぱい。:2009/10/03(土) 00:41:39
fish!!
421名無しさん@お腹いっぱい。:2009/10/03(土) 00:46:11
x68000にfishというシェルがありました。
Cシェル系だったけどナー。
422名無しさん@お腹いっぱい。:2009/10/03(土) 00:57:07
いや fishshell.org のことでしょ。
423名無しさん@お腹いっぱい。:2009/10/09(金) 16:51:28
zshの配列のインデックスって1からなのかよ!
小半時悩んじまったじゃねーかハゲ

$ bash -c 'foo=("bar" "baz"); echo ${foo[1]}'
baz

$ zsh -c 'foo=("bar" "baz"); echo ${foo[1]}'
bar
424名無しさん@お腹いっぱい。:2009/10/11(日) 20:56:55
zsh金玉
425名無しさん@お腹いっぱい。:2009/10/11(日) 20:58:17
ズィーエスエイチ袋
426名無しさん@お腹いっぱい。:2009/10/18(日) 20:56:20
_7z _convmv 誰か持ってる?くれ。
427名無しさん@お腹いっぱい。:2009/10/27(火) 14:04:29
zftpの使い方がいまいち分からない
これ便利なの?
428名無しさん@お腹いっぱい。:2009/10/27(火) 20:49:02
これ見て便利だと思たら便利なんじゃね?
http://ttyshare.com/rec/xcezx/3240618/
429名無しさん@お腹いっぱい。:2009/10/29(木) 21:39:15
>>428
感動した
よく作るなこんなの・・・
430名無しさん@お腹いっぱい。:2009/10/30(金) 14:05:44
cd - [TAB]で表示されるディレクトリ一覧の、降順・昇順を切り替えるオプションってありますか?
431名無しさん@お腹いっぱい。:2009/11/06(金) 04:42:36
やっと規制解除きた
>>430
cd +[TAB]
とすれば良いのでは?
+ と - の意味を切り替えるのは
setopt pushd_minus
432名無しさん@お腹いっぱい。:2009/11/06(金) 04:48:20
コマンドを実行せずにヒストリに登録する方法は無いのかな?
zle accept-line のコマンドを実行しない版が欲しいんだが。
# HISTFILE を編集するのは無しの方向で。
433名無しさん@お腹いっぱい。:2009/11/06(金) 07:06:51
過去の話題から。適当なキーに割り当てる。
history-register-line () { fc -R <(<<<$BUFFER); zle send-break }
zle -N history-register-line
434432:2009/11/07(土) 09:44:36
>>433
thx, うまくいきました。

# history-register-line でググったら >>20 がヒットした orz
# FAQ だったか。スマソ
435名無しさん@お腹いっぱい。:2009/11/10(火) 12:14:44
ディレクトリの移動履歴だけを対象にして C-r みたいなことがしたいのですが、
どうやったらいいですか?
436430:2009/11/10(火) 14:39:29
>>431
ありがとうございました!
437名無しさん@お腹いっぱい。:2009/11/14(土) 17:38:35
cd aaa/bbb/ccc
と入力した後に、backward-delete-word で aaa/bbb/ccc をすべて消すのではなく、
最後のスラッシュまで (cccのみ ) 消すことはできるでしょうか。

たしか何かのシェルではできていたのですが、調べてみましたが、zshでのやり方がわかりません。
よろしくお願いします。
438名無しさん@お腹いっぱい。:2009/11/14(土) 17:46:00
全く同じ質問を2ちゃんねるのzshスレで見た記憶があるんだが
439名無しさん@お腹いっぱい。:2009/11/14(土) 17:49:14

/'⌒`ヽ、この質問定期的に来るNE!
ヽ、┗ ノ
  `ーー'        γ⌒`ヽ           /'⌒⌒ヽ、
  ,-ーー-、      .|| ̄ ̄             (     ┃  ⌒ヽ
 /  ┃  )    ||    /⌒ヽ       \ ━┛    )
.(.   ┃   )   ||.   ( ^ω^ )
 ヽ、__,ノ     ||  _(つ¶¶と)__
           /||'''''|  三  |    |'(⌒)
        /    '―――――`  ̄ \
        `============'

>>330
440437:2009/11/14(土) 17:57:05
ありがとうございます。
それなりにzshのまとめブログを内外、見て回って使っていたんですが、ここを利用させていただくのは初で。。
これからは過去ログをチェックします。

これは需要があるとおもうんですが、意外と共有されていないのが不思議です。
441sage:2009/11/14(土) 18:14:40
tab で補完完了時に, もう一度 tabを押すのがいやなのですが、自動的に補完内容を表示する事は可能でしょうか。

例)
aaa code/ru
-> [tab]
aaa code/ruby/  # 補完完了
-> [tab]
( やっと一覧表示 )

を、

aaa code/ru
-> [tab]
aaa code/ruby/ # 補完完了
( ここで自動的に一覧表示。)


zstyleを調べていたのですが、よくわからす、よろしくお願いします。
442名無しさん@お腹いっぱい。:2009/11/14(土) 18:25:08
>>437
echo $WORDCHARS
443441:2009/11/15(日) 13:46:37
補完完了時に何かトリガーするってできないのかな、、、
444名無しさん@お腹いっぱい。:2009/11/18(水) 21:48:21
zshの補完にmigemo使えるようにならない?
445名無しさん@お腹いっぱい。:2009/11/18(水) 23:33:46
そりゃmuripo
446名無しさん@お腹いっぱい。:2009/11/19(木) 07:40:07
C-wで削除するときに直前の文字が日本語だと空白区切りまでじゃなく
その一つ前の単語も一緒に削除されちゃうんだけど、これってどうなのよ。
なんか設定で変更できない?

echo だよもん[C-w] → 行頭まで削除されちゃう
echo hoge だよもん[C-w] → echo になる(hogeも削除される)
447名無しさん@お腹いっぱい。:2009/11/29(日) 00:09:09
俺が >>444 書いたんじゃないよな…
migemo補完しようとは思ったけど…

これ[ ttp://ja.pastebin.ca/1691159 ]を fpath に入れて

zstyle ':completion:*::::' completer _complete _migemo

とかするとなんとなく migemo補完するかも。
migemo展開パターンに記号が入ってたり、なんかすると
動かなかったりして、補完しようとするケースの半分くらいで
使えないという残念仕様だけど。
# 補完に利用している globcomplete が上記ケースで何故か動かない。

一応、PWD直下のファイル名補完なら、migemo入力を3文字程度以上
打ち込んどけば補完したはず。
後、completer 指定から分かる通り、通常補完が優先なので
それにヒットするとmigemoは動かない。
# _complete は外せるけど。

ちなみに俺は使ってない。使えないので。

もっと汚くて使えるものを今書いてるので、
また上げるかもしれない。

# 使えるといっても、対象をファイル名補完に絞った
# 個人的には使用に耐える程度のものだけど。

そういえば、_migemo って名前は compdef migemo で使いそうな名前なので、
_migemo_complete とかにした方がいいかも。
448名無しさん@お腹いっぱい。:2009/11/29(日) 00:13:00
>>441
よくわかってないけど、こんなん?

complete-and-list () { zle complete-word ; (( _lastcomp[nmatches] == 1 )) && zle list-choices }
zle -N complete-and-list
bindkey "^I" complete-and-list

>>446
ならないよ
449名無しさん@お腹いっぱい。:2009/11/29(日) 00:28:11
>>448
ならない人もいるのか。
バージョン・環境・ロケールなど教えてもらえる?
450名無しさん@お腹いっぱい。:2009/11/29(日) 03:06:05
わり、 ~/.zfunc/ の widget を bind してたわ
でも ↓ でも同じだった

bindkey "^W" backward-kill-word
bindkey "^W" .backward-kill-word

% echo $ZSH_VERSION
4.3.9
% uname -rs
Linux 2.6.30-gentoo-r6
% printenv LANG LC_ALL
ja_JP.UTF-8
ja_JP.UTF-8

ちなみに、消した後、"^[r" (redisplay) するとどうなる?
451名無しさん@お腹いっぱい。:2009/11/29(日) 12:06:11
変化なし。表示だけおかしいというわけでもない。
バージョン等は4.3.10、FreeBSD 8.0/amd64、ja_JP.UTF-8。
ebuildを見たけど、別段portsと変わっているようにも見えないしなあ。
452名無しさん@お腹いっぱい。:2009/11/30(月) 01:16:48
この件、450と451の違い通り、原因はOSのロケール情報だった。450さんありがとう。
ざっくり言うとzshではiswalnum(3)で単語文字を識別していてLinuxでは
これが漢字かなに対して真になるけどFreeBSDではならないことによる。
glibcのロケール定義をみると、Linuxではctypeのalphaクラスに各言語の文字がずらずら入っている。
これに比べてFreeBSDのshare/mklocale/UTF-8.srcの方はヨーロッパ文字以外はお寒い。
ロケール周りはそのほか比べてみると全体的にFreeBSDは見劣りするね。
453名無しさん@お腹いっぱい。:2009/11/30(月) 03:55:40
おつかれ
454名無しさん@お腹いっぱい。:2009/11/30(月) 04:19:22
svn a[TAB] b
すると
unknown svn command: a
ってなる。どうにかならんかな?

svn a[TAB]
だとちゃんと補完するけど。
455名無しさん@お腹いっぱい。:2009/11/30(月) 05:28:30
_subversion の _svn() 内の最初の

_arguments -C \
'(-)--help[print help information]' \
'(- *)--version[print client version information]' \
'1: :->cmds' \
'*:: :->args' && ret=0

で '1: :->cmds' に当たらず '*:: :->args' が効いてるみたい。
_arguments って 1: と *:: を同時に使っちゃいけないんかな?
よくわからん。
456名無しさん@お腹いっぱい。:2009/11/30(月) 23:18:33
452だけど、glibcのロケールデータを借用してLC_CTYPEを増強した。
これでFreeBSDでもzshで日本語の文字が単語文字になって満足。

FreeBSDでも http://wiki.freebsd.org/LocaleNewApproach という
動きがあるらしいのでそのうちよくなるのかな。
457名無しさん@お腹いっぱい。:2009/12/05(土) 02:00:34
TABで補完したときに、ファイル名が一意に定まらない時は
必ずリスト表示してほしいんだけど、いい設定とかないかな?

ls .zs[TAB] → ls .zsh

ここで[^d]すると

.zshenv .zshrc

と出てくるけれど、それなら最初から出してほしい。
458名無しさん@お腹いっぱい。:2009/12/05(土) 15:24:29
autoload predict-on
predict-on
で、先方予測を有効にしているのですが、しばらくログインシェル
として使っていると、何かの拍子に先方予測が利かなくなっている
ことがあります。(source ~/.zshrc するとまた効き始める)
何か、ショートカットで有効になったり無効になったりするもの
なのでしょうか?
459名無しさん@お腹いっぱい。:2009/12/05(土) 15:26:40
あと、先方予測を有効にしていると
apt-get install hoge
と入力したとして、あ、sudo しなきゃ…と思って戦闘に戻って
sudo と打ち込んだ瞬間、今までの apt-get... がそっくり消える
のですが、これは何か回避のしようがないものでしょうか?

zsh使い始めたばかりですが、余りの素晴らしさに感動しきりです
この点のみ未熟なばかりに不便に感じているのでご教示いただければ
460名無しさん@お腹いっぱい。:2009/12/05(土) 16:12:41
>>457
setopt autolist ?
デフォルトで利いてるはずだけど。


461名無しさん@お腹いっぱい。:2009/12/05(土) 17:22:54
>>460
レスありがとう。
autolistがデフォで利いてること、
noautolistでリスト表示は^Dで明示的に指示した時のみとなることを確認しました。

457 に示した用に、autolistが設定されている場合でも、
一意に定まらない場合にリスト表示がされないことがある、のが個人的な不満というか…。
それとも、上記の例の場合でも、常にリスト表示されているということでしょうか?
462名無しさん@お腹いっぱい。:2009/12/05(土) 22:08:48
>>461
unsetopt listambiguous
463名無しさん@お腹いっぱい。:2009/12/05(土) 22:37:38
これは良いことを聞いた
464名無しさん@お腹いっぱい。:2009/12/05(土) 22:51:53
>>462
ありがとう。本当にありがたい。
465名無しさん@お腹いっぱい。:2009/12/06(日) 00:09:09
>>458
predict-off とか bindkey してない?
じゃなきゃ zstyle :predict toggle yes してるとか。
それか BUFFER 末尾以外で ^D すると predict-off するかも。
# predict-on 使ってないからよく判らんけど。
# なんか重そう(でもないかな?)なのと、
# 動きを把握できない(仕様がよく解っていない)ので避けてたんだよね。

あと、source ~/.zshrc するより

zle -N predict-on
bindkey '^X^Z' predict-on

とかしといた方がいいような。まあ個人のスタイルかも知れないけど。
いや、predict-off はしないはずという前提で不要な bindkey をしてないだけか。

あと >>459 は predict-on が LBUFFER(カーソルより左の部分)しか見てない気がするので
多分、そういうもんじゃないかな。(んなこた解ってるって?)
多少面倒でもいいなら predict-off → type sudo → predict-on って感じかな。
無論 predict-off/predict-on は bindkey した上で。
466名無しさん@お腹いっぱい。:2009/12/06(日) 12:15:22
>>463
俺もw

このスレって常駐してるだけで色々勉強になるから助かるわ
467名無しさん@お腹いっぱい。:2009/12/08(火) 00:16:06
深いパスで、ないファイルを補完しようとすると _approximate あたりで
暴走してたんだけど、サンプル zshrc の

zstyle -e ':completion:*:approximate:*' max-errors \
'reply=( $(( ($#PREFIX+$#SUFFIX)/3 )) numeric )'

の指定が重かったんだ。結構、サンプルから取り込んで未検討のままに
なっているものがあるけど、これもその一部。
_approximate 自体、不要という気もするけど。
468名無しさん@お腹いっぱい。:2009/12/10(木) 00:01:36
zsh/regex
zsh/pcre
って multibyte 対応してないのかな。そんな感じだけど。
zsh/regex は setopt multibyte しても日本語文字が singlebyte として扱われてるような感じ。
zsh/pcre は setopt multibyte すると LANG=ja_JP.UTF-8 LC_ALL=ja_JP.UTF-8 で

% [[ い -pcre-match い ]]
zsh: failed to compile regexp /い/: invalid UTF-8 string
% pcre_compile い
pcre_compile: error in regex: invalid UTF-8 string

みたいに怒られる。 [[ あ -pcre-match あ ]] は何故か成功するけど。
# ja_JP.UTF-8 以外の場合は singlebyte として扱われてる気がする。
# これは pcre が UTF-8 のみ対応してるってことかな?

「使えてるよ」って方いらっしゃいます?
469名無しさん@お腹いっぱい。:2009/12/10(木) 01:32:38
正規表現に関してはzshは他のライブラリ(OS標準のregexなりPCREなり)を呼んで
るだけだから、そちら側の都合。
470名無しさん@お腹いっぱい。:2009/12/11(金) 18:00:18
egrep は multibyte 認識してるっぽいけど…自前ってことか。
pcretest は UTF-8 で一応動いてるっぽいけど…pcre の UTF-8 support が実験レベルってことで、色々あるんだろうなあ。
まあとにかく動かないってことでいいか。
471名無しさん@お腹いっぱい。:2009/12/12(土) 06:02:44
>>444
もう居ないか知らんけど…
>>447 の代わりのmigemo補完。
これ[ ttp://ja.pastebin.ca/1711428 ]を fpath に入れて

zstyle ':completion:*::::' completer _complete _migemo_complete

とかすると動く。あー、* 要らんかな?いつ * の位置が空じゃなくなるのか分からん。
対象はファイル名補完。他も動く可能性はある。
migemo と関係ない動作としては、入力文字列中の : が regex 的に .* になるってとこかな。

まずい点とかはコメントに色々書いてあるけど…
まあとりあえずいいか、というところ。個人的には特に問題ない。
人によっては ↓ あたりが問題かも。

- 入力中のメタ文字は多分うまく扱えない。
- coproc 使う人は直さないと coproc がまともに使えない。
- menucomplete でしか動かしてない。他はまともに動くか判らない。
- LANG=ja_JP.UTF-8 用なので、nkf のとこ直さないと他は無論動かない。

候補が大量にあると遅いんだけど、日本語文字がない
(というか asciiのみの)候補を対象外にすると
もうちと速くなるかも。と今思った。

てか、候補1つで補完前のカーソルの位置が補完後の全角文字の中にあると
カーソルより後の部分が補完後に表示されないなあ。redisplay で出るけど。
zsh が出力してないみたいだけど、なんでだ…

いやー、pastebin って CRLF noeol になるんだなー。
472名無しさん@お腹いっぱい。:2010/01/01(金) 10:19:12
あけおめ
473 【大吉】 【1999円】 :2010/01/01(金) 12:09:22
おめ
474名無しさん@お腹いっぱい。:2010/01/01(金) 12:24:05
↑テラトイザラスwww
475 【豚】 【1829円】 :2010/01/01(金) 12:26:03
ハア?('A`)
476名無しさん@お腹いっぱい。:2010/01/05(火) 11:18:56
man すると multios では > word 2>&1 と &> word は違うよ、って書いてあるんだけど、
良く分かりません。ありがちな hoge > /dev/null 2>&1 と hoge &> /dev/null だと、
具体的にどう違うのでしょうか?
477名無しさん@お腹いっぱい。:2010/01/05(火) 12:19:50
例が悪すぎ。/dev/nullに捨てるんじゃ一緒だろ。
478名無しさん@お腹いっぱい。:2010/01/09(土) 22:49:00
$ a=`jobs`
$ echo $a
で jobs の結果が a に入らないのはどうしてですか? jobsの結果を直接 tty?に流してる?
479名無しさん@お腹いっぱい。:2010/01/09(土) 23:15:19
入るけど
480名無しさん@お腹いっぱい。:2010/01/10(日) 06:06:17
>>478
jobs の結果が空なだけでは
481名無しさん@お腹いっぱい。:2010/01/10(日) 13:40:00
$ jobs で結果が見れるので、空ってことはないのですが、
>> 479 本当ですか?

結局僕はこれで取れました。
$ jobs | read a
$ echo $a
482名無しさん@お腹いっぱい。:2010/01/10(日) 13:55:01
>>481
zsh 4.3.10で試したけど
普通に入ってる
483名無しさん@お腹いっぱい。:2010/01/10(日) 14:18:37
zsh-4.2.x のバグだ。
484名無しさん@お腹いっぱい。:2010/01/10(日) 16:08:26
$ zsh --version
zsh 4.3.4 (powerpc-apple-darwin9.0)
でした。macだからかなぁ。
485名無しさん@お腹いっぱい。:2010/01/10(日) 16:38:01
MacOS X Snow Leopard

$ echo $SHELL
/bin/zsh
$ which zsh
/bin/zsh
$ zsh --version
zsh 4.3.9 (i386-apple-darwin10.0)
$ sleep 10000 &
$ x=`jobs`
$ echo @$x@
@[1] + running sleep 10000@
486名無しさん@お腹いっぱい。:2010/01/10(日) 17:13:08
MacOS X Leopard 10.5.8

$ uname -a
Darwin MacBook.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386
$ echo $SHELL
/bin/zsh
$ which zsh
/bin/zsh
$ zsh --version
zsh 4.3.4 (powerpc-apple-darwin9.0)
$ sleep 10000 &
[2] 4081
$ a=`jobs`
$ echo @$a@
@@
$ jobs
[2] + running sleep 10000
487名無しさん@お腹いっぱい。:2010/01/18(月) 08:02:43
Ctrl+Rコマンドヒストリ検索で日本語入力が出来なくなってるよ
488名無しさん@お腹いっぱい。:2010/01/18(月) 08:09:03
zsh 4.3.10ではCtrl+Rコマンドヒストリ検索で日本語入力が出来ないよ
ヒストリ検索がちゃんと出来ないzsh使うなんてありえないよな
ここの連中は一体どんな環境でzsh使ってんの?
489名無しさん@お腹いっぱい。:2010/01/18(月) 08:53:08
そもそも、インクリメンタルサーチで日本語を入力したことが無い。
490名無しさん@お腹いっぱい。:2010/01/18(月) 09:54:36
そもそも、日本語名のファイルが無い。
491名無しさん@お腹いっぱい。:2010/01/18(月) 20:53:25
そもそも、インクリメンタル検索で日本語入力という発想が無い。
492名無しさん@お腹いっぱい。:2010/01/18(月) 21:00:12
In the first place, I don't use Japanese.
493名無しさん@お腹いっぱい。:2010/01/19(火) 10:05:28
setopt hist_ignore_space
していると、確かに履歴ファイルには記録されないのですが、
<C-p>で履歴を戻ったとき、出てきてしまいます。
ここでも出てこないようにするにはどうすればいいでしょうか?
494名無しさん@お腹いっぱい。:2010/01/19(火) 12:15:23
vi [tab] とかってやったときにドットファイルも補完候補に表示してほしいんですが、
どうやったらいいですか?
495名無しさん@お腹いっぱい。:2010/01/21(木) 16:21:42
ハローは日本語?
kon'nichiwa は日本語?
ニーハオは?
496名無しさん@お腹いっぱい。:2010/01/21(木) 16:43:42
中間言語
497名無しさん@お腹いっぱい。:2010/01/21(木) 17:00:13
餃子屋
498名無しさん@お腹いっぱい。:2010/01/22(金) 10:16:09
結局 kikaku.doc とかは日本語ファイル名ってことでいいんだよね?
499名無しさん@お腹いっぱい。:2010/01/22(金) 11:54:36
あなたしだいです!
500名無しさん@お腹いっぱい。:2010/01/22(金) 19:44:06
用字と言語は別。
501名無しさん@お腹いっぱい。:2010/01/25(月) 05:39:08
あなただいなしです!に見えた
502名無しさん@お腹いっぱい。:2010/01/25(月) 12:24:41
>>494
vi .[tab]
503名無しさん@お腹いっぱい。:2010/01/27(水) 22:40:16
>>471
condition expected: $words[i]とかいうエラーがでるんだけど何が原因かわかりますか?
504名無しさん@お腹いっぱい。:2010/02/15(月) 02:31:52
Ctrl-. (ピリオド)を
bindkey ”^.” redo
とかに割り当てたいんですけど、
Ctrl-.を入力しても、そのまま.がターミナルに表示されます。
sttyで何か設定すればC-.が有効になるのでしょうか?
505名無しさん@お腹いっぱい。:2010/02/15(月) 07:38:48
Ctrl-.なんて文字は存在しないから受け取りようがないのです。
506名無しさん@お腹いっぱい。:2010/02/15(月) 11:46:12
emacsだと以下で行けるけど、ターミナルだと無理なんかも
(define-key global-map [?\C-.] 'redo)
507名無しさん@お腹いっぱい。:2010/02/15(月) 12:53:11
ターミナルのなかで文字として受け取るか
X-client がイベントとして受け取るかの
違いが理解できていないのか?
508名無しさん@お腹いっぱい。:2010/02/15(月) 13:26:35
emacsのxterm.elでは(define-key map "\e[27;5;46~" [?\C-.])と定義してある。
ターミナルソフト側でC-.を押したら\e[27;5;46~を送出するよう設定すればおk
509504:2010/02/15(月) 23:37:58
ありがとうございます。
設定してxterm上ではC-.キーつかえました
でも、いつも使ってるgnome-terminal上では送出設定できなさげでorz
510名無しさん@お腹いっぱい。:2010/02/15(月) 23:50:34
gnome-terminalは.Xdefaultsが効かないんだっけ
511名無しさん@お腹いっぱい。:2010/02/15(月) 23:53:37
.XdefaultsはAthenaWidgetのもんじゃねーの?
512名無しさん@お腹いっぱい。:2010/02/16(火) 13:48:12
.Xdefaults(.Xresources etc.)については
xrdb の仕組み・罠とかいろいろ知らないといけない
513名無しさん@お腹いっぱい。:2010/02/18(木) 01:37:34
cygwin上ででzshを触り始めたんですが、
.zshrc に
「windows上で動いてるなら "c:\Program files\" の
配下のファルダ全て(もしくは一つ下のサブフォルダまで)をPATHに追加」
(新しくアプリが追加されたら、次回のzsh起動時に自動的に読み込みたい)

このような処理は出来ますか?
もしできるなら、何をどう使って書けば良いでしょうか?
514名無しさん@お腹いっぱい。:2010/02/18(木) 02:38:33
そう書けばいいんじゃないの?
515名無しさん@お腹いっぱい。:2010/02/18(木) 02:43:26
>>514
書く方法がまったくわからないので、何かキーワードを頂けませんか?
516名無しさん@お腹いっぱい。:2010/02/18(木) 03:16:03
>>514

ヒント:
path=($path(N-/) /*/bin(N-/) $HOME/bin(N-/))
typeset -U path
517名無しさん@お腹いっぱい。:2010/02/18(木) 03:18:08
すまん
ミスった
>>515
518名無しさん@お腹いっぱい。:2010/02/18(木) 05:25:02
>>516
回答ありがとうございます。
typeset をキーワードに検索したら、それらしいページがみつかったのですが
http://en.allexperts.com/q/Unix-Linux-OS-1064/typeset-Unix-1.htm

これをやりたい事に書き直すのは自分には無理そうなので
毎回パスを手書きで追加することにします。
519名無しさん@お腹いっぱい。:2010/02/18(木) 05:39:12
ここの説明で >>516 さんのヒントの意味がわかりましたので解決しました。
http://technique.sonots.com/?UNIX%2F%E8%A8%AD%E5%AE%9A%E3%80%81%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%2F.zshenv
520名無しさん@お腹いっぱい。:2010/02/18(木) 23:36:31
>>518
一瞬ジョークのように読めてちょっと笑った。
521名無しさん@お腹いっぱい。:2010/02/18(木) 23:48:56
>>503

前に何か直したんだけど、error message がどんなんだったか忘れた。
↓ の patch で直る? error 内容が違う気がするので、直らない感があるけど。

% diff -u 1711428 _migemo_complete | gzip | base64
H4sIAPhRfUsAA62Sy07CQBSG1+1THKEh4DBmppAANY1d8BaFTAoMpdpbSo0hokldmLh14xsYtz5T
E5/DaQdE5BIWzmY6M9//n1sxxkA7lLb1rqITSjDRMe2C3jL0jtHqXZD1AkR6hKgIIWCB5/IgYuMo
iH2e8j/CNjFod0doWYAp0ZsdQHKzLBXkmkQhX3/HTmpWtPv6tXFuNMThoaJUgbsJj4unlCch5E+v
4PrRaOSF7uYy+8iztzx7/3r5zLNnFVQsDet10FDgpOOZwFnC57d+yoSKeRNbE/sQGg1YLgvuKGWC
Vt0PCAMV/VewwSnRVr3yo7Hjg7w2tWNhtxUr4IYvRJvKuVC92RNzKbdiLsoGMTVpZGh3UTKZ254w
U7xpUcLZbrG2tlEWxV5COuOhUADYNvxYgCkKfBTGMByqWIE9Ddl2MotgV2Wn99ODAzgoU09EkAmf
liw6QA8O11aifI7M302Sv0M1ilPWL+Zeq0GfOUniLFgaxIJdnSQt0vwGAasJiowDAAA=
522名無しさん@お腹いっぱい。:2010/02/21(日) 01:14:10
打ち間違いで command not found になった場合は
ヒストリファイルに残してほしくないんだけど
何かいい設定とかないでしょうか?
523名無しさん@お腹いっぱい。:2010/02/21(日) 09:38:43
preexecかzshaddhistoryでなんとかするのかな?
524名無しさん@お腹いっぱい。:2010/03/12(金) 00:31:50
$PWD の長さを取得したいんですが、ホームにいるときは ~/ の2文字ではなく /home/username が返ってきます。ホームのときも考慮した$PWDの長さはどうやって取得できますか?
525名無しさん@お腹いっぱい。:2010/03/12(金) 01:16:02
代わりに print -P '%~' の出力をみればいいと思う。
526名無しさん@お腹いっぱい。:2010/03/12(金) 13:06:45
>>524
${#PWD/${HOME}/\~}

何がしたいのかさっぱり分からないが…
527名無しさん@お腹いっぱい。:2010/03/13(土) 23:58:52
autoload run-help って結構微妙な動作すんだな
528名無しさん@お腹いっぱい。:2010/03/14(日) 12:51:25
zsh -c "do something"
で呼び出したときに .zshenv だけじゃなく
.zshrc も実行前に呼びたいのですが、どうすればできるでしょうか?

オプションを下記サイトで探して
http://zsh.sourceforge.net/Doc/Release/zsh_15.html
RCS を使い .zshenvを読み込まない設定はできましたが
.zshrc を読み込む設定は見つかりませんでした。
529名無しさん@お腹いっぱい。:2010/03/14(日) 13:02:11
rcは対話シェル用の設定を書くところだから、
正しいアプローチは.zshenvに該当の設定を移すことではないの?
530名無しさん@お腹いっぱい。:2010/03/14(日) 13:15:27
>>528
一応 zsh -i +f -c 'do sth' で、無理矢理インタラクティブにしてしまえば .zshrc を読んでくれる
何のための .zshenv だよって言いたくなるが
531名無しさん@お腹いっぱい。:2010/03/14(日) 20:56:06
>>529-530
返信ありがとうございます。
そうですね。 .zshenvに設定を移すことにしました。
532名無しさん@お腹いっぱい。:2010/03/17(水) 01:20:42
findしまくりのbashスクリプトと、zshだけで完結しているスクリプトだったら
どっちが早いんだろ?
533名無しさん@お腹いっぱい。:2010/03/17(水) 01:42:54
zsh で ** だとリストが長すぎてダメってことは稀によくある。
534名無しさん@お腹いっぱい。:2010/03/17(水) 03:08:30
俺もよく稀にある。**/** 便利だから取り敢えず使っちゃう。
535名無しさん@お腹いっぱい。:2010/03/17(水) 05:33:53
>>532
zshのほうが速いので比較するまでもない
536名無しさん@お腹いっぱい。:2010/03/17(水) 11:35:22
zsh 使いなら当然 zargs も使うだろう
537名無しさん@お腹いっぱい。:2010/03/26(金) 12:55:03
>>2
それをその速さで貼れるってことは
お前それをコピってずっと待機してたんだろ?
リロードしまくって。誰かスレ立てるの待って。
まじきめーな。氏ねよハゲ。
538537:2010/03/26(金) 12:55:45
ごめんなさい
誤爆しました
539名無しさん@お腹いっぱい。:2010/03/28(日) 14:29:24
ワロタ
540名無しさん@お腹いっぱい。:2010/04/04(日) 15:54:16
>>533
いくつまでなんだっけ?いちいちfind使うのが面倒なんだよなぁ。
自分でソースからコンパイルすれば上限変えれるのかもしれんが・・・
541名無しさん@お腹いっぱい。:2010/04/08(木) 16:31:18
>>540
きょうび自分でカーネルリコンパイルなんてFreeBSDくらいじゃないかね。
542名無しさん@お腹いっぱい。:2010/04/08(木) 16:32:42
そういう話じゃなくて。
543名無しさん@お腹いっぱい。:2010/04/08(木) 16:50:59
exec(2)に渡せる長さの上限は、FreeBSDだと sysctl kern.argmax かな。
544名無しさん@お腹いっぱい。:2010/04/09(金) 08:41:54
だからfind + xargs -> zargs でFA
545名無しさん@お腹いっぱい。:2010/04/09(金) 08:46:43
>>542
いやでも、自分でソースからコンパイルすれば上限は変えられるけど
カーネルリコンパイルってなかなか手を出さないと思うけどな。

カーネルアップデートがある度にやり直しなわけだし。
546名無しさん@お腹いっぱい。:2010/04/10(土) 14:40:25
zargsシランカッタ…こんな便利なものが
547名無しさん@お腹いっぱい。:2010/04/10(土) 19:33:33
zsh% zargs
zsh: command not found: zargs
って言われちゃうけどどう使うの?
548名無しさん@お腹いっぱい。:2010/04/10(土) 19:34:42
autoload zargs
549名無しさん@お腹いっぱい。:2010/04/11(日) 09:21:00
zfags
550名無しさん@お腹いっぱい。:2010/04/15(木) 22:05:43
for n in {01..99};do で01,02,…と桁数一定の連番にできるのが凄い便利なんですが、
これのインクリメンタルを1でなく任意にする方法はありませんか?

for ((n=1;n<100;n=n+m));do の形式だとbashと同様、1,2,…となってしまい
n=01とやっても同じで不便ですね。
551名無しさん@お腹いっぱい。:2010/04/15(木) 22:09:12
for n in `seq -w 1 2 99`; do
552名無しさん@お腹いっぱい。:2010/04/15(木) 22:18:45
seqはGNU coreutils以外にもあるの?
553名無しさん@お腹いっぱい。:2010/04/15(木) 22:39:52
>>550
for ((i=1;i<100;i=i+2)); do echo ${(l:2::0:)i}; done で出来るけどなんか不細工
bash なら {01..99..2} で大丈夫
554名無しさん@お腹いっぱい。:2010/04/15(木) 23:23:38
>>552
じゃあ、jotで

jot -w %02d - 1 100 2
555名無しさん@お腹いっぱい。:2010/04/16(金) 02:30:10
内部コマンドだけだと
for ((i=1; i<100; i+=2)); do print -f "%02d\n" $i; done

スマートにはいかんな
556名無しさん@お腹いっぱい。:2010/04/16(金) 05:40:33
typeset -Z2 i
557名無しさん@お腹いっぱい。:2010/04/16(金) 11:43:29
自分だったらこんな感じかな
for i in {1..10}
echo $(printf "%02d" $[i*2] )

>556 辺りが一番すっきりなんだろうけど
たぶん必要なときにこれを思い出さない気がする…
558550:2010/04/16(金) 15:00:37
皆さんありがとうございます。色々ありますね。
自分は今のところprintfで桁数を整えています。

>>553
>bash なら {01..99..2} で大丈夫
こちらのbash 3.2では解釈してくれず、{01..99..2}がそのまま i に入ってしまいました。
4.xでの機能でしょうか?
559名無しさん@お腹いっぱい。:2010/04/19(月) 13:52:32
上でzargsが挙がってましたが、zsh/filesを使うほうがもっと簡単なんじゃない?
と思ってやってみたら、↓のように変なところで怒られたんですが、何でですかね?

ディレクトリをmv (/の有無)
mkdir hoge fuga
$ mv hoge/ fuga/
mv: fuga//: cannot overwrite directory
$ mv hoge fuga/

異なるファイルシステム間でmv
$ touch /tmp/hoge
$ mv /tmp/hoge .
mv: /tmp/hoge: invalid cross-device link
560名無しさん@お腹いっぱい。:2010/04/19(月) 21:53:25
上はバグかな。
下はそういうもん。
561名無しさん@お腹いっぱい。:2010/04/20(火) 18:21:48
>>560
>上はバグかな。
まじすか・・・4.2.6なんですが、新しいのだと直ってるんですかね?

>下はそういうもん。
まじすか・・・ファイルシステムが異なる場合はrename関数でinodeを書き換えるのではなく、
新規に作って元のを消すという仕様だったと思いますが、それがきちんと実装されていない
ということですかね?だとするとこれもバグのような気が・・・
562名無しさん@お腹いっぱい。:2010/04/20(火) 19:07:40
バカかお前。manくらい読めよ。
563559:2010/04/20(火) 19:50:05
>>560の「そういうもん」の意味を、変な風に捉えていました
manにThis may change in a future version.書いてありますね
ついでに本家サイトに行ってmanを見てきましたが同じでした

引数の最大値の制限を受けないのは魅力的だったけど、やっぱりやめとこう・・・
564名無しさん@お腹いっぱい。:2010/04/25(日) 17:31:00
bash の set +h に相当するオプションありますか?
565名無しさん@お腹いっぱい。:2010/04/25(日) 18:47:04
どういう機能か書いてくれないからbashのマニュアルを調べてしまった。
hash_cmds かな?
566名無しさん@お腹いっぱい。:2010/04/29(木) 00:33:11
>565
ごめん, Z な漢たちに bash の説明なんて余計なお世話だったらどうしようかと,

そして, ありがとう. man zshoptions ですね.
567名無しさん@お腹いっぱい。:2010/04/29(木) 20:57:24
hash_cmdsってハッシュテーブル使うって意味だよね
利点がいまいち分からないんだが・・・
体感するほど速くなる?
568名無しさん@お腹いっぱい。:2010/04/29(木) 21:01:16
利点がないからこそ hash_cmdsを無効にしたい、って話だろ
569名無しさん@お腹いっぱい。:2010/04/29(木) 21:11:58
>>564 は (bashの) set +h (ハッシングをしない)相当をやりたいの
だから、zshで実際に設定するのは nohashcmds のほうになるはず。
570名無しさん@お腹いっぱい。:2010/04/29(木) 21:14:21
>>569
それでもいいけど、set +o hash_cmds で無効に設定できるよ
571名無しさん@お腹いっぱい。:2010/04/29(木) 22:59:52
hash_cmds って知らなかったからちょっと調べてみたけど、これがオンの場合

PATH=/usr/local/bin:/usr/bin だとして
/usr/bin/hoge を実行した後、/usr/local/bin/hoge を作成しても
その後 hoge と打ったときに実行されるのは /usr/bin/hoge

というふうに理解したのだけど、これで合ってる?
572名無しさん@お腹いっぱい。:2010/04/29(木) 23:01:50
実行可能なファイルをパスの通ったところに放り込むと直後にそのファイルがタブ補完で呼べる、
という挙動が hash_cmds と no_hash_cmds の両方で同じだった。

もしかして、コマンド補完が効くというのはハッシュとは関係ないの?
573572:2010/04/29(木) 23:03:38
お、>>571と似た話かな?
この辺誰か解説してくだしあ。
574名無しさん@お腹いっぱい。:2010/04/29(木) 23:23:21
>>572
一度補完させた後に新規に作成したファイルは補完されない
575名無しさん@お腹いっぱい。:2010/04/30(金) 18:17:41
bindkey -v使いたいんだが...
どっかにvimのヴィジュアルモード再現してくれる猛者いねーかな。
アレが無いと、削除もヤンクも使えたもんじゃない。
おかげでbindkey -e使うハメに。くつじょく
チラウラスマソ
576572:2010/05/01(土) 00:59:09
いまいち分からなくて色々調べてたんだけど、no_hash_cmds だとハッシュが
一切関係なくなるかと思ったら、タブ押した瞬間にハッシュに登録されるようで、
以降PATHのより上位に同じのをコピーしても最初のやつが参照される。

PATHを探索するタイミングとハッシュが登録されるタイミングというのは
どうやら同じではないらしい・・・。

うーん、なんか腑に落ちないけどまぁいいや。いずれにしろ、名前がカブってるのを
異なるパスに置くなんてことをしない限り(普通しないよね?)関係ない話だし。
577名無しさん@お腹いっぱい。:2010/05/06(木) 15:58:29
bashのhistory -d offset みたいに指定した履歴行を削除する方法はありますか?
578名無しさん@お腹いっぱい。:2010/05/07(金) 14:16:53
なさそう。fc -R/-Wで作業ファイル経由かなあ。
579名無しさん@お腹いっぱい。:2010/05/08(土) 00:04:43
>>575
bindkey -M vicmd v set-mark-command
とかなんかして適当に
foo-delete/foo-yank 作ればいけるんじゃない?
580名無しさん@お腹いっぱい。:2010/05/08(土) 04:00:03
>>579
ありがとう。感謝感謝

zshall 読む気にならないのは俺だけではないはず。
いや、このスレ的には読んでないと駄目なのか
581名無しさん@お腹いっぱい。:2010/05/08(土) 05:18:46
#ビジュアルモードを実装
function _vi-visualmode-delete() {
zle set-mark-command
...
...
}
zle -N _vi-visualmode-delete
bindkey -M vicmd 'v' _vi-visualmode-delete

根本的に方針を変えるべきか
582名無しさん@お腹いっぱい。:2010/05/08(土) 23:47:48
bindkey -a v set-mark-command
bindkey -a d foo-delete

foo-delete() {
zle vi-delete
if (( REGION_ACTIVE )); then
zle exchange-point-and-mark
fi
}

(これ動くんかな…)
な感じでいくか、あるいは

bindkey -N vivis vicmd

bindkey -a v vi-vis-mode
bindkey -a d vi-vis-delete

とか?
てか set-mark-command だと多分、範囲末尾が1文字分期待と違うな。
しかも characterwise でしか動かない気がするけど、
まあ linewise とか要らないよね。
583575=581:2010/05/09(日) 05:34:04
linewiseとかいうレベルじゃない…
一応visualmodeのdeleteを実装してみた。
但し、dを二回押す必要アリ+押した後にESC押す必要アリ。もっさい
有識者の方の降臨を待つとしよう。

bindkey -a v vi-vis-mode
zle -N vi-vis-mode
function vi-vis-mode() {
MARK=CURSOR
zle exchange-point-and-mark
bindkey -a 'd' vi-vis-delete
}

zle -N vi-vis-delete
function vi-vis-delete() {
CURSOR=$((CURSOR + 1))
bindkey -M vicmd 'd' kill-region
}

bindkey -a "^[" _escaping
zle -N _escaping
function _escaping() {
bindkey -M vicmd 'd' vi-delete
}
584名無しさん@お腹いっぱい。:2010/05/09(日) 12:39:45
screen みたいに画面をキーボードで移動して必要な範囲をコピーとかって出来る?
screen 入れないと駄目?
585名無しさん@お腹いっぱい。:2010/05/09(日) 23:45:54
うーん。だめじゃない?
表示内容を取るエスケープシーケンス(じゃなくて制御シーケンスか?)
とかあれば、それ使うか、screen と同じことをするか。
あんまり zsh でやることでもないような。

>>583
bindkey してるんを直接実行するんじゃだめなん?
586575:2010/05/10(月) 08:15:53
>>584にヒントを得た。多分完璧。lineとかしらん
cってchangeの略なんだな。初めて知った。
bindkey -a v vi-vis-mode
zle -N vi-vis-mode
function vi-vis-mode() {
MARK=CURSOR
zle exchange-point-and-mark
bindkey -a 'd' vi-vis-delete
bindkey -a 'y' vi-vis-yank
bindkey -a 'c' vi-vis-change
}
zle -N vi-vis-delete
function vi-vis-delete() {
bindkey -M vicmd 'd' vi-delete
bindkey -M vicmd 'y' vi-yank
bindkey -M vicmd 'c' vi-change
CURSOR=$((CURSOR + 1))
zle kill-region
}
587575:2010/05/10(月) 08:17:03
>>586の続き
zle -N vi-vis-yank
function vi-vis-yank() {
bindkey -M vicmd 'd' vi-delete
bindkey -M vicmd 'y' vi-yank
bindkey -M vicmd 'c' vi-change
CURSOR=$((CURSOR + 1))
zle kill-region
zle vi-put-before
}
zle -N vi-vis-change
function vi-vis-change() {
bindkey -M vicmd 'd' vi-delete
bindkey -M vicmd 'y' vi-yank
bindkey -M vicmd 'c' vi-change
CURSOR=$((CURSOR + 1))
zle kill-region
zle vi-insert
}
588575:2010/05/10(月) 08:19:40
連投すまぬ
当たり前だけど、使う時はbindkey -vしてちょ
このスレの人なら、こんなこと言う必要ないな…
589575:2010/05/11(火) 08:22:00
マジで連投申し訳ない。今回以降は書き込まない。
http://zshscreenvimvimpwget.blog27.fc2.com/作ったので、こっちでやる。
スレ汚しごぬんなさい…

とりあえず、Vモードを追加して、無駄に昨日を増やしてみた。oとか。
大体vimのビジュアルモードに準拠してるけど、vで設定した位置より右にいくと、
感覚からちょっとズレる。ここを改良するのが今後の課題だが難しいな。
590名無しさん@お腹いっぱい。:2010/05/13(木) 18:45:07
$PREFIX/share/zsh/4.3.*/functions/ にある特定のファイルだけ読み込まないようにする方法ってありますか?
591名無しさん@お腹いっぱい。:2010/05/16(日) 00:16:26
functions/Completion の話?

>>575
いいんじゃないっすか?過疎ってるし。
過疎ってなくてもいいと思うけど。
592名無しさん@お腹いっぱい。:2010/05/16(日) 00:26:50
svn [TAB]で補完が効く状態(=関数 _svn が実行できる)で
unfunction _svn
としたら
svn [TAB]で command not found: _svn が出るようになったから、
unfunctionでいいんじゃないだろうか。
593575:2010/05/18(火) 20:19:19
vim-ビジュアルモードが、ほぼ再現できたのでスクリプトを貼っておく。
意見をくれた人サンクス
詳しくはhttp://zshscreenvimvimpwget.blog27.fc2.com/blog-entry-3.html
ヘルプhttp://zshscreenvimvimpwget.blog27.fc2.com/blog-entry-4.html

以下のファイルの拡張子txtを省いて、~/hoge/ファイル名
みたいに保存して、
~/.zshrcにsource ~/hoge/ファイル名
と書き込むべし。

linux_fedora12のzsh4.3.10で動作確認済
http://blog-imgs-44.fc2.com/z/s/h/zshscreenvimvimpwget/zsh_vim_visualmode_linuxver.txt

MAC-OSXのzsh4.3.9で動作確認済
http://blog-imgs-44.fc2.com/z/s/h/zshscreenvimvimpwget/zsh_vim_visualmode_osxver.txt


使い方:vかVか^vを押せ。さすれば道は開かれる

問題点:
カーソルが行頭の一歩手前までしかいけない
5hがhに。でも3foは3fo
Vで下行から上行に向かって行選択すると、挙動がちょっと変
vda'しても、テキストオブジェクト的には働いてくれない。vaの時点でインサートモードに入る。

↑のバグは、まあ微々たるもんだろう。直す気はない。
Vの挙動は、気が向いたら直すかもしれん。

今度はテキストオブジェクトを再現するつもり
594名無しさん@お腹いっぱい。:2010/05/20(木) 23:02:47
ls --color=autoでTABの補完候補を表示させると、
hoge.bmpなどのディレクトリが.bmpファイルの色になります。
補完候補ではなく、普通にlsで見たときはディレクトリ色なんですが。

どなたか分かる方いますか?もしzshのせいでなかったらすいません。
595名無しさん@お腹いっぱい。:2010/05/20(木) 23:27:41
手元の環境ではhoge.bmpでもディレクトリとして色付けされる
関係する設定といったら
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
ぐらいしか無いような気がするけど
596594:2010/05/21(金) 12:19:50
>>595
そうですよね。

completionもlsも、どちらもzsh内の機能だから色付けも統一されるはずと思ったけど、そうじゃないってことかな。
ディレクトリ名に.bmpって付ける癖を直すしかないか・・・
597名無しさん@お腹いっぱい。:2010/05/21(金) 20:40:55
う〜ん、ZLS_COLORSとか?
598名無しさん@お腹いっぱい。:2010/05/29(土) 15:54:23
>>593
おつー。
599名無しさん@お腹いっぱい。:2010/05/29(土) 20:09:15
1行目を #!/bin/zsh としたzshスクリプトの、syntaxの色が
bashのときより素っ気ないのでカスタマイズしたいのですが、
どこの辺をいじればいいでしょうか?
/usr/share/vim/ 以下のファイルでしょうか?
600名無しさん@お腹いっぱい。:2010/05/30(日) 01:10:28
普通は .vim/syntax/zsh.vim
俺は .vim/after/syntax/zsh.vim
601名無しさん@お腹いっぱい。:2010/06/01(火) 07:22:37
>>594
同じような状況になった事があった気がするんだけど、
ディストリビューションは何使ってるの?
その ls はBSD系じゃなくてGNU fileutilsのコマンドになってる?
602名無しさん@お腹いっぱい。:2010/06/01(火) 22:00:36
fileutils って何年前の話だよw
603名無しさん@お腹いっぱい。:2010/06/01(火) 22:59:04
2002年9月1日からcoreutilsに統合だそうな。
604594:2010/06/02(水) 11:48:46
>>601
CentOS 5.2、zshのバージョンは4.2.6です。
605名無しさん@お腹いっぱい。:2010/06/13(日) 03:41:31
>>594
print -l $LS_COLORS $ZLS_COLORS
zstyle -L |grep list-colors

をはった方が話が早いのではなかろうか
606594:2010/06/15(火) 18:07:45
>>605
見苦しくて恐縮ですが貼らせて頂きます。(適宜改行してます)

$ echo $LS_COLORS
no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:
mi=01;05;37;41:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:
*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:
*.cpio=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:
*.png=01;35:*.tif=01;35:*.avi=01;33:*.mpg=01;33:*.mpeg=01;33:*.wmv=01;33:*.o=00;38;05;216:

$ echo $ZLS_COLORS
no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:
mi=01;05;37;41:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:
*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:
*.cpio=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:
*.png=01;35:*.tif=01;35:*.avi=01;33:*.mpg=01;33:*.mpeg=01;33:*.wmv=01;33:*.o=00;38;05;216:
(-default-)no=00:(-default-)fi=00:(-default-)di=01;34:(-default-)ln=01;36:(-default-)pi=40;33:
(-default-)so=01;35:(-default-)bd=40;33;01:(-default-)cd=40;33;01:(-default-)or=01;05;37;41:
(-default-)mi=01;05;37;41:(-default-)ex=01;32:(-default-)*.tar=01;31:(-default-)*.tgz=01;31:
(-default-)*.arj=01;31:(-default-)*.taz=01;31:(-default-)*.lzh=01;31:(-default-)*.zip=01;31:
(-default-)*.z=01;31:(-default-)*.Z=01;31:(-default-)*.gz=01;31:(-default-)*.bz2=01;31:
(-default-)*.bz=01;31:(-default-)*.tz=01;31:(-default-)*.rpm=01;31:(-default-)*.cpio=01;31:
(-default-)*.jpg=01;35:(-default-)*.jpeg=01;35:(-default-)*.gif=01;35:(-default-)*.bmp=01;35:
(-default-)*.xbm=01;35:(-default-)*.xpm=01;35:(-default-)*.png=01;35:(-default-)*.tif=01;35:
(-default-)*.avi=01;33:(-default-)*.mpg=01;33:(-default-)*.mpeg=01;33:(-default-)*.wmv=01;33:
(-default-)*.o=00;38;05;216




607594:2010/06/15(火) 18:08:34
続き

$ zstyle -L |grep list-colors
zstyle ':completion:*' list-colors 'no=00' 'fi=00' 'di=01;34' 'ln=01;36' 'pi=40;33' 'so=01;35'
'bd=40;33;01' 'cd=40;33;01' 'or=01;05;37;41' 'mi=01;05;37;41' 'ex=01;32' '*.tar=01;31'
'*.tgz=01;31' '*.arj=01;31' '*.taz=01;31' '*.lzh=01;31' '*.zip=01;31' '*.z=01;31' '*.Z=01;31'
'*.gz=01;31' '*.bz2=01;31' '*.bz=01;31' '*.tz=01;31' '*.rpm=01;31' '*.cpio=01;31' '*.jpg=01;35'
'*.jpeg=01;35' '*.gif=01;35' '*.bmp=01;35' '*.xbm=01;35' '*.xpm=01;35' '*.png=01;35'
'*.tif=01;35' '*.avi=01;33' '*.mpg=01;33' '*.mpeg=01;33' '*.wmv=01;33' '*.o=00;38;05;216'
608名無しさん@お腹いっぱい。:2010/06/16(水) 08:10:12
グローバルエイリアスって
% alias -g hoge="|ls"
% touch hoge
touch: missing file operand
詳しくは `touch --help' を実行して下さい.
zsh: exit 1 touch |
zsh: done ls -F --color=auto
%

ありがちなのをつけるとマズいんだな・・・
609名無しさん@お腹いっぱい。:2010/06/16(水) 09:15:28
大文字1 or 2文字くらいにしとくとよいかも。
610名無しさん@お腹いっぱい。:2010/06/16(水) 14:48:21
グローバルエイリアスにした文字を普通の文字にエスケープするのって不可能?
611名無しさん@お腹いっぱい。:2010/06/16(水) 15:09:10
$ touch 'hoge'
$ touch "hoge"
$ touch ¥hoge
お好きなのをどうぞ
612名無しさん@お腹いっぱい。:2010/06/16(水) 18:25:24
普通にできるのね、失礼w
613名無しさん@お腹いっぱい。:2010/06/24(木) 16:26:39
$ cp /foo /bar  まで打ってからCtrl+wを押すと、1ワード消えて
$ cp /foo /  になりますが、もう1回押すと
$ cp /  になります。これを
$ cp /foo  で止める方法はありませんか?
614名無しさん@お腹いっぱい。:2010/06/24(木) 23:13:19
ある。
615名無しさん@お腹いっぱい。:2010/06/24(木) 23:25:17
普通にできるのね、失礼w
616613:2010/06/25(金) 11:43:43
>>614


かなりググりましたが、分かりませんでした。すいません教えてください。
ちなみに WORDCHARS='*?_-.[]~=&;!#$%^(){}<>' にしています。
空白も単語の区切りに設定できれば出来そうな気がしますが・・・
617名無しさん@お腹いっぱい。:2010/07/04(日) 04:34:19
>>606
その設定だと aaaaa.bmp/ が青boldで出るけど。
baaaa.bmp はマゼンダboldで出る。

% echo $ZSH_VERSION
4.3.9
618名無しさん@お腹いっぱい。:2010/07/10(土) 01:44:41
>>616
backward-kill-word-match とか使えばなるんじゃない?
とか適当いってみる。
619名無しさん@お腹いっぱい。:2010/07/25(日) 00:07:51
二段プロンプトなんてログ見づらくなるだけじゃね、と思ってたけど、
PROMPT="┌[${USER}@${HOST}][%~]
└ "
こんな設定を見て目から鱗が落ちた。かなり良い。
620名無しさん@お腹いっぱい。:2010/07/25(日) 01:05:08
プロンプトに全角使うのはちょっと・・・
621名無しさん@お腹いっぱい。:2010/07/25(日) 01:11:01
俺はプロンプトと入力行が別だとすげー落ち着かない
余所の家のトイレぐらい落ち着かない
622名無しさん@お腹いっぱい。:2010/07/25(日) 01:36:59
漢は黙ってPROMPT=$
623名無しさん@お腹いっぱい。:2010/07/25(日) 15:32:27
一行に色々つめ込むと見にくいんで
多段プロンプトにしてPROMPT=$派かな
624名無しさん@お腹いっぱい。:2010/07/25(日) 16:38:07
俺はさらに頭に空行入れて、色付きにしてる
625名無しさん@お腹いっぱい。:2010/07/28(水) 20:53:00
1行目にユーザ、ホスト、PWD、現在時刻表示させて、
2行目に$ だけ
626名無しさん@お腹いっぱい。:2010/07/28(水) 21:22:23
俺もそんな感じ
時刻は2行目のRPROMPTでやってるけど
627名無しさん@お腹いっぱい。:2010/07/29(木) 13:11:09
時間は何気に役に立つんだよね。
そういえば、スクリプトの完了通知が欲しい時ってどうしてる?
終わったらgnomeのnotifier呼ぶとかかな
628名無しさん@お腹いっぱい。:2010/07/30(金) 02:53:46
時刻は、端末の右下にscreenの機能で表示させる

そうか。プロンプトに時刻出しておくと、コマンドの実行時刻が分かるのか。
たしかに便利そうだ。
629名無しさん@お腹いっぱい。:2010/07/30(金) 08:34:40
実行した時刻でよければ extended_history にも載ってるよ。
630名無しさん@お腹いっぱい。:2010/08/03(火) 20:27:33
i-searchでCtrl-rで遡っているときにバックスペースを押すと
逆方向に降りる(つまりCtrl-s)動作になるのですが、
これを普通に検索ワードの後方削除にする方法を教えてください。
631名無しさん@お腹いっぱい。:2010/08/12(木) 13:55:03
2つ下にcdする用に alias -g ....='../..' とやってるけど、なんか一抹の不安が・・・
同じことしてる人いますかね?大丈夫だよね?

昔どっかで rm -rf .* で全て消えたってスレがあったのを思い出した
632名無しさん@お腹いっぱい。:2010/08/13(金) 02:43:27
rm .... したらって話? rm ../.. とそう変わらない気がするけど。
alias ....='cd ../..' じゃだめなの?
まあ俺は c () { cd ../${*:gs@.@../@} } で c . ってしてるけど。

>>630
こんなことは知っているかもしれないが、
backward-delete-char とかのkeyを押すとそうなる。
backward-delete-word とかのkeyを押すと削除される。
633名無しさん@お腹いっぱい。:2010/08/16(月) 20:29:00
>>631
下?
634名無しさん@お腹いっぱい。:2010/08/30(月) 18:01:59
>=とかの算術演算子って使えるはずだよね?
[ 1 <= 2 ] && echo "true" ってやったらエラーになるんだけど
635名無しさん@お腹いっぱい。:2010/08/30(月) 18:14:37
(( 1 <= 2 )) && echo true
636名無しさん@お腹いっぱい。:2010/08/30(月) 20:14:24
>>635
どうもです。(( ))って条件文でも使えるんだ

てか、[[ と (( って機能が被ってないですかね?
<は両方とも使えるけど、<=は((だけ、-eなどの条件文は[[だけみたい
637名無しさん@お腹いっぱい。:2010/08/31(火) 15:37:27
[ ] [[ ]] (( )) の使い分けはzshの難関の一つだねぇ
zshall読んでもなかなか覚えられん
638名無しさん@お腹いっぱい。:2010/08/31(火) 19:19:58
compdef書けるようになるとかなり幅が広がるな
つーかラッパーにもってこいだな
639名無しさん@お腹いっぱい。:2010/08/31(火) 19:29:36
>>636
[[ の中の < と、
(( の中の < は意味が違うんだよ。

[[ 12 < 3 ]] && echo TRUE
と、
(( 12 < 3 )) && echo TRUE

を試せばわかる。
640636:2010/08/31(火) 22:15:17
>>639
[[ の<は文字列比較でしたか・・・Σ(゚д゚;;)
やばいミスをしでかす前に気づいてよかった

つまり[[と((はちゃんと使い分けろってことね
641名無しさん@お腹いっぱい。:2010/09/01(水) 18:34:41
zkbdをautoloadしてから実行したら zkbd: must be run as a function or shell script, not sourced ってなった。
直接 zsh -f /usr/local/share/zsh/4.3.10/functions/zkbd ってすれば動くけど。なんだこれ
642641:2010/09/01(水) 20:30:30
zsh 4.3.5から冒頭の部分が変わったのが原因みたいだけど、
そもそもこの部分に何の意味があるのかが分からない。

$ diff zsh-4.3.10/Functions/Misc/zkbd zsh-4.3.5/Functions/Misc/zkbd | head -n 6
4,5c4,5
< local -hi ARGC # local is a no-op outside of a function
< (ARGC=0) 2>/dev/null || { # so ARGC remains read-only for "source"
---
> local -i ARGC
> (ARGC=0) 2>/dev/null || {
643名無しさん@お腹いっぱい。:2010/09/01(水) 21:12:51
それ、コメントの書き方間違ってないか?
644名無しさん@お腹いっぱい。:2010/09/02(木) 04:39:19
diffの引数逆にするだろ普通。
645名無しさん@お腹いっぱい。:2010/09/02(木) 23:02:14
>>644
普通?ってwwww
いいだろ、どうだろうと、カチカチあたまくん
646名無しさん@お腹いっぱい。:2010/09/03(金) 00:17:10
>>645
diff使い慣れないから普通が分からないだけだろ。
647名無しさん@お腹いっぱい。:2010/09/03(金) 08:48:01
古い方を前にするのが普通だよ。
でないと -u の -,+ とあわない。
648名無しさん@お腹いっぱい。:2010/09/03(金) 11:22:46
lnだって ln -s 古くからあるファイル 新しい名前 みたいな順だしなあ
649名無しさん@お腹いっぱい。:2010/09/03(金) 11:25:34
>645 みたいなのは徹底して叩いておかないと、
いずれ凡ミスが原因で他人の足を引っ張った挙げ句逆ギレするタイプ。
650641:2010/09/03(金) 12:08:57
なんか変な流れになってるが俺のせいなのか・・・
>>641は新・旧という意識でdiffしたわけじゃなかったのでこうしただけだが。
別にいいじゃないすかパッチ作るわけじゃないし(駄目?

ググったら極わずかだけど同じこと言ってる人いた。だいぶ前だが
651名無しさん@お腹いっぱい。:2010/09/03(金) 13:36:07
>>649
その通り。
無能な働き者はあらかじめ粛清しておくに限る。
652名無しさん@お腹いっぱい。:2010/09/03(金) 13:41:23
>>650
駄目ではないけど、普通ではない。
653名無しさん@お腹いっぱい。:2010/09/03(金) 14:33:30
>>648
ln の仕様は確かに糞だな
654名無しさん@お腹いっぱい。:2010/09/03(金) 14:56:41
それはlsとかで 古い -> 新しい みたいな表示をするせいだろ。
655名無しさん@お腹いっぱい。:2010/09/03(金) 15:22:53
lnの順序はcpやmvと同じ。
656名無しさん@お腹いっぱい。:2010/09/04(土) 22:56:55
関数のexportってexport -fですよね?以下が駄目なのは何故ですか?

$ zsh --version
zsh 4.3.10 (x86_64-redhat-linux-gnu)
$ a () {
echo "calling a"
}
$ export -f a
a () {
echo "calling a"
}
$ a
calling a
$ zsh
$ a
zsh: command not found: a
657名無しさん@お腹いっぱい。:2010/09/05(日) 07:13:06
>>656
> 関数のexportってexport -fですよね?
は?
658656:2010/09/05(日) 21:03:37
>関数のexportってexport -fですよね?
bashだとそうですが、zshだと違うみたいですね
というか単に出力するだけ?
659名無しさん@お腹いっぱい。:2010/09/17(金) 17:59:14
Windows7上のCygwin on rxvt SJIS環境 zsh 4.3.9で
printf()による出力がある自作CUIプログラムを実行すると
出力の末尾に%記号が反転されて表示されるのですが、原因としては何が考えられるでしょうか?

同様にbashでもプログラムを実行しましたがこちらでは問題ありませんでした
通常のCygwin上で実行したzshだとコマンドラインを空の状態で
Enterキーを押しても反転された%が表示されます
コマンドを実行した際は末尾に表示されます

プログラムは以下でgccとVSのclコマンドでコンパイルして試しました
---------------
#include <stdio.h>
int main(void) {
printf("hoge");
}
---------------
出力
$ gcc -o main.exe main.c
$ ./main.exe
hoge%
---------------
.zshrcの設定
export TERM=vt100
export TERM=xterm
export LANG=ja_JP.SJIS
export LESSCHARSET=japanese-sjis
660名無しさん@お腹いっぱい。:2010/09/17(金) 18:38:37
>>659
printf()の文字列に改行を入れてないのが間違い。
bashではたまたま設定で頭に改行コードが付いたプロンプトを使っていたので
うまくいってるように見えただけ。
zshでは、設定で反転文字の%のプロンプトが設定されていたというだけ。

で、zshの話題とは全然関係ない。
661名無しさん@お腹いっぱい。:2010/09/17(金) 18:41:24
>>660
どうどうと、嘘つくな
662659:2010/09/17(金) 18:56:35
PROMPT変数にWindowsが$P$Gを入れてたので
prompt elite2 greenなどでプロンプトを設定していましたが
PROMPT=''で表示を変えても%が表示されるのは確認しました
Windows標準のコマンドプロンプト上でzshを起動しても同様です
663名無しさん@お腹いっぱい。:2010/09/17(金) 19:06:53
だから printf()に改行コードを入れろよ。それですべて解決。
664名無しさん@お腹いっぱい。:2010/09/17(金) 19:10:06
zshもCも関係なくUNIXのお約束として特別な事情がないかぎり入出力とかファイルの末尾は改行じゃなきゃいけないの
本来末尾にあるべき改行がねえぞって注意してくれてんの

% echo "hoge"
hoge
% echo -n "hoge"
hoge%
% echo -n "hoge\n"
hoge
665名無しさん@お腹いっぱい。:2010/09/17(金) 19:59:09
>>664
偉そうに、デタラメ言うな
666659:2010/09/17(金) 23:00:07
>>664
お約束事でしたか。詳しく書いてくださってありがとうございます。
CUIプログラムに改行を付け加えたら無事に動作しました。
667名無しさん@お腹いっぱい。:2010/09/17(金) 23:20:39
>>661 = >>665 の立場がなくなったなww
668名無しさん@お腹いっぱい。:2010/09/18(土) 08:51:36
cddってtmuxでも動くのか
669名無しさん@お腹いっぱい。:2010/10/08(金) 15:12:52
historyって宝ですよねー
何度か消えてしまって泣いたことがある
setopt share_historyしてるからかな
670名無しさん@お腹いっぱい。:2010/10/15(金) 12:25:21
みんなHISTSIZE はどのくらいにしてるのかな?
自分は↓
% echo $HISTSIZE
10000
671名無しさん@お腹いっぱい。:2010/10/15(金) 13:15:10
$ echo $HISTSIZE
10000000
672名無しさん@お腹いっぱい。:2010/10/15(金) 15:06:42
俺も HISTSIZE=10000 だった

ついでに、何故か LISTMAX=10000000000 とかしてた
あまり考えずに大きい値にしたから 32ビット超えてるけど動いてるからいいか
673名無しさん@お腹いっぱい。:2010/10/15(金) 19:58:14
>>671
すげえなw
でもある意味プライバシーの塊だな
674名無しさん@お腹いっぱい。:2010/10/15(金) 20:57:00
>>669
ディスクが100%になって端末がおかしくなってログアウトしたら
historyの書き込み失敗したのかhistoryファイル自体があぼーんしたわ
それ以来historyもバックアップとるようになった
675名無しさん@お腹いっぱい。:2010/10/16(土) 00:14:59
>>673
今見たら.zsh_historyが1.2MBもあったw
676名無しさん@お腹いっぱい。:2010/10/16(土) 18:07:21
昔はwgetとかでエロ画像をシコシコ落としてたらしいし、historyは絶対人に見せられないだろうな
677名無しさん@お腹いっぱい。:2010/10/16(土) 18:44:41
俺は今でもエロ画像落とすのにwget使ってるというのに…
まあ滅多にないけどさ
678名無しさん@お腹いっぱい。:2010/10/16(土) 19:13:37
ファイル名が連番のエロ画像はcurlで落とす
679名無しさん@お腹いっぱい。:2010/10/17(日) 00:27:21
>678
敢えて zsh スレでそんなこと書くって釣り宣言?
680名無しさん@お腹いっぱい。:2010/10/17(日) 18:25:06
つかcurlなんてあったんだ
681名無しさん@お腹いっぱい。:2010/10/17(日) 18:33:20
えっ
682名無しさん@お腹いっぱい。:2010/10/30(土) 19:43:55
cygwinのzshでHISTFILE=$HOME/.zsh-history と設定してヒストリーを使おうとすると、
zsh: failed to create hard link as lock file .zsh-history.LOCK: permission denied
とエラーが出るのですが、回避方法はないでしょうか?
よろしくお願いします。
683名無しさん@お腹いっぱい。:2010/10/31(日) 11:19:35
極限のシェルzsh
これを極めし者は時空をも超える
684名無しさん@お腹いっぱい。:2010/11/03(水) 10:49:01
>>682
そんぐらいググってくれ
ntfsにすれば解決
685名無しさん@お腹いっぱい。:2010/11/07(日) 07:59:12
うんこー!
しょんべー!
686名無しさん@お腹いっぱい。:2010/11/12(金) 17:28:50
>>82
僕もなぜか新しいscreen立ち上げたときは反映されなくてsourceしたらようやく反映される設定があったけど
.zshenvに書いたら大丈夫だったよ.
687名無しさん@お腹いっぱい。:2010/11/13(土) 18:09:16
>>686
インタラクティブシェルのときは.zshrcは読まれるはずなんだけどな
688名無しさん@お腹いっぱい。:2010/11/14(日) 02:34:18
.zshrcの該当箇所より前にエラーがあったとか
689 [―{}@{}@{}-] 名無しさん@お腹いっぱい。:2010/11/14(日) 03:00:43
>>687
そうだよね.そう思ってたんだけどなぜか読まれない設定もあるみたい
690 [―{}@{}@{}-] 名無しさん@お腹いっぱい。:2010/11/14(日) 03:10:44
>>688
エラーがあったらzshはそのエラーの箇所を教えてくれるじゃん
691名無しさん@お腹いっぱい。:2010/11/14(日) 21:31:33
.zshrc を
bindkey "^P" history-beginning-search-backward-end
だけにしても同じなのかね。
692名無しさん@お腹いっぱい。:2010/11/18(木) 15:38:06
sshのログイン先で実行したzshスクリプトをdisownしてからログアウトすると、
何故かプロセス終了まで待たされてしまいます。
$ cat hoge.sh
#!/bin/zsh
sleep 3
$ ./hoge.sh &>/dev/null </dev/null &!
$ exit <---待たされる

スクリプトをzsh以外にしたり直接プロセスを実行したりすると、ちゃんとログアウトできます。
$ cat hoge.sh
#!/bin/sh
sleep 3
$ sleep 3 &>/dev/null </dev/null &!

入出力は全部閉じてるはずなんですが、zshだと何故こうなるんでしょうか?
693名無しさん@お腹いっぱい。:2010/11/18(木) 19:50:47
試したけど待たされなかったよ。なんか他に条件があるのかも。
694692:2010/11/18(木) 21:20:48
>>693
そうですか。
check_jobs が関係するかなと思いましたが、有りと無しともに同じでした。
他の設定が悪いのかと思い、rm -r .z* して試しましたが、やはり同じでした。

↓バージョンです
$ zsh --version
zsh 4.3.10 (x86_64-redhat-linux-gnu)
695名無しさん@お腹いっぱい。:2010/11/22(月) 20:15:39
たまに「.zhistory.84VoUD」みたいなテンポラリ的な履歴が作られるんだけど何でだろう?
ログアウトはちゃんとしてるのに
696名無しさん@お腹いっぱい。:2010/12/02(木) 10:47:13
初心者質問すいません。
シェルをbashからzshに代えたら、ログインし直すたびにhistoryコマンドの履歴が消えてしまっています
.zshrcには
HISTFILE=$HOME/.zsh_history # 履歴をファイルに保存する
HISTSIZE=100000 # メモリ内の履歴の数
SAVEHIST=100000 # 保存される履歴の数
と書いていて、.zsh_history自体をlessで覗くと記録が残っているのですが…
697名無しさん@お腹いっぱい。:2010/12/02(木) 13:16:49
別のファイルで先にHISTFILEが設定されていてそっちから読まれちゃったとか?
698696:2010/12/06(月) 13:00:10
すいません、超勘違いで無事に書き込みされていました!
699名無しさん@お腹いっぱい。:2010/12/06(月) 20:39:58
SuSEとかだと/etc/zsh*で結構設定してるんだよな
HISTFILEを.zshenvに書いてたせいでハマった覚えが
700名無しさん@お腹いっぱい。:2010/12/19(日) 19:12:31
bashの「変数のn文字目からm文字目を取り出す」という機能はzshにはないんですか?
こんな感じのやつです
$ str=hoge
$ echo ${str:1:2}   ←先頭は0から
og
$ echo ${str:1}   ←2つ目を指定しないと末尾まで
oge
701名無しさん@お腹いっぱい。:2010/12/19(日) 21:06:59
>>700
% str=hoge
% echo $str[2,3] # 先頭は 1 から
og
% echo $str[2,-1] # 末尾は -1 から
oge
% echo $str[2] # n 文字目
o
702名無しさん@お腹いっぱい。:2010/12/19(日) 22:01:16
>>701
ありがとうございます!そんな方法があったとは・・・
配列の場合もできるんですね
$ str=( hoge fuga )
$ echo ${str[2][1,-1]}
fuga
703名無しさん@お腹いっぱい。:2010/12/23(木) 03:08:11
hoge.txt
内から、piyoという文字列を検索して、それ以降の行を取得するのってどうすればいい?
perl使えば可能ではあるけど・・・・これはシェルスクリプトスレで聞くべきか

cat hoge.txt |perl -ne 'if($i==0){if(m:piyo:){$i=1}}else{print}'
704名無しさん@お腹いっぱい。:2010/12/23(木) 03:41:15
スレチだね

grep -A99999999 'piyo' hoge.txt
perl -ne '$f|=/piyo/and print' hoge.txt
705名無しさん@お腹いっぱい。:2010/12/23(木) 05:54:50
9999999とか使うよりも、`wc -l`使ったほうが良いんでないかい?
706名無しさん@お腹いっぱい。:2010/12/23(木) 08:20:45
sedでええやん
707名無しさん@お腹いっぱい。:2010/12/23(木) 10:39:34
sed '1,/piyo/d' hoge.txt ってな感じ?

>>700
12/20 に出たばかりの 4.3.11 のリリースノートを読んであまりのタイムリーさに笑ってしまった

> Parameter expansion has been enhanced to provide the ${NAME:OFFSET} and ${NAME:OFFSET:LENGTH} syntax
> for substrings and subarrays present in several other shells.
708名無しさん@お腹いっぱい。:2010/12/31(金) 00:47:09
>>695
うちもそれ偶にみると大量(でもないか)にできてて、
rm .zsh_history.* とかしてたんだけど、
今みるとないな。前消してからけっこうたった気がするけど。
709名無しさん@お腹いっぱい。:2011/01/01(土) 23:31:40
ネットが瞬断して端末が切れたとかはないの?
710名無しさん@お腹いっぱい。:2011/01/06(木) 23:45:20
zsh-4.3.[10,11]のelite2プロンプトで変な文字が入る

┌┌(hoge@hage)┌(10001/pts/6)┌(11:42pm:01/06/11)┌-
└┌(%:~)┌-

誰か同じ症状の人いない?
prompt_elite2_setupはzsh-4.3.9(正常なプロンプトが出る)に含まれる物と同じみたい
711名無しさん@お腹いっぱい。:2011/01/08(土) 21:48:53
>>703
% sed '1,/piyo/d' hoge.txt
で簡単にできるはず。
712名無しさん@お腹いっぱい。:2011/01/09(日) 01:27:28
すでに>>707にあるがな
713名無しさん@お腹いっぱい。:2011/01/09(日) 04:00:39
zsh睾丸
714名無しさん@お腹いっぱい。:2011/01/14(金) 00:17:01
>>710
prompt は使ってないけど…
期待値は?
prompt_special_chars は変わってない?

┌┌(hoge@hoge)┌(516/pts/4)┌(12:13午前:01/14/11)┌-
└┌(%:~)┌-

あー俺もヒストリ10000ぐらいにしよっかなー
715名無しさん@お腹いっぱい。:2011/01/14(金) 00:18:14
書き忘れたけど >>714 のプロンプトはうちで試した結果ね。
716名無しさん@お腹いっぱい。:2011/01/14(金) 10:29:40
prompt テーマだかは使ったことないけど
それのどこが "変" でどうなっているべきなの?

↓と似たような感じに見えるけど…
http://www.linuxaria.com/wp-content/uploads/2010/10/prompt.jpg
717710:2011/01/14(金) 20:30:04
>>714
prompt_special_charsが変ってるみたい
4.3.9のelite2プロンプトは下記の通り '┌' が付かない

(hoge@hage)(10015/pts/7)(08:26pm:01/14/11)-
(%:~)- diff -u prompt_special_chars-4.3.*
--- prompt_special_chars-4.3.9 2011-01-14 20:26:13.012731694 +0900
+++ prompt_special_chars-4.3.10 2011-01-14 20:26:13.012731694 +0900
@@ -8,7 +8,7 @@

typeset -gA schars

-if [[ ${LC_ALL:-${LC_CTYPE:-$LANG}} = *UTF-8* ]]; then
+if [[ ${LC_ALL:-${LC_CTYPE:-$LANG}} = *(UTF-8|utf8)* ]]; then
schars[300]=$'\xe2\x94\x94'
schars[304]=$'\xe2\x94\x8c'
schars[332]=$'\xe2\x94\x8c'
@@ -20,6 +20,6 @@
schars[260]=$'\xe2\x96\x91'
else
for code in 300 304 332 333 371 372 262 261 260; do
- eval "char[$code]=\$'\\$code'"
+ eval "schars[$code]=\$'\\$code'"
done
fi
718名無しさん@お腹いっぱい。:2011/01/22(土) 23:57:26
解決 ?
719名無しさん@お腹いっぱい。:2011/01/23(日) 21:50:20
zshマスターは時空を超える
720名無しさん@お腹いっぱい。:2011/01/28(金) 07:30:14
引数リストの長さの制限を自動で超越して欲しいことは時々ある
721名無しさん@お腹いっぱい。:2011/01/28(金) 18:01:18
cvs updateできないの俺だけ?
Fatal error, aborting.
anoncvs_zsh: no such system user
722名無しさん@お腹いっぱい。:2011/01/29(土) 03:48:58
補完で優先順位を察して補完してくれる機能ってありますか?

autoload predict-on
predict-on
の先方予測は試したけどtab打たなくても勝手に出てるっていうのが気持ち悪い。一応Tab打った時だけ反応して欲しい。
723名無しさん@お腹いっぱい。:2011/01/31(月) 00:57:02
?つまり?
724名無しさん@お腹いっぱい。:2011/02/12(土) 18:27:10
ho
725名無しさん@お腹いっぱい。:2011/04/11(月) 02:01:20.99
_history-complete-{older,newer} って menu select ができないのかな
726名無しさん@お腹いっぱい。:2011/04/15(金) 18:13:04.18
/a/b/c が /A/B/C というディレクトリへの symlink のときに、/a/b/c に移動してから
ls ../[TAB] とすると /A/B 以下のファイルが補完対象になります。
これを /a/b 以下のファイルを対象にしたいのですが、どのようにすればいいのでしょうか?

ちなみに CHASE_DOTS と CHASE_LINKS はオフにしています。
727名無しさん@お腹いっぱい。:2011/04/15(金) 22:59:29.50
>>726 plus
mkdir /a and /A
mkdir /b and /B
mkdir /c and /C    ON files of directory.
728名無しさん@お腹いっぱい。:2011/04/16(土) 09:02:53.75
>>726
そんな補完したところでlsは失敗するだけなので意味がないのでは?
729名無しさん@お腹いっぱい。:2011/04/16(土) 09:50:13.12
そもそも >727 がなにが言いたいのかわからん
730名無しさん@お腹いっぱい。:2011/04/16(土) 15:01:31.51
tempfile==(foo_process) と一時ファイルの名前を取得しておいて、後で $tempfile を
処理するような zsh スクリプトを書くことがあるのだけど、4.3.6 から 4.3.11 に
バージョンアップしたら動かなくなった。

後で処理する段階では削除済みになっている。セキュリテイの問題か何かで、一時ファイルの
寿命を変更したのだろうか。お手軽に一時ファイルを扱えて便利だったんだが。
731名無しさん@お腹いっぱい。:2011/04/30(土) 00:44:02.87
元からそう動くと思っていたが、
前は作りっぱなしだったのか。
732名無しさん@お腹いっぱい。:2011/05/01(日) 01:48:08.75
>>731
それで思い出した。スクリプト終了時には多くの場合自動的に消えるのだが、
たまに /tmp/zsh* が残ったままになるので、trap で消すようにしてあったんだった。
やはりバグだったのかもしれない。
733名無しさん@お腹いっぱい。:2011/05/14(土) 16:48:39.90
内蔵コマンドのniceが欲しい
734名無しさん@お腹いっぱい。:2011/05/14(土) 21:01:39.43
なぜ?
735名無しさん@お腹いっぱい。:2011/05/14(土) 23:16:30.10
そっちの方がniceだから
736名無しさん@お腹いっぱい。:2011/05/16(月) 12:00:38.09
そういうコマンドはないスね。
737名無しさん@お腹いっぱい。:2011/05/16(月) 19:33:27.50
ナイスな切り返し!
738名無しさん@お腹いっぱい。:2011/05/17(火) 01:48:06.20
ナイスな椅子
739名無しさん@お腹いっぱい。:2011/05/17(火) 20:54:54.76
コッシーか
740名無しさん@お腹いっぱい。:2011/05/24(火) 04:21:47.89
電動オナホールをzshで制御
741名無しさん@お腹いっぱい。:2011/05/25(水) 00:17:08.52
俺は童貞だ!
742名無しさん@お腹いっぱい。:2011/05/26(木) 00:23:11.80
すみません。zmvの使い方を教えてください
1.pdf 2.pdf ... 9999.pdf を

0001.pdf 0002.pdf ... 9999.pdf と、
先頭に0を含むファイル名に変えるにはどうすればできますか?
743名無しさん@お腹いっぱい。:2011/05/26(木) 01:00:04.31
zmv '(*).pdf' '${(l:4::0:)1}.pdf' でいいのかな?
正直こういうzshの変な機能を使うのはどうかと思う
744742:2011/05/26(木) 01:40:01.29
>>743
ありがとうございます。
>正直こういうzshの変な機能を使うのはどうかと思う
痒いところにピンポイントで、とても助かりました。
745名無しさん@お腹いっぱい。:2011/05/28(土) 13:12:40.65
変な機能はいいんだけど、次に必要になる時までに使い方を忘れてしまうのが難点。
746名無しさん@お腹いっぱい。:2011/05/28(土) 13:16:40.66
>>745
HISTSIZEもっとでかくしようぜ?
747名無しさん@お腹いっぱい。:2011/05/28(土) 19:43:09.37
% echo $SAVEHIST
0

% echo $HISTSIZE
100000

保存したいなー、と思ったときだけ
% SAVEHIST=1 fc -W $HISTFILE
748名無しさん@お腹いっぱい。:2011/06/11(土) 02:40:20.24
また変わったことを‥ 似たことを考えたことはあるけど。
さて、ひとまず 10倍にするか。
749名無しさん@お腹いっぱい。:2011/06/14(火) 07:27:59.44
4.3.12
750名無しさん@お腹いっぱい。:2011/06/15(水) 21:10:11.82
zshで時空を超えた奴はいないか?
751名無しさん@お腹いっぱい。:2011/06/15(水) 21:14:02.51
色即是空、空即是色
シェル製作者は冥界へ行ったまま帰ってこない
752名無しさん@お腹いっぱい。:2011/06/15(水) 21:25:26.73
zsh 4.3.12 で setopt ksh_arrays にしてると _main_complete でエラーが出て
補完が効かなくなるのはおれだけ?
そのファイルで setopt localoptions no_ksh_arrays すると大丈夫っぽいけど、
正しい方法か分からない。
753名無しさん@お腹いっぱい。:2011/07/13(水) 21:45:12.61
「# cp /us」で上キー押すと履歴が補完されて
「# cp /usr/home .」のようになるのですが、
たまに、「# cp /us」で上キー押しても履歴補完されず、もう1度押すと
直前のコマンドが表示されてしまいます。
これはどこか.zshrcがおかしいのでしょうか?
ちなみに、大地さんのhttp://journal.mycom.co.jp/column/zsh/024/index.html
を、履歴補完のキーだけ改造しただけだったと思います。
754名無しさん@お腹いっぱい。:2011/07/18(月) 16:57:18.63
>>752
まだ 4.3.11 だしエラーの内容知らんけどまあ正しいんじゃない?

>>753
↑キーには何 bind してんの?
755753:2011/07/19(火) 03:17:01.85
autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "\e[A" history-beginning-search-backward-end
bindkey "\e[B" history-beginning-search-forward-end
bindkey "\\ep" history-beginning-search-backward-end
bindkey "\\en" history-beginning-search-forward-end

です
756名無しさん@お腹いっぱい。:2011/07/20(水) 23:31:23.84
よく起きるなら history-search-end の先頭で setopt xtrace してみれば何かわかるかもね
757名無しさん@お腹いっぱい。:2011/08/06(土) 12:36:50.68
前から思ってたけど **/* は ** でいい気がする。表記法として。
/* が無駄に思える。
要らなくね?と思いながら / を打っている。
758名無しさん@お腹いっぱい。:2011/08/06(土) 15:51:31.14
え?
759名無しさん@お腹いっぱい。:2011/08/10(水) 14:30:44.99
そういやMSX-DOSにはディレクトリがなかったっけ
かつてファイルしかない世界がそこにはあった
>>757はそんな時代に生きているんだ
760名無しさん@お腹いっぱい。:2011/08/10(水) 17:54:21.35
いや **/* だけ特別扱いしたらっていう提案でしょ。
単に ** の時は **/* に、
**/*.c みたいなやつは今までどおりでと。
761名無しさん@お腹いっぱい。:2011/08/10(水) 19:43:41.53
特別扱いというより、**のみの意味を考えた時に
**/*と何ら変わりがなくね?って話かと
762名無しさん@お腹いっぱい。:2011/08/10(水) 21:32:22.84
/** ここはコメントです **/
763名無しさん@お腹いっぱい。:2011/08/10(水) 23:20:40.36
>>760
それなら、グローバルエイリアスで '**'='**/*' すればいいだけじゃね?
764757:2011/08/12(金) 03:16:42.94
>>761 が近い、というよりそのものかな。

>>763
なので、悪くない案だけど理想は dir/** -> dir/**/* になることかな。
alias -g '**=**/*' じゃ dir/ 付きは変わらなかった。
色々やってまで実現したい訳じゃないので。個人的にはこういう仕様の方がよかったなー、というだけで。
まあ熟慮した訳じゃないので破綻してるかも知れないけど。

つか man zshexpn の Recursive Globbing 見ると

As a shorthand, `**/' is equivalent to `(*/)#'

とあり directory についての記法になってるけど、
感覚的には `**' が `(*/)#*' なんだよなー。
まあこれだと **/foo が foo に match しないけど。
無理に書くと ** を ./(/*)# として match したものから . を除いて正規化したものが期待結果かな。
zsh の glob として正しくないけど。
なんかもう破綻してる気がする。

いや、というか訳わからんこと書いたけど結局こうなってほしいってことか。

** -> (*/)#*
**/ -> (*/)#

更にいうとこうか。最初に戻ってるよ。

** -> **/*

どうやら混乱していたようだ。
765名無しさん@お腹いっぱい。:2011/08/26(金) 03:48:57.64
#!/bin/zsh
766名無しさん@お腹いっぱい。:2011/08/30(火) 04:55:18.98
zshの本っていうの買ってきた。
まだ読んでない。
767名無しさん@お腹いっぱい。:2011/09/20(火) 00:02:11.12
リンク先のないシンボリックリンクファイルをまとめるglobってあります?
768名無しさん@お腹いっぱい。:2011/09/20(火) 04:23:59.57
*(-@)かな?
769名無しさん@お腹いっぱい。:2011/09/20(火) 10:31:57.15
ウナー *(-@-)*
770名無しさん@お腹いっぱい。:2011/09/25(日) 14:52:34.21
771名無しさん@お腹いっぱい。:2011/09/25(日) 15:18:54.59
>770
+1
772名無しさん@お腹いっぱい。:2011/09/30(金) 04:20:36.81
最近、zshに入門した者なんですが Mac10.6の環境で

PROMPT=$'%(!.#.%%)' ;

を実行するとスーパーユーザだとプロンプトの接頭辞が(そう呼んで正しいのか否かもわかりませんけど)
#
になり、その他だと
%
になるこの原理がどうしてなのかわからず謎めいているのですが

おわかりになる諸先生方いらっしゃいましたらご教授ねがえませんでしょうか
773名無しさん@お腹いっぱい。:2011/09/30(金) 06:05:16.72
zshmisc(1)に書いてある。
774名無しさん@お腹いっぱい。:2011/09/30(金) 09:58:43.77
キターーーーー!!
ハッカーさんありがとうww
775名無しさん@お腹いっぱい。:2011/10/02(日) 21:41:07.32
zshってbashのスクリプト使える?
776名無しさん@お腹いっぱい。:2011/10/03(月) 00:05:32.72
tukaeru
777名無しさん@お腹いっぱい。:2011/10/03(月) 09:18:40.25
ある程度は。
778名無しさん@お腹いっぱい。:2011/10/03(月) 09:27:19.51
スーパーユーザだとプロンプト山桐慎也
779名無しさん@お腹いっぱい。:2011/10/10(月) 20:00:44.39
zshで function { local a=("hoge"); } とやろうとすると怒られる。
bashでは出来るのに。そういう仕様なの?

local a
a=("hoge")

ってやるしかないの?
780名無しさん@お腹いっぱい。:2011/10/10(月) 20:33:33.77
man zshbuiltins の typeset (localの本体) の説明より。

For each name=value assignment, the parameter name is set to value.
Note that arrays currently cannot be assigned in typeset expressions,
only scalars and integers.

ということで現行の制限事項という感じじゃないだろうか。
781名無しさん@お腹いっぱい。:2011/10/11(火) 00:08:27.49
>>780
ありがとう。そういう事なら仕方ないね。
782名無しさん@お腹いっぱい。:2011/10/13(木) 22:45:40.31
エイリアスに補完を効かせるにはどうしたらいいですか?
たとえば、alias adx='chmod +x' とした場合、このadxにchmodと同様の補完を
効かせたいんですが、やはり _adx みたいな補完ファイルを自分で用意しろってことですか?
783名無しさん@お腹いっぱい。:2011/10/13(木) 22:58:24.95
俺の環境では何もせんでも chmod +x [TAB] と同じ補完になるが……
784名無しさん@お腹いっぱい。:2011/10/14(金) 13:06:26.35
多分 compdef adx=chmod とかいう話なんでは
785名無しさん@お腹いっぱい。:2011/10/15(土) 19:25:37.60
ctrl E で行末に移動したあと、単語単位でカーソル位置を戻したいんだけど、どうやんの?
786名無しさん@お腹いっぱい。:2011/10/15(土) 19:39:23.41
bindkey -e なら Alt-B?
787名無しさん@お腹いっぱい。:2011/10/15(土) 21:52:03.41
なお、何をもって単語と見なすかは WORDCHARS 次第。
788名無しさん@お腹いっぱい。:2011/10/18(火) 02:25:40.80
これってreadlineの機能?
789名無しさん@お腹いっぱい。:2011/10/18(火) 02:37:36.81
readline使ってないよ
独自実装
790名無しさん@お腹いっぱい。:2011/10/20(木) 23:52:27.78
キーバインドの一覧を知りたいのですがどうやればいいですか?
791名無しさん@お腹いっぱい。:2011/10/21(金) 00:42:05.88
bindkeyでした
792名無しさん@お腹いっぱい。:2011/11/05(土) 22:41:39.08
zshを使ってみようと思うのですが、勉強するために最適な書籍などはありますか?
793名無しさん@お腹いっぱい。:2011/11/05(土) 23:07:47.87
>>792
この本がお勧めです。
Introduction of the ZSH
http://www.gentei.org/~yuuji/rec/pc/intro-zsh.html#zshbook
794名無しさん@お腹いっぱい。:2011/11/06(日) 08:15:47.33
man zshall
795名無しさん@お腹いっぱい。:2011/11/06(日) 10:18:22.94
迷宮の入り口晒すな
796名無しさん@お腹いっぱい。:2011/11/12(土) 18:58:04.35
TABキーの補完をbashのようにファイル・ディレクトリのみにするには
どう設定すればよいでしょうか?

低スペックのノートPC上でcygwinのzsh 4.3.11 を使っていますが、
TABキーを押すと5〜10秒近く待たされることもあります。
bashだと一瞬なので、zshでも補完の検索をカレントのファイルのみにしたいです。
797名無しさん@お腹いっぱい。:2011/11/13(日) 22:52:50.08
compinit しなければいいんじゃないかな。
てか bash でもいいような気がしたけど、きっと気のせいだな。
798796:2011/11/14(月) 22:49:23.21
おまじないのようにcompinitしてましたが、
プログラマブル補完機能というのが効いていたのですね。
これを外して何か副作用あるかなと思いましたが、特に問題なさそうです。
ありがとうございました。

ヒストリの複数行コマンド編集やTABキーで補完候補の選択ができるとこが
bashになくて気に入ってる機能です。
799名無しさん@お腹いっぱい。:2011/11/18(金) 22:34:45.85
あーなんか履歴検索とかって space を and にした絞り込みにしたら使いやすいかもなあ。
とか最近 unite.vim を使って今 history-incremental-search-backward 呼んだら思った。
800名無しさん@お腹いっぱい。:2011/11/18(金) 22:53:12.54
history-incremental-pattern-search-backward
で我慢してくれ。
801名無しさん@お腹いっぱい。:2011/11/20(日) 08:59:19.42
>>799
そこでvimshellですよ!
802名無しさん@お腹いっぱい。:2011/11/21(月) 14:05:04.51
vimshel使うのと、screenでターミナル分割して使うのと何がちがうの?
803名無しさん@お腹いっぱい。:2011/11/23(水) 10:57:13.05
screenだと、デタッチアタッチが出来るのがかなり大きいと思う
804名無しさん@お腹いっぱい。:2011/11/27(日) 20:14:54.56
bindkey "^p" history-beginning-search-backward-end
bindkey "^n" history-beginning-search-forward-end
bindkey "\\ep" history-beginning-search-backward-end
bindkey "\\en" history-beginning-search-forward-end

これって↓↑キーと同じですか?
なら自分はいらないんですが
805名無しさん@お腹いっぱい。:2011/11/27(日) 20:21:18.83
うちでは Ctrl-P/Nには up/down-line-or-history が割り当てられているな。
806名無しさん@お腹いっぱい。:2011/11/28(月) 17:40:25.43
case ${UID} in
37 0)
38 PROMPT="%{${fg[cyan]}%}$(echo ${HOST%%.*} | tr '[a-z]' '[A-Z]') %B%{${fg[red]}%}% /#%{${reset_color}%}%b "
39 PROMPT2="%B%{${fg[red]}%}%_#%{${reset_color}%}%b "
40 SPROMPT="%B%{${fg[red]}%}%r is correct? [n,y,a,e]:%{${reset_color}%}%b "
41 ;;
42 *)
43 PROMPT="%{${fg[red]}%}%/%%%{${reset_color}%} "
44 PROMPT2="%{${fg[red]}%}%_%%%{${reset_color}%} "
45 SPROMPT="%{${fg[red]}%}%r is correct? [n,y,a,e]:%{${reset_color}%} "
46 [ -n "${REMOTEHOST}${SSH_CONNECTION}" ] &&
47 PROMPT="%{${fg[cyan]}%}$(echo ${HOST%%.*} | tr '[a-z]' '[A-Z]') ${PROMPT}"
48 ;;
49 esac


これの tr の定義がわかりません?
どっかにありますか?
807名無しさん@お腹いっぱい。:2011/11/28(月) 17:42:34.33
808名無しさん@お腹いっぱい。:2011/11/28(月) 18:17:54.45
${HOST%%.*}

これっの%%.*って意味的には
%% %. %*

みたいなことでしょうか?
809名無しさん@お腹いっぱい。:2011/11/28(月) 20:37:32.06
>>808

HOST の後の部分で
.* というシェルのパターンに合致する部分をできるだけたくさん捨てる。

HOST=www.google.co.jp なら .google.co.jp を捨てた www になる。

% が一つなら最小限捨てる。(.jpを捨てたwww.google.co)
810名無しさん@お腹いっぱい。:2011/11/28(月) 22:42:29.40
>>805
>>809
どうも
811名無しさん@お腹いっぱい。:2011/12/08(木) 23:47:37.72
4.3.14
812アンネ:2011/12/09(金) 23:59:43.22
やぁ(笑)
813名無しさん@お腹いっぱい。:2011/12/11(日) 16:39:36.98
zshで↓のようなプロンプトにしたいんだけどどうすればいい?めんどくさいから丸投げする。
PS1="\[\033[1;32m\][\u@\h \w]\[\033[0m\]\n\[\033[1;37m\]>> \[\033[0m\]"

教えてください。
814名無しさん@お腹いっぱい。:2011/12/11(日) 19:19:24.11
autoload -U colors && colors
PS1="%{$fg_bold[green]%}[%n@%M %~]%{$reset_color%}
%{$fg_bold[white]%}>> %{$reset_color%}"
815名無しさん@お腹いっぱい。:2011/12/11(日) 21:25:31.79
>>814
ありがとうございます!
816名無しさん@お腹いっぱい。:2011/12/26(月) 23:20:55.64
fwd-searchして今の場所でOKのときにfwd-searchを抜けるのってどうやってますか?
Ctrl-F,Bで移動するとfwd-search解除されるのでそうやってますが、もっと良い方法ないかなと思って・・・
Enterしたらコマンド実行しちゃうし
817名無しさん@お腹いっぱい。:2011/12/27(火) 00:36:11.96
>>816
C-eってやってる。
818名無しさん@お腹いっぱい。:2011/12/27(火) 06:48:36.41
Type RET to exit, leaving point at location found.
819816:2011/12/28(水) 01:19:08.43
>>817
C-eって行末移動ですよね?行末じゃなくてその場に留まりたいんですが

>>818
RETすると実行しちゃうんですけど・・・設定の違い?
820名無しさん@お腹いっぱい。:2011/12/28(水) 08:10:40.33
すまんEmacsの話だと思ってた
821名無しさん@お腹いっぱい。:2011/12/28(水) 11:17:17.49
>>816
ESC ESC ESC でカーソルがその場に残るよ。
822816:2011/12/29(木) 11:16:03.68
>>821
ほんとですね。でも3連打はまんどいな・・・
823名無しさん@お腹いっぱい。:2011/12/29(木) 14:50:12.84
isearch 中の話なら accept-search を適当なキーに割り当てておくとか
bindkey -M isearch '^[g' accept-search
824名無しさん@お腹いっぱい。:2011/12/29(木) 15:29:20.63
>>821 ESC ESC で足りるけど… 最新だと違うんかな
search 専用の keymap がないからなあ… と思っていたら isearch なんて追加されてたのか
久しく進化を追ってない内に
825名無しさん@お腹いっぱい。:2011/12/29(木) 15:39:02.48
>>822
Alt で ESC が入れば A-C-[ で 1 key だよ。これは 3 key というのか?同時押し key 数多くて勧めないけど。
ちなみに ESC ESC は undefined-key だから副作用がないだけで、
他の unbound key でも同じだよ。俺の環境だと "^[@" とか。
826名無しさん@お腹いっぱい。:2011/12/29(木) 20:20:44.81
^[^|
@
827 忍法帖【Lv=40,xxxPT】 :2012/01/14(土) 10:44:12.89
sudo command
てすると、commandのaliasが展開されない
どすればsudoでもaliasコマンド使える?
828名無しさん@お腹いっぱい。:2012/01/14(土) 12:10:30.76
global aliasでどうか?
829名無しさん@お腹いっぱい。:2012/01/14(土) 16:53:03.33
alias sudo='sudo '
がよくある解
830 忍法帖【Lv=40,xxxPT】 :2012/01/14(土) 23:01:13.40
>>829
それ見つけたけどなんかうまくいかない
$@とか含むエイリアスはダメなのかな?
831名無しさん@お腹いっぱい。:2012/01/14(土) 23:23:23.21
>>827
そのエイリアスってroot権限なくても展開できるのかな。
832名無しさん@お腹いっぱい。:2012/01/23(月) 01:05:45.91
>>829
なにそのクールなトリック全然解らない、と思ったらそういう仕様があんのね。
見たのは↓の話で bash だけど。man zshall に該当記述が見付からない…
ttp://d.hatena.ne.jp/Yudoufu/20110326/1301129885
この人の言っている偶然の抑止力って何のことだ?

>>830
alias 内での $@ は多分期待動作と違うと思うよ。普通に使えない。
あーでもそれは alias sudo 関係ないから違う話なのかな?
もしかして alias ではなく function が混ざってるのかも。

↓ でも同じことができると思うけど、これもダメ?
function が原因なら同じ話だけど。

# 1回まで展開する
sudo () { command sudo ${aliases[$1]:-$1} $*[2,$] }

>>831
root 関係ないような…

なんか試してたら
alias echo='echo[TAB]' # ([TAB] は "^[^I" is self-insert-unmeta で入れた tab)
の後に echo a とか実行すると履歴に echo[TAB]a が残ることを発見してしまった。
どーでもいいけどなんだコレ。
そしてこれもどーでもいいが history では [TAB] も \t (2文字) も \t と表示されて区別できない。
833名無しさん@お腹いっぱい。:2012/01/23(月) 01:07:36.87
ちなみに展開1回までとかアホかという場合はこれで。

# 展開回数制限なし
sudo () {
  local cmdline arg
  local -A hist
  cmdline=($1)
  while (( ! ${+hist[$cmdline[1]]} && ${+aliases[$cmdline[1]]} ))
  do
    hist[$cmdline[1]]=
    cmdline=($aliases[$cmdline[1]])
    arg="$cmdline[2,$] $arg"
  done
  command sudo $cmdline[1] $arg $*[2,$]
}
834名無しさん@お腹いっぱい。:2012/01/24(火) 00:22:12.80
RC_EXTENDED_PARAM って代入のときは効かないんですかね?
% num=(1 2 3)
% echo A${^num}B
A1B A2B A3B
% str=A${^num}B
% echo $str
A1 2 3B

こうすれば目的を果せますが…
% str=$(echo A${^num}B)
% echo $str
A1B A2B A3B
835名無しさん@お腹いっぱい。:2012/01/24(火) 00:28:21.85
ちゃんと効くけど?
str=(A${num}B)
836名無しさん@お腹いっぱい。:2012/01/24(火) 00:29:28.68
おっと ^ を入れ忘れた。 ${^num}ね。
837名無しさん@お腹いっぱい。:2012/01/24(火) 01:08:51.91
>>835-836
なるほど、ちゃんと配列として代入せにゃならんのですね
838名無しさん@お腹いっぱい。:2012/01/31(火) 11:30:31.32
zshでcat file_not_exist >/dev/null 2>&1 | w3mとやると、
catのエラーメッセージがw3mに渡されることに気付きました。
shのリダイレクションの解釈だとパイプには何も渡されないはずですけど、zshはどうしてこういう動作にしてるんですか?
何か理由があるんでしょうか。
839名無しさん@お腹いっぱい。:2012/01/31(火) 14:32:40.13
>>838
unsetopt multios
840名無しさん@お腹いっぱい。:2012/02/01(水) 07:31:41.94
>>839
じゃなくて、どうしてmultios状態をデフォにしてるのか、何か理由があるのかを聞いてるんだが。
841名無しさん@お腹いっぱい。:2012/02/01(水) 08:02:56.24
>>840
command > file1 > file2
とやると両方のファイルに出力されるのがzshというかmultiosの特色だね
開発者の意図は知らんが、有効にすることでデメリットがあるわけでもないから有効になってるんじゃないかな
842名無しさん@お腹いっぱい。:2012/02/01(水) 08:03:33.59
そりゃ作者が便利だと思って取り入れた機能はデフォにするだろ
843名無しさん@お腹いっぱい。:2012/02/01(水) 08:07:08.37
であれば、
command > /dev/null | command
の場合は別にするべき。
大きなデメリットだな。
844名無しさん@お腹いっぱい。:2012/02/01(水) 08:11:02.94
teeを使いたくなかった奴が作ったのにそりゃないな
845名無しさん@お腹いっぱい。:2012/02/01(水) 08:14:01.25
>>842
作者が便利だと思っても互換性に問題がある機能はデフォではOFFにするのが鉄則。
846名無しさん@お腹いっぱい。:2012/02/01(水) 08:32:47.47
はて、非互換ってどのシェルに対して。shとかだとほとんどデフォで使える機能なくなる気が
847名無しさん@お腹いっぱい。:2012/02/01(水) 08:34:55.21
>>846
他のシェルに対する互換性じゃなくて、multios導入前のzsh自身に対する互換性ね。
848名無しさん@お腹いっぱい。:2012/02/01(水) 10:11:56.10
そんなこといったら zsh v0.0.1 とかから何も進歩できないじゃん
849名無しさん@お腹いっぱい。:2012/02/01(水) 10:25:05.49
>>845
作者にそう言えばいいじゃない。
850名無しさん@お腹いっぱい。:2012/02/01(水) 10:56:27.96
>>845
>作者が便利だと思っても互換性に問題がある機能はデフォではOFFにするのが鉄則。
こういう鉄則始めてみたんだが、どこで言われてる奴?
851名無しさん@お腹いっぱい。:2012/02/01(水) 11:12:17.72
まあ互換性に関しては原則としては理解できる主張だが
ことインタラクティブ関係の便利機能はどこかでデフォルト on にする
タイミングってものはあってもいいわけだ

いやなら古いの使ってろってのも間違ってないし
852名無しさん@お腹いっぱい。:2012/02/01(水) 11:14:19.56
互換性を重視するか互換性捨てて新機能を重視するかは
単にポリシーの問題、決めの話でしょ。
ぜんぜん鉄則ではないよ。
853名無しさん@お腹いっぱい。:2012/02/01(水) 12:08:24.98
>>840
ウダウダ書かずに最初からそう書けよ
854名無しさん@お腹いっぱい。:2012/02/01(水) 13:57:53.03
まぁすぐ書いたからいいじゃん。
855名無しさん@お腹いっぱい。:2012/02/01(水) 14:34:26.24
>>854
そうだね。連投に次ぐ連投で予想以上の嫌悪感を撒き散らしていたよね。
856名無しさん@お腹いっぱい。:2012/02/01(水) 14:42:13.97
>>838>>839>>840だから連投ってほどのこともしてないじゃん。
857名無しさん@お腹いっぱい。:2012/02/01(水) 14:46:18.61
>>838=>>840=>>843=>>845=>>847
IDじゃなくてもこれだけ書き込んだら目立つ
858名無しさん@お腹いっぱい。:2012/02/01(水) 14:47:04.58
>>853>>840への指摘でしょ?
それ以降の話は関係ないじゃん。
859名無しさん@お腹いっぱい。:2012/02/01(水) 15:20:42.30
>>858
そう、>>853の意図としては>>840に対してのみの指摘。

元々のウダウダ書いている>>838は multios を知らない人間の質問の仕方。
だからその回答は「zsh には multios って機能があるから」で十分で、
あとはググりでもすればいくらでも満足してもらえると思ったんだがな。
860名無しさん@お腹いっぱい。:2012/02/01(水) 16:08:39.89
838です。私の書き込みは838だけで、840以降のレスは別の方です。
zshが複数ファイルへのリダイレクションができるのは知ってましたが、
その機能がcommand >/dev/null 2>&1 | commandの動作に影響することまで頭が回りませんでした。
あとは自分でzshmisc読んで勉強しようと思います。
回答して下さった方、どうもありがとうございました。
861名無しさん@お腹いっぱい。:2012/02/01(水) 16:10:04.40
2chとは思えないまともすぎる書き込み…
862名無しさん@お腹いっぱい。:2012/02/01(水) 16:16:08.78
なりすまし多いよなぁ。
質問する際はトリップ推奨ってことにした方がいいね・・・。
863855=857:2012/02/01(水) 17:32:02.57
>>860
了解しました。
864zsh初心者 ◆./pq9ARSgM :2012/02/03(金) 01:55:09.12
初めてトリップつけるけど、これでいいの(´・ω・`)?
865zsh初心者 ◆./pq9ARSgM :2012/02/03(金) 01:55:36.82
できたっぽ(´・ω・`)ノみんなよろしくな
866名無しさん@お腹いっぱい。:2012/02/03(金) 02:15:05.15
なんの必要があって…?
867名無しさん@お腹いっぱい。:2012/02/04(土) 14:52:47.90
>>844
ファイルと標準出力の両方にリダイレクトしたい場合もmultiosで出来るんですか?
これはteeじゃないと駄目かと思ってました
868名無しさん@お腹いっぱい。:2012/02/04(土) 16:55:57.40
・マシン毎にzsh_historyを使い分けたい
・異なるマシンのzsh_historyを参照したい

この両方を同時に実現する方法はないかな。
今は複数マシンのzsh_historyをsamba等で共用してるけど、
マシン単位で区別ができないのがツライ。
869名無しさん@お腹いっぱい。:2012/02/04(土) 17:07:58.08
HISTFILEにホスト名を含むようにすればいいんじゃないの?
870名無しさん@お腹いっぱい。:2012/02/04(土) 17:10:24.09
いや、エディタでファイルを読めればいいという意味なのじゃなくて、
履歴検索時全ホスト分から探して欲しいという意味なのか。
871名無しさん@お腹いっぱい。:2012/02/04(土) 17:16:18.66
zshmiscのzshaddhistory関数の使用例に、通常の履歴に加えて
カレントディレクトリにも履歴を書き出す例があった。
872名無しさん@お腹いっぱい。:2012/02/04(土) 19:59:07.40
OpenSUSEなんだけどPATHを.zshenvに書くと
/etc/zprofileで参照される/etc/profileで上書きされる.

SUSEで使っている人はPATHをどこに書いてますか?
873名無しさん@お腹いっぱい。:2012/02/04(土) 21:25:43.31
つーか/etcのファイルを読まないようにする方法ってあったっけ?
大抵のzshユーザは/etcのファイルよりも細かく設定してるし、邪魔なだけだよね
874872:2012/02/04(土) 21:40:29.86
>>873
PATHも追加ならいいんだけど最初から設定するみたいで消されちゃう
スクリプトを使うから必要なんだけど,.zshrcに二重で書くのも変だし…
875名無しさん@お腹いっぱい。:2012/02/05(日) 01:26:19.14
最初に /etc/zshenv を読み込むのは不可避。
ユーザーが介入できるのはその次の ~/.zshenv か。
setopt no_global_rcs だっけ?

876名無しさん@お腹いっぱい。:2012/02/05(日) 07:18:57.19
>>867
そりゃできますよ。843が文句言ってるけどw
877名無しさん@お腹いっぱい。:2012/02/05(日) 11:14:06.71
>>876
複数ファイルへのリダイレクト時にはmultiosで動作して、
ファイルとパイプの組合せの場合はmultiosにならないような設定とかオプションとかないの?
878名無しさん@お腹いっぱい。:2012/02/05(日) 13:05:09.41
>>875
サンクス。読み込み順は↓
ttp://cocelo.s201.xrea.com/wiki/index.php?Shell%2Fzsh

というわけで>>874は setopt no_global_rcs を .zshenv に書くのがよろし
879872:2012/02/05(日) 15:12:20.38
>>875
>>878
うまくいきました
ありがとうございます
880名無しさん@お腹いっぱい。:2012/02/05(日) 17:59:39.17
>>876
もしかして、こんなふうに標準出力のデバイスファイルを指定するんですか?
echo hoge >file >/dev/stdout
しかし標準出力には何も出ない・・・
881名無しさん@お腹いっぱい。:2012/02/05(日) 18:32:09.66
>>880 を試そうとして、

echo hoge >file1 >file2 >/dev/stdout
のようにファイル2つと/dev/stdoutを指定したら、
zshがCPU使用率100%になって固まった。

echo hoge >file1 > /dev/stdout ←だと固まらない。
echo hoge >file1 >file2 >/dev/stdout ←で固まる。

再現率100%。バグか?w
882880:2012/02/05(日) 19:38:57.92
stdoutじゃなくてstderrだと出る・・・
echoって標準エラー出力に出す仕様だっけ??

>>881
自分もそうなりました。zshは4.3.10です。
883名無しさん@お腹いっぱい。:2012/02/05(日) 20:05:06.90
25016 read(15, "hoge\n", 4092) = 5
25016 write(13, "hoge\n", 5) = 5
25016 write(14, "hoge\n", 5) = 5
25016 write(16, "hoge\n", 5) = 5
25016 read(15, "hoge\n", 4092) = 5
25016 write(13, "hoge\n", 5) = 5
25016 write(14, "hoge\n", 5) = 5
25016 write(16, "hoge\n", 5) = 5

止めかたがわからずPCが焼け石になるところでした
884名無しさん@お腹いっぱい。:2012/02/05(日) 20:37:13.09
うーん、こんな危険なmultios状態をデフォにするべきじゃないねw
885名無しさん@お腹いっぱい。:2012/02/05(日) 21:42:57.78
ん?

echo hoge >file1 >file2 >/dev/stdin

じゃないのか
886名無しさん@お腹いっぱい。:2012/02/05(日) 21:46:28.52
>>885
stdinじゃないよ。

echo hoge >file1 >file2 >/dev/stdout
なのに、ストリームがループして無限にhoge hoge .... データが吐かれる。
887名無しさん@お腹いっぱい。:2012/02/05(日) 23:38:13.30
そうじゃない。885は正しく動作するコマンドライン
誤記の指摘ではなくて、やりたいことはstdinじゃないのか?と
888zsh初心者 ◆./pq9ARSgM :2012/02/05(日) 23:46:02.29
じつはぼくはまだzsh使ってなくて、bashなんだけど(´・ω・`)
みんなはなんでzshを使い始めたの?
bashから乗り換えたくなるような機能って何があるの?
889名無しさん@お腹いっぱい。:2012/02/06(月) 00:06:28.69
ないよ
890名無しさん@お腹いっぱい。:2012/02/06(月) 00:13:22.46
>>889
だな。
今のbashはzshの持っている機能を100%持ってる。
bashにしかない機能も山ほどある。
891名無しさん@お腹いっぱい。:2012/02/06(月) 00:16:57.70
>>887
ほんとだ・・・なんでstdinなんですかね?逆のイメージ持ってた
スレチですが教えてください
892zsh初心者 ◆./pq9ARSgM :2012/02/06(月) 00:27:31.43
>>889-890
そ、そうなんだ(´・ω・`)
893名無しさん@お腹いっぱい。:2012/02/06(月) 00:29:26.85
>>892
そうだよお。
bashがなんでLinuxでスタンダードシェルになってるかこれでわかるよね?
おじさんを信じてzshなんて使うのやめようねぇ。
894zsh初心者 ◆./pq9ARSgM :2012/02/06(月) 00:36:22.89
>>893
LinuxじゃなくてMacを使ってるんだけど(´・ω・`)
じゃあ、おじさんはどうしてzshを使っているの?
895名無しさん@お腹いっぱい。:2012/02/06(月) 01:15:11.82
>>890
じゃ具体例挙げてくれ
最近のbashはインクリメンタルサーチなど対応してるというのは聞いたけど
896名無しさん@お腹いっぱい。:2012/02/06(月) 06:46:06.66
>>881 >>886 が指摘してる件は重大なバグだろ?
echo hoge >file1 >file2 >/dev/stdout
って実行しただけで固まって無限サイズファイルができるって、
危なくて使えない。
897名無しさん@お腹いっぱい。:2012/02/06(月) 09:56:43.30
> 今のbashはzshの持っている機能を100%持ってる。
> 今のbashはzshの持っている機能を100%持ってる。
> 今のbashはzshの持っている機能を100%持ってる。
> 今のbashはzshの持っている機能を100%持ってる。

898名無しさん@お腹いっぱい。:2012/02/06(月) 12:00:37.83
>>897
言いたいことがあるなら具体的に。
899 忍法帖【Lv=2,xxxP】 :2012/02/06(月) 20:48:23.62
出来るかもしれんけど、より簡単に設定出来るのはzshなんじゃね?
900名無しさん@お腹いっぱい。:2012/02/06(月) 20:57:22.55
bashでzleとかいじれる?
901名無しさん@お腹いっぱい。:2012/02/06(月) 21:11:50.27
>>898 100% 知っているとは思えないってことじゃないかな。
902名無しさん@お腹いっぱい。:2012/02/06(月) 21:29:09.15
>>901
だったらそれを自分で言うべき。
903名無しさん@お腹いっぱい。:2012/02/06(月) 21:54:16.33
矛先が非建設的な方向に向いております
904名無しさん@お腹いっぱい。:2012/02/06(月) 23:27:59.71
bash にしかない機能って何?いいのある?
よさそうなら使いたい。
905名無しさん@お腹いっぱい。:2012/02/06(月) 23:33:50.86
bashがzshの機能を入れるのはzshユーザにとっても喜ばしいことじゃない?
906名無しさん@お腹いっぱい。:2012/02/07(火) 00:22:28.90
>>890
bash にも既にあるってフレーズはよくきくからそうなんだろうなー、って思ったけど
ちなみに bash で multios ってどうやんの?
やり方がわからなかった。
907zsh初心者 ◆./pq9ARSgM :2012/02/07(火) 00:24:29.43
けんかはやめて(´・ω・`)
908名無しさん@お腹いっぱい。:2012/02/07(火) 01:30:33.03
>>889-890はどうみてもクソコテのクソ質問を適当にあしらってるだけだろ
909名無しさん@お腹いっぱい。:2012/02/07(火) 02:12:44.28
だとして >>893 は要らんけどな。
910名無しさん@お腹いっぱい。:2012/02/07(火) 02:39:27.57
>>885
それなら
echo hoge >file1 >file2 >/dev/tty
じゃないか?これだと抽象度に欠けるが。
echo hoge >file1 >file2 |cat
が解りやすいけど cat とか書きたくなければ
echo hoge 3>&1 >file1 >file2 1>&3
かな。試してみたら
echo hoge 1>&1 >file1 >file2
もできるね。しかし
echo hoge 3>&1 1>&1 1>&3 1>&1
で hoge が 4つでるのに対して
echo hoge 1>&1 1>&1
で hoge が 2つじゃなく1つでるのは何故なんだろう。

>>896
zsh にはバグが多い印象があるけどそれは仕様だろう。
自分が何をしようとしてるか理解してるか確認するなんて
気の利いたことは zsh はしないからな。
それがバグだってんならそうかもしれないが、まあ余計だろう。
あーでも rm * はするんだっけ?
911名無しさん@お腹いっぱい。:2012/02/28(火) 22:50:26.88
2012-02-23 : Release 4.3.17
Complete fixes from last release.
912名無しさん@お腹いっぱい。:2012/03/02(金) 23:20:33.32
2行目ってどう訳すん?
913名無しさん@お腹いっぱい。:2012/03/03(土) 08:40:54.41
2行目は動詞がない名詞区。fixesは3単現の s じゃなくて、fixの複数形。
あとはわかるな。
914名無しさん@お腹いっぱい。:2012/03/03(土) 09:27:07.25
主語のIかWeが省略されてるんじゃないかな
completeは動詞でfixesが名詞
訳すと「この前のリリースからの(バグ等の)修正を完了したよ」
915名無しさん@お腹いっぱい。:2012/03/03(土) 09:30:11.26
主語がないと訳せない人がいるのか
ニュアンスでわかんないものかねぇ
916名無しさん@お腹いっぱい。:2012/03/03(土) 09:48:41.16
いや、completeは形容詞として訳して欲しい。全体で箇条書風の名詞句。
917名無しさん@お腹いっぱい。:2012/03/03(土) 09:50:42.66
>>914
completeを動詞と考えると、現在形なのはおかしいね。
なので >>916 説に1票。
918名無しさん@お腹いっぱい。:2012/03/03(土) 10:05:43.36
>>917
ああ言われてみれば確かにおかしい。というわけでリリースノート見てきた

http://zsh.sourceforge.net/releases.html
> Changes between versions 4.3.16 and 4.3.17
> Complete fixes from last release.

「4.3.16と4.3.17の間の変更点は何か」なので
自分もComplete fixesでひとつの名詞句と考える>>914説に改説します
「この前のリリースからの(バグ等の)完全な修正」
919名無しさん@お腹いっぱい。:2012/03/03(土) 10:50:18.07
4.3.16で直し方が半端だったバグがあって、それを完全に修正したってこと?
920名無しさん@お腹いっぱい。:2012/03/03(土) 13:41:34.71
はい
921名無しさん@お腹いっぱい。:2012/03/03(土) 16:35:59.06
zshの設定って面倒くさいな
zshの本読んでたら頭痛くなってきた・・・

うまく構成して見やすいドキュメント整えた配布版ってないの
922名無しさん@お腹いっぱい。:2012/03/03(土) 16:44:15.83
デフォルトでも十分に便利だと思うが。。。
923名無しさん@お腹いっぱい。:2012/03/03(土) 17:14:39.37
oh-my-zshでも使ったら。
924名無しさん@お腹いっぱい。:2012/03/03(土) 20:49:21.06
更に面倒だよ...
925名無しさん@お腹いっぱい。:2012/03/04(日) 01:23:46.40
大丈夫か。辛いなら fish とか使ったら。今どうなってんのか知らんけど。

>>915
いやー主語はどうでもいいんだけどニュアンスでしか読めなかったから
あんまり考えずに聞いてみた。
ニュアンスで読んだら見当違いの内容も浮かんだんでね。

>>919
どっちかというと 4.3.16 に対して完全にバグ修正しかしてないよってことじゃないかな。
926名無しさん@お腹いっぱい。:2012/03/09(金) 03:35:07.50
fish初めて知ったわw
悪くなさそうだが最終更新が2009年・・・
927名無しさん@お腹いっぱい。:2012/03/09(金) 14:06:16.31
fishと名のつくシェルは fish.x しか知らんかった。
928名無しさん@お腹いっぱい。:2012/03/17(土) 19:56:00.78
sudo -s でrootユーザになると、TAB押して補完するときに↓のようになるけど何でじゃろ?
補完自体はできてるんだけど

_path_files:17: command not found: _have_glob_qual
_path_files:201: command not found: _have_glob_qual
_path_files:202: command not found: _have_glob_qual
_path_files:695: command not found: _list_files
929名無しさん@お腹いっぱい。:2012/03/17(土) 21:17:22.57
どうじゃろ?
930名無しさん@お腹いっぱい。:2012/03/17(土) 22:20:52.25
root の設定が悪いとか
931928:2012/03/18(日) 00:45:06.34
「sudo -u 自分 -s」 で自分のアカウントになっても同じっす。
CentOS5.7でそうなる一方、CentOS6.2では出ない。
でも、どちらもzsh4.3.17をソースからビルドしてるし、.zsh*自体も同じなんだよなぁ。
932名無しさん@お腹いっぱい。:2012/03/18(日) 01:35:14.43
ググって最初に出てきたものくらいは当然試してるだろうけど、
「試したけど駄目だった」くらいは書け

> Remove ~/.zcompdump and restart zsh.
933928:2012/03/18(日) 02:16:08.50
>>932
実は.zcompdump消すのは試してたんだけど、問題がでたりでなかったりで
よく分からずじまいだった。・・・で、今一度調べてやっと分かりました。

.zprofileにて
if [[ $SHELL == /bin/zsh ]] ;then
SHELL=$HOME/bin/zsh
exec $SHELL
fi
とすることでログインシェルの/bin/zshを最新のzshに切り替えてたんだけど、
インタラクティブシェルは.zprofileを読み込まないのを忘れてました。
新しいzshが作った.zcompdumpを古いzshで読んだのでこうなったと。
実にくだらないミスで・・・orz。皆さんお騒がせしました。
934名無しさん@お腹いっぱい。:2012/03/21(水) 23:26:33.31
以下のようなディレクトリ構成のところで、hoge下にdir1/dir2へのシンボリックリンクがあるとします。

$tree hoge
hoge
|-- dir1
| |-- dir2
| |-- dir3
| `-- dir4
`-- dir2 -> dir1/dir2/

dir2にcdし、「cd ../」まで打ってからTAB押すと、dir2〜dir4が候補表示され、
実際に「cd ..」するとhoge下にcdします。
ここで、補完をdir2〜dir4じゃなくて、hoge下のdir1〜dir2となるような方法はないですか?
ちなみにbashだとその仕様みたいです。
935名無しさん@お腹いっぱい。:2012/03/21(水) 23:38:28.15
setopt chaselinks ?


936934:2012/03/23(金) 00:19:46.27
>>935
それだと「cd dir2」でdir1/dir2に移動するだけなんで、やりたいことと違います。
937名無しさん@お腹いっぱい。:2012/03/24(土) 04:19:32.53
こんな方向でどか

_directorys_symlink () { local pre="${PREFIX%/*}/"; local -a tmp; tmp=($(cd "$pre" && echo *)); compadd -f -p "$pre" -W "$(cd "$pre" && pwd -P)/" "$@" -a tmp }
_cd_symlink () { local expl; _wanted directorys-symlink expl 'directory when retain symbolic links' _directorys_symlink }
_cd_wrapped () { local pre="./${PREFIX%/*}" ret=1; [[ "$(cd "$pre" 2>/dev/null && pwd -P)" != "$(cd -P "$pre" 2>/dev/null && pwd)" ]] && _cd_symlink && ret=0; _cd && ret=0; return ret }
compdef _cd_wrapped cd

色々足らんけど
938934:2012/03/24(土) 18:36:46.18
>>937
非常に申し訳ないですけど、さすがにそれは使う気がしないですw
でも、ありがとうございます。
939名無しさん@お腹いっぱい。:2012/03/24(土) 22:21:42.30
それは残念。でもないか。
よく知らないけど、多分 cd の補完処理を直さないと無理じゃないかな。
ワーキングディレクトリのシンボリックリンクを残して path を辿るのは
cd の特殊な仕様みたいだけど、
cd の補完がそれを考慮せず通常の path 補完をしているようだ。
なんで _cd を直すか cd の compdef を対応版に変える必要がある
…ように見える。
940名無しさん@お腹いっぱい。:2012/03/24(土) 22:27:23.24
関係ないけど compadd の -P と -p の違いがよくわからない。
なんか前調べた気もするけどなんだったかな…
941名無しさん@お腹いっぱい。:2012/03/27(火) 22:42:55.78
今日rsyncを使ってて妙なことに遭遇したのですが、zshスクリプトにおいて
ディレクトリのコピーを以下のようにしていたところ、たまにrsyncのコピーが
正しくなされないことが分かりました。

while :;do
rsync -av dir.org/ dir
〜dir内のファイルを書き換える処理〜
done

rsyncの直前で dir.org と dir の中身を見ると確かに更新されているのですが、
rsyncはそれらのコピーをスルーしていました。今のところ以下が分かっています。

@上記現象は再現性が一定でない(正常コピーできるときもある)
Arsyncの直前でsleep 1を入れると何故か正常にコピー
Bbashだと無問題

zshの問題とも限らない気がしますが、このスレの方々は経験豊富だと思うのでお尋ねします。
何かアドバイスあればお願いします。
942名無しさん@お腹いっぱい。:2012/03/30(金) 11:06:21.55
           , -'"´  ̄`丶、_
           ,.∩         `ヽ
         〃∪'´ ̄`二二人\  ヽ
         | ツ´ ̄ ̄ ̄ ̄´ ヾ ヽ. ',
         |ハ ,ニ、   ,. - 、 | | | l |
         | ハ ィハ     ,二ヽ. | | | | | 同じ板にコピペするとそのままだけど、
         | | | じ'   |トJ〉  /)} l | 違う板にコピペすると鬼のような怖い顔
         | ハ  、'_,   ̄,, 厶イ川| に変わる摩訶不思議な佳子様コピペ。
         l l /\    .. イV\川 |
         ,' l l ,イ `l ̄´ /   /ヽl l
         l | l ハ  `メ、    〃  ヽヽ、__ノ
943名無しさん@お腹いっぱい。:2012/03/31(土) 00:58:41.59
dir内の〜 がなにかによるんじゃないの。
つーか dir が dest なんだよね。それだとコピーしない気がするけど、するんだね。
rsync はよーしらんから勘違いしてるかな。
944941:2012/03/31(土) 21:41:34.17
すいません、自己解決しました。以下、zshとは関係ない話で恐縮ですがいちおう報告します。

rsyncはタイムスタンプを見てコピーするか否か判断しますが、>>941のファイル書き換え処理が
一瞬で終わるためにタイムスタンプが変化しないのが原因でした。
実際、ls -l --full-timeで見ると↓のように秒以降が全部0になっています。

-rw-r--r-- 1 hoge users 326 2012-03-31 21:24:24.000000000 +0900 file

ちなにみ環境はCentOS6.2です。おそらく、秒以降のタイムスタンプも記録するシステムならば
今回の問題は起こらないはずだと思います。あと、>>941で言った@とAも勘違いでした。
この現象がランダムに出たために、誤って解釈してしまいました。失礼いたしました。
945名無しさん@お腹いっぱい。:2012/04/27(金) 23:45:48.02
ls とかのソートって unsetopt numeric_glob_sort の場合は以下の順ですよね?

特殊文字( _ を除く)
数字
大文字
_
小文字

実は、あるホストへ自宅からログインすると上記の通りなのが、
職場からログインすると「 _ 」の存在が無視されたようにソートされます。
たとえば、A _b C というファイルがA C _b の順でソートされます。

こんなことってあるんですかね?全く同じホストにログインしてるのだから、
もう残る違いはログイン元の端末環境ぐらいしか・・・
946名無しさん@お腹いっぱい。:2012/04/27(金) 23:58:15.17
>>945
> 大文字
> _
> 小文字

> たとえば、A _b C というファイルがA C _b の順でソートされます。

大文字 大文字 _ の順になってる ってのは正常な動作じゃないのか?
947名無しさん@お腹いっぱい。:2012/04/28(土) 00:11:03.30
>>946
すいません、間違えました。以下の意味に訂正します。

「辞書順で A C _B となるのが、A _B C となってしまう」
948名無しさん@お腹いっぱい。:2012/04/28(土) 00:34:14.98
LC_COLLATEの値は?
949名無しさん@お腹いっぱい。:2012/04/28(土) 14:06:53.07
>>948
自宅からの接続ですが、空でした。
こうなったら、自宅からと職場からとで環境変数が同じかどうか調べるしかないですね。

ところで「 _ 」って特殊文字には入らないんですかね?
950名無しさん@お腹いっぱい。:2012/04/28(土) 17:38:50.08
LC_COLLATEをみるなら
それより優先されるLC_ALLと
最後の砦のLANGも見ないと…
951名無しさん@お腹いっぱい。:2012/04/28(土) 21:22:15.90
>>949
ていうか ascii 順でしょ。
952名無しさん@お腹いっぱい。:2012/04/28(土) 21:32:43.75
$ LC_COLLATE=en_US.UTF-8 ls
a _a b _b

$ LC_COLLATE=C ls
_a _b a b
953名無しさん@お腹いっぱい。:2012/04/28(土) 21:59:07.34
てか、「lsとかのソート」の時点でzshもsetoptも関係なくね?
954名無しさん@お腹いっぱい。:2012/04/28(土) 22:08:06.56
そうは思ったがきっとglobの展開のことだと汲み取ってあげたい。
955名無しさん@お腹いっぱい。:2012/04/28(土) 22:10:50.41
lsは表示するファイルを自力でソートしているのでlsの問題。
(directory entryの出現順のままソートせずに表示するオプションがある)
glob展開の結果の順序はシェルの問題。
956名無しさん@お腹いっぱい。:2012/04/28(土) 22:15:19.85
$ LC_COLLATE=en_US.UTF-8 zsh -c 'echo *'
a _a b _b
$ LC_COLLATE=C zsh -c 'echo *'
_a _b a b
957名無しさん@お腹いっぱい。:2012/04/30(月) 00:17:44.41
最近はzshあんま更新されてないし、bashのがいいってまじ?
958名無しさん@お腹いっぱい。:2012/04/30(月) 07:45:44.90
そろそろ5を出そうかというタイミングで何言ってるんだ?
959名無しさん@お腹いっぱい。:2012/05/04(金) 23:55:38.50
>>952
>>956
両方 _a _b a b になるじゃねーか。試しちまった。
960名無しさん@お腹いっぱい。:2012/05/05(土) 11:39:09.60
>>959
え? お前の環境変だろ。LC_ALL設定してしまってるとか。
961名無しさん@お腹いっぱい。:2012/05/05(土) 12:00:08.94
en_US ロカールが定義されているか、未定義かで変わる?
962名無しさん@お腹いっぱい。:2012/05/05(土) 12:10:33.40
各地域ロケールの内容ってどこかで決まってたりするの? 環境依存だと思ってた。
963名無しさん@お腹いっぱい。:2012/05/05(土) 12:12:56.73
>>959 ではないけどやってみた。OSX Lion。

普段の環境は LC_ALL 未定義、LC_MESSAGES=C、LC_TIME=C、他のLC_xxxは未定義、LANG=ja_JP.UTF-8

$ LC_COLLATE=en_US.UTF-8 zsh -c 'echo ZSH_VERSION=$ZSH_VERSION LC_ALL=$LC_ALL LC_COLLATE=$LC_COLLATE; echo *'
ZSH_VERSION=4.3.11 LC_ALL= LC_COLLATE=en_US.UTF-8
_a _b a b

$ LC_COLLATE=C zsh -c 'echo ZSH_VERSION=$ZSH_VERSION LC_ALL=$LC_ALL LC_COLLATE=$LC_COLLATE; echo *'
ZSH_VERSION=4.3.11 LC_ALL= LC_COLLATE=C
_a _b a b

964名無しさん@お腹いっぱい。:2012/05/05(土) 12:21:42.24
多分、en_US localeをインストールしてない環境ってオチ。それならLC_COLLATE=C と同じになって当然。
965963:2012/05/05(土) 13:42:40.15
うちのzshはここ見てないのかねぇ。

$ ls -l /usr/share/locale/en_US.UTF-8/LC_COLLATE
lrwxr-xr-x 1 root wheel 28 2011-08-02 23:22 /usr/share//locale/en_US.UTF-8/LC_COLLATE -> ../la_LN.US-ASCII/LC_COLLATE
$ ls -l /usr/share/locale/la_LN.US-ASCII/LC_COLLATE
-r--r--r-- 1 root wheel 2086 2011-08-02 23:22 /usr/share/locale/la_LN.US-ASCII/LC_COLLATE
LNってどこだよw
966963:2012/05/05(土) 13:52:07.08
$ strings =zsh | grep strcoll

少なくとも strcoll は呼んでないわー。 libiconvとかはリンクしてるけど。


967名無しさん@お腹いっぱい。:2012/05/05(土) 22:53:05.58
>>960
片方 a _a b _b になるじゃねーか。LC_ALL設定失念しちまった。
なにこれ _a を 1文字として扱ってるの?

>>966
% echo $ZSH_VERSION
4.3.17
% strings =zsh | grep strcoll
strcoll
968名無しさん@お腹いっぱい。:2012/05/06(日) 04:10:16.92
>>967

configure 次第か。
969名無しさん@お腹いっぱい。:2012/05/13(日) 00:17:40.31
以下のように拡張子の前の数字を取り除きたいのですが、zmvでどのように実行をすれば良いでしょうか?
  hoge1.mp3 → hoge.mp3 #数字を取り除く
  hoge1hoge.mp3 → hoge1hoge.mp3 #そのまま
試行錯誤したのですが、うまく行きません。

以下のように実行すると、"hoge1.mp3"と"hoge1hoge.mp3"を"hoge.mp3"に変換しようとして失敗します。
zmv -n '([a-z]*)[0-9]*.mp3' '$1.mp3'

以下のように実行すると".mp3"に変換しようとして失敗します。
zmv -n '^([a-z]*)[0-9]*.mp3$' '$1.mp3'
970名無しさん@お腹いっぱい。:2012/05/13(日) 00:22:52.56
>>>969
basename使うわけにはいかないの?
971名無しさん@お腹いっぱい。:2012/05/13(日) 02:07:28.60
いつも for で zmv 使ってないから知らんけど '(*)<->.mp3' じゃないか?
多分それ re じゃないよ。
972名無しさん@お腹いっぱい。:2012/05/13(日) 10:25:40.61
それだと

(hoge12)3.mp3

になるぜ
973名無しさん@お腹いっぱい。:2012/05/13(日) 12:02:16.55
自分も普段は for 文を使っちゃうけど
zmv '(*)[0-9]##.mp3' '$1.mp3'
とかでいいのかな。まあ便利なのかもw
974名無しさん@お腹いっぱい。:2012/05/13(日) 12:06:46.39
ああ>>972と同じになってしまうのか
zmv '(*).mp3' '${1%%[0-9]##}.mp3'
かな?
975名無しさん@お腹いっぱい。:2012/05/13(日) 15:41:51.71
おお、たしかに。こうする必要があるか。 '(*[^[:digit:]])<->.mp3'
976名無しさん@お腹いっぱい。:2012/05/13(日) 16:34:24.13
そうか shortest match flag とかはないんだな。

うーん *(#c,)<-> で落ちる。こんなパターン使わないけど。
977969:2012/05/13(日) 17:35:45.22
ありがとうございます。

>zmv '(*).mp3' '${1%%[0-9]##}.mp3'
でうまく行きました。
これは$1のうちの%%と##で挟まれた正規表現を取り除くという書式なのでしょうか?

>おお、たしかに。こうする必要があるか。 '(*[^[:digit:]])<->.mp3'
<-->はどういう処理ですか? こちらは使いかたがよく分かりませんでした。

すみません。zmvのパラメータについて解説しているサイトはありませんか? zmvの書式が難しくて。
978名無しさん@お腹いっぱい。:2012/05/13(日) 18:03:15.98
man zshcontrib
979名無しさん@お腹いっぱい。:2012/05/13(日) 19:04:25.29
>>978
ありがとうございます。
man zmvで見つからない、とか思っていたので。
980名無しさん@お腹いっぱい。:2012/05/13(日) 21:42:08.02
>>977
man zshexpn すれば詳しいことが載っているが ${name%%pattern} と x## の組み合わせだよ
前者はシェルスクリプト一般でよく使われる
<-> は <[x]-[y]> の特殊例で数字にマッチする
981名無しさん@お腹いっぱい。:2012/05/15(火) 01:08:56.08
>>980
ありがとうございます。
ようやく理解できました。
982名無しさん@お腹いっぱい。:2012/05/15(火) 19:43:39.12
man zshall しかうたないな
983名無しさん@お腹いっぱい。:2012/05/16(水) 01:24:52.01
>>982
俺もman zshall派
でもそうすると目当てのものみつけにくいんだよなw
984名無しさん@お腹いっぱい。:2012/05/16(水) 01:34:37.45
使うのは zshall でも人に示すときは絞る
昔から言われてるけど zsh 関係のドキュメントは読み物としては面白くないな
985名無しさん@お腹いっぱい。:2012/05/16(水) 23:36:44.49
言われてた気もするけど今思うに特別そうでもない
986名無しさん@お腹いっぱい。
うん。