zsh入門 パート2 ..
[2ch|▼Menu]
2:名無しさん@お腹いっぱい。
02/11/03 20:52
公式サイト URLリンク(www.zsh.org)
前スレ スレリンク(unix板)
URLリンク(zsh.sourceforge.net)
URLリンク(zsh.sunsite.dk)
URLリンク(www.zshwiki.org)
URLリンク(dengaku.org)
URLリンク(www.sol.cs.ritsumei.ac.jp)
URLリンク(tehanu.hpcl.titech.ac.jp)
URLリンク(www.swlab.csce.kyushu-u.ac.jp)
URLリンク(aquahill.net)
URLリンク(www.ayu.ics.keio.ac.jp)
URLリンク(www.ono.org)

3:名無しさん@お腹いっぱい。
02/11/03 20:52
>>1

関連リンク。前スレより。
URLリンク(zsh.sourceforge.net)
URLリンク(zsh.sunsite.dk)
URLリンク(www.zshwiki.org)
URLリンク(dengaku.org)
URLリンク(www.sol.cs.ritsumei.ac.jp)
URLリンク(tehanu.hpcl.titech.ac.jp)
URLリンク(www.swlab.csce.kyushu-u.ac.jp)
URLリンク(aquahill.net)
URLリンク(www.ayu.ics.keio.ac.jp)
URLリンク(www.ono.org)
URLリンク(www.nicola.jp)
URLリンク(www.pichilemon.net)
URLリンク(www.melonet.jp)
URLリンク(www.hakusensha.co.jp)


4:名無しさん@お腹いっぱい。
02/11/03 20:52
2?

5:名無しさん@お腹いっぱい。
02/11/03 20:52
公式サイト URLリンク(www.zsh.org)
前スレ スレリンク(unix板)

URLリンク(tehanu.hpcl.titech.ac.jp)
URLリンク(www.gentei.org)
URLリンク(cl.aist-nara.ac.jp)
URLリンク(dengaku.org)

URLリンク(zsh.sourceforge.net)
URLリンク(zsh.sunsite.dk)
URLリンク(www.zshwiki.org)
URLリンク(dengaku.org)
URLリンク(www.sol.cs.ritsumei.ac.jp)
URLリンク(tehanu.hpcl.titech.ac.jp)
URLリンク(www.swlab.csce.kyushu-u.ac.jp)
URLリンク(aquahill.net)
URLリンク(www.ayu.ics.keio.ac.jp)
URLリンク(www.ono.org)


6:名無しさん@お腹いっぱい。
02/11/03 20:56
おまいらおもしろいです。

7:名無しさん@お腹いっぱい。
02/11/03 21:01
グダグダやな。まあいいけど。

8:名無しさん@お腹いっぱい。
02/11/03 21:03
>>2 から >>5 同じ時刻…

9:名無しさん@お腹いっぱい。
02/11/03 21:07
やっぱ998任せは無茶だろ。

10:名無しさん@お腹いっぱい。
02/11/03 21:17
>>9
先に立てといて 998 になってから返事すりゃよかったのに・・・

11:名無しさん@お腹いっぱい。
02/11/03 21:24
さすがに>>1 に何も張ってないのはいかがなものかと。

12:前スレ951
02/11/03 21:27
zsh の情報を集める wiki を立てました。ぜひ自由に使ってください。
その他情報もまとめていこうと思います。
URLリンク(zshintro.s22.xrea.com)


13:名無しさん@お腹いっぱい。
02/11/03 21:30
>>12
otu-
URLリンク(zshintro.s22.xrea.com)
logo がうまく表示されていないみたいだけど?

14:前スレ951
02/11/03 21:36
すいません、直しました。

15:名無しさん@お腹いっぱい。
02/11/03 22:04
>>11
携帯から見るときはありがたい

16:名無しさん@お腹いっぱい。
02/11/03 22:06
大人の玩具激安販売!!
ピンクローター190円!!
その他商品どこよりも安いですよ!
URLリンク(www.king-one.com)


17:名無しさん@お腹いっぱい。
02/11/03 23:42
前のスレッドにeshellのこと書いてた人がいたけど、
emacs でzsh使いたいなら、 explicit-shell-file-name に
zshのパスを文字列で設定すればよろし。

18:名無しさん@お腹いっぱい。
02/11/04 00:02
スレタイに「入門」っていらないような。

19:名無しさん@お腹いっぱい。
02/11/04 00:35
後知恵

20:名無しさん@お腹いっぱい。
02/11/04 00:59
*/はディレクトリに展開されますが、アクセス権の無いディレクトリは除外されます。
なぜ?


21:名無しさん@お腹いっぱい。
02/11/04 01:12
中身が読めないからでしょ

22:名無しさん@お腹いっぱい。
02/11/04 01:48
bindkey -aの
"j" down-line-or-history
ってやつの-or-historyが激しくいらないんだが、
donw-lineってコマンドはないらしい。激しくむかつく。

23:名無しさん@お腹いっぱい。
02/11/04 22:08
以前質問したものです。
あるテキストを更新時間順にmoreで閲覧したいのですが、うまくいきません。
どのように対処したらいいでしょうか?
具体的には、以下のエラーがでます。

% ls -t
josho.txt 1.txt 2.txt 3.txt 4.txt 5.txt chu.txt bunken.txt index.txt

% foreach i (`ls -t`); echo $i;end|xargs more
josho.txt: そのようなファイルやディレクトリはありません
1.txt: そのようなファイルやディレクトリはありません
  ・
5.txt: そのようなファイルやディレクトリはありません
  ・  
index.txt: そのようなファイルやディレクトリはありません
: そのようなファイルやディレクトリはありません




24:名無しさん@お腹いっぱい。
02/11/04 22:29
>>23
ls -t|xargs more
でいいんでない?
微妙にスレ違い。

25:名無しさん@お腹いっぱい。
02/11/05 01:10
foreach i (`ls -t`); echo $i;end|xargs more
これでできましたが。

26:名無しさん@Emacs
02/11/05 02:53
>>25
なんでわざわざ xargs つかう

for i in `ls -t` ;do more $i ;done では不満?

27:名無しさん@お腹いっぱい。
02/11/05 07:30
っていうか more `ls -t` でダメな理由を教えてほしい


28:名無しさん@お腹いっぱい。
02/11/05 10:37
>>27
前スレで似たようなことを指摘したんですけどね。意図が伝わら
なかったか。

あと zsh 的には more *(.om) かな

29:名無しさん@お腹いっぱい。
02/11/05 12:29
ちょっと、話がずれますが質問です。

$ touch "a b"
$ rm `ls`
rm: cannot remove `a': No such file or directory
rm: cannot remove `b': No such file or directory
$ rm `ls -Q`
rm: cannot remove `"a': No such file or directory
rm: cannot remove `b"': No such file or directory

こういう時はどういう風にすれば、rm できる?
もちろん、rm * で消せますよ。そうではなくてバッククオートを使ってやる場合です。


30:名無しさん@お腹いっぱい。
02/11/05 13:17
rm "`ls`"

31:名無しさん@お腹いっぱい。
02/11/06 01:54
>>12をみて
precmd() {
TITLE=`print -P $USER@%m on tty%l: %~`
echo -n "\e]2;$TITLE\a"
}
とやってみたのですが、screenを使っているとできないみたいです。
どうしてですか?スレ違い?TERMはvt100です。

32:前スレ931
02/11/06 03:32
あるディレクトリにcdしたら、そのディレクトリでの作業の留意点
を表示するという使い方を思いついた。
motdのような感じ。
これだけでは心もとないのでcronでかけるチェックも書いたけど。


33:名無しさん@お腹いっぱい。
02/11/06 09:33
zshで日本語ファイル名を補完させたときに、

\M-^B\M-\n\M-O\M-^N@\M-^B\M-L\M-\t\M-o.txta

のように文字化けします。


これを直すパッチとかってありますか?




34:
02/11/06 14:28
>33

一行の設定で直る。アホ。

35:名無しさん@お腹いっぱい。
02/11/06 15:43
>>34あんた不親切だなぁ。1行ぐらい書いてあげてもいいじゃないか。

36:名無しさん@お腹いっぱい。
02/11/06 16:25
setopt PRINT_CHEESE_BIT

37:名無しさん@お腹いっぱい。
02/11/06 16:35
cygwin の zsh-4.0.4 を rxvt の上で使っているのですが、
コンソールから日本語を入力すると化けてしまいます。
一応、quote すれば日本語ディレクトリに移ることは出来ます。(化けますが)
あと、PROMPT の %~ などが日本語ディレクトリだと化けてしまうのですが、
どうやったら化けなく出来るのでしょうか。

print_eight_bit は設定してあります。

38:名無しさん@お腹いっぱい。
02/11/07 21:13
>>36

下のように、叱られますたYO。

setopt:133: no such option: PRINT_CHEESE_BIT


39:名無しさん@お腹いっぱい。
02/11/07 21:23
zstyle ':completion:*' menu select=10
これでファイルなどの補完をC-f,C-bなどで移動できるんですが、
リターンを一回おしただけではコマンドは実行されず、2回おさなければならないので、
けっこうめんどくさいです。リターン一回で実行できるようにはできませんか?

40:名無しさん@お腹いっぱい。
02/11/08 11:24
すれ違いかもしレンガ、zshラーに聞きたい!!


みなさんんは、zshのおかげで、
findとgrepは使わなくなったとおもふ。

では、最近あえて、find使うのはどんな時でしょうか?





41:名無しさん@お腹いっぱい。
02/11/08 11:58
>>40 に聞きたい!!
**/* で find を使わなくなるのは分かるが、
grep はどうしてお使いにならなくなってしまったのですか?
その秘技を教えて下さい。


42:名無しさん@お腹いっぱい。
02/11/08 15:11
たぶん、>>40が言いたいのは "| grep" ではないかな?
憶測だけど

43:名無しさん@お腹いっぱい。
02/11/08 21:27
findつかわねえから文法しらねえや。zshで何日前という指定じゃなくて
何月何日のファイルと言う風にできたらさらに便利だと思うな

44:名無しさん@お腹いっぱい。
02/11/08 22:00
>>40
ファイルが多すぎる時.

zshで|grepの代わりって何?

45:名無しさん@お腹いっぱい。
02/11/09 01:00
>>40
色々条件つけたい時(日付とか)
zshに依存しないスクリプト書く時

46:名無しさん@お腹いっぱい。
02/11/09 09:34
time の結果をファイルに書き込むにはどうすればいいですか?
man zshmisc すると、standard error に出力するって書いてあるけど、
   time command 2>logfile
としても、command のエラーが記録されるだけで、
測定結果は画面に表示されてしまいます。

47:名無しさん@お腹いっぱい。
02/11/09 15:47
今月のUnix Userの記事はおもしろかったです。
>>46
漏れは/usr/bin/time使ったらできたよ。


48:名無しさん@お腹いっぱい。
02/11/09 21:24
>>47
% /usr/bin/time -o logfile command
でいけました。

どういうわけか、シェルのbuiltin コマンドじゃなきゃイカン
と思い込んでいた。

49:名無しさん@お腹いっぱい。
02/11/09 21:48
>>46 time command 2>&1 >logfile でどうよ?

50:名無しさん@お腹いっぱい。
02/11/10 08:20
>>31 スレ違い
スレリンク(unix板:193番)

51:46 = 48
02/11/10 12:16
>>49
うまいやりかたがみつからない。
descriptor の指定は全部command の一部として解釈されちゃう。

確かに、HDD の読み出し速度を計ろうと思って、

% time cat <largefile >/dev/null

なんてやる時はその方が都合がいいんだろうけどね。

52:名無しさん@お腹いっぱい。
02/11/10 13:21
>>50
ありがとう。できました。

53:名無しさん@Emacs
02/11/10 13:53
>>46
% 2>logfile time command


54:名無しさん@お腹いっぱい。
02/11/10 16:52
>>51
2>logfile time command
でいかかでしょうか

55:名無しさん@お腹いっぱい。
02/11/10 16:53
げっ、何時間も前に書き込みがあったとは。逝ってきます…

56:46
02/11/10 16:55
>>53
なるほど、そういうやり方も許されるのね。
ありがと。

ついでに、
command がエラーを吐く場合に、それをlogfile に書き出したくない場合は、
こんな感じでできるみたい。

% 2>logfile time command 2>/dev/null

57:名無しさん@お腹いっぱい。
02/11/11 11:23
今日更新したファイルだけ
ls
で表示できますか?

58:名無しさん@Emacs
02/11/11 12:00
>>57
すれ違い氏ね

59:名無しさん@お腹いっぱい。
02/11/11 15:51
>>57

% ls *(m0)
で、カレントディレクトリにあるmtimeが0日前のファイルが表示される。

詳しくは、man zshexpn して、"modification time" で検索したあたりを
よく読んでください。


>>58
あんた恥ずかしいよ


60:名無しさん@お腹いっぱい。
02/11/11 20:57
>>59
そういう書き方もあったのか。
*(m-n)はn日まえ以降に更新したファイルで
*(mn)はn日前に更新したファイル
ってことですね。

61:名無しさん@お腹いっぱい。
02/11/11 21:34
しかし、 57 の言う「『今日』更新したファイル」というのは、簡単には
書けない

62:名無しさん@お腹いっぱい。
02/11/11 21:58
ls -lしてgrepかなぁ。

63:名無しさん@お腹いっぱい。
02/11/11 22:04
ls -l|grep "`date|cut -d" " -f2,3`"
cutのデフォルトの区切りってスペースじゃないのかよ!

64:名無しさん@お腹いっぱい。
02/11/12 02:38
GNU date依存かもしれないけど。

echo *(ms-$(($(date +%s) - $(date -d $(date +%D) +%s))))

出来るだけzshの機能に置き換えてみると…、

echo *(ms-$(($(print -Pn %D{%s}) - $(date -d $(print -Pn %D) +%s))))

結局現在時刻以外の時刻をstrftimeに渡すのがzshだけで出来なかったよ。

65:名無しさん@お腹いっぱい。
02/11/12 04:02
>>64
力技で持っていくと
echo *(ms-$[$(print -P '%D{%H}' \* 3600 + '%D{%M}' \* 60 + '%D{%S}')])
かな。

まだ簡単にできるかな? しかし、時刻指定がもうちょっと楽にできればなあ

66:名無しさん@お腹いっぱい。
02/11/12 06:39
もしcronで動かすだけなら
実行時刻を考えればいいだけのような気もしてきた

67:名無しさん@お腹いっぱい。
02/11/12 19:39
>>64
すげー。それがあれば何月何日から何月何日の間に更新されたファイルとかさがせるね。
もっと簡単につかえるようにするにはどうすればいいだろう。

68:名無しさん@お腹いっぱい。
02/11/15 03:55
Emacs21のshell-modeでzshを使ってます
前スレでeshellというshell scriptを書いてそれをESHELLにsetすれば良い
という指摘がありましたが、あれではzshの補完を完全には活かせてません
よね?
どうにかしてこの問題を解決出来ませんでしょうか?

因にterm-modeではファイル名の補完すらできませんでした

69:名無しさん@お腹いっぱい。
02/11/15 17:07
ansi-term で普通に補完できてますが

70:名無しさん@Emacs
02/11/15 17:15
>>69
Me too!

71:68
02/11/16 02:42
>>69
ansi-term良いですね
よろしければ便利な設定とか教えて頂けませんか?
日本語のページが極端に少ないもので…

#やっぱり辞書を片手に英語から?

72:名無しさん@お腹いっぱい。
02/11/16 12:25
>>67
>>65のを使ってこんなのを作ってみた。
# *($(afterNdaysago))または*($(afterNdaysago 0))で今日変更されたファイル
# *($(afterNdaysago 1))で今日か昨日変更されたファイル
afterNdaysago () {
echo ms-$[$(print -P '%D{%H}' \* 3600 + '%D{%M}' \* 60 + '%D{%S}' + "${1:-0}" \* 86400)]
}

何月何日とかの指定が出来るようにするために再度dateを使って
書き直してみたらこんな感じ。

# *($(daterange)) で今日変更されたファイル
# *($(daterange '2 weeks ago')) で最近2週間で変更されたファイル
# *($(daterange 2002-11-01 2002-11-10)) で11月1日から11月10日に変更されたファイル
daterange () {
echo -n ms-$[$(print -Pn %D{%s}) - $(date -d "${1:-$(print -Pn %D)} 0:0:0" +%s)]
[ -n "$2" ] && echo -n ms+$[$(print -Pn %D{%s}) - $(date -d "$2 0:0:0" +%s)]
}


73:67
02/11/16 14:11
>>72
いやー、すごいですねー。

ちょっと気になったことを
${1:-$(print -Pn %D)}の部分なんですが、
URLリンク(dengaku.org)
をみると${1-$(print -Pn %D)}のように:が無くてもいいようですが、違いはなんでしょう?
もう一つ
print -Pn %D{%s}

02-11-16 02-11-16s
となってうまくできなかったのでその部分をdate +%sに置き換えました。

74:65
02/11/16 19:09
>>73
> 02-11-16 02-11-16s
> となってうまくできなかったのでその部分をdate +%sに置き換えました。

zsh のオプション設定によっては、ブレースが更に特別な意味を持つためです。
>>65 で '%D{%H}' などのように quote してあるのはそのためです。
>>72 でも、オプションに左右されないようにそうした方がいいでしょうね。

> ${1-$(print -Pn %D)}のように:が無くてもいいようですが、違いはなんでしょう?

たしか : がなければ null かどうかは問わなかったはずです。
${1-$(print -Pn %D)} で $1 が null だとそのまま null が評価値になります。

75:名無しさん@お腹いっぱい。
02/11/16 22:38
$(( )) -> $[ ] は気がついたから変更してたんだけど、
''は気づいてなかった。

ブレースの解釈に影響があるオプションって何?
と思って探してみたら BRACE_CCL で動作が変わった。

: の有無はzshに限らずshell scriptのFAQという気がする。

76:73
02/11/17 22:16
>>74
ありがとうございます。
>>75
FAQでしたか。すいません。

77:名無しさん@お腹いっぱい。
02/11/29 00:24
さがってるからあげるね。

setopt printexitvalueってやつさ、シェル関数の返り値はおしえてくれないんだね。
例えば
hoge(){
false
}
ってのを実行して$statusは1なんだけど、printexitvalueは教えてくれない。不便だ。

78:名無しさん@お腹いっぱい。
02/12/01 00:08
compctl -g '*.l' + flex lex
と定義してもflexは*.lexファイルしか補完してくれない。
autoload -U compinit
compinit -u
これを実行しなければ問題ないんだが、そう言うわけにはいかないので
だれか教えてください。

79:名無しさん@お腹いっぱい。
02/12/01 17:18
>>78
_flex を ~/.zfunc/ にコピーして input files の部分を書きかえる。
その後 $FPATH=~/.zfunc:$FPATH を .zshenv 等に加える。
そしてzshを起動しなおす。


80:名無しさん@お腹いっぱい。
02/12/01 17:58
>>79
できた。ありがとう。
今までオプションの補完ができるなんてスゲーとか思ってたけど、
_flexとかのファイルに書いてあるだけなのか。

81:名無しさん@お腹いっぱい。
02/12/01 19:40
むしろ_flexとかのファイルに書いてあるから
自由自在にカスタマイズ(のはず)

82:名無しさん@お腹いっぱい。
02/12/07 22:59
age

83:名無しさん@お腹いっぱい。
02/12/09 21:35
%cat dummy
001 aho
002 boke
003 hage

というファイルを
001
002
003

aho
boke
hage
に分けるとき、
cut -f1 dummy>f1
cut -f2 dummy>f2
というのを一気にやりたいですが、どうすればいいでしょう。
<() <()

>f1 >f2
などを使ってできないでしょうか?




84:名無しさん@お腹いっぱい。
02/12/09 21:51
cut -f1 dummy > f1; cut -f2 dummy > f2

いやー、セミコロンって便利♥

85:83
02/12/12 11:11
ぼくは真面目に質問してるのです!!

86:名無しさん@お腹いっぱい。
02/12/12 11:26
>>85
>>84 は真面目に答えてると思うが。

87:84
02/12/12 12:28
>>86
フォローして貰っといてなんだが、別にマジメって程のモンではありませぬ(w

88:名無しさん@お腹いっぱい。
02/12/12 14:16
というか、awk使うべきだろ
この場合

89:名無しさん@お腹いっぱい。
02/12/12 17:37
↑キボン

90:名無しさん@お腹いっぱい。
02/12/12 23:30
>>89
スレ違い

awk '{print $1 > "f1"; print $2 > "f2";}' dummy

91:名無しさん@お腹いっぱい。
02/12/13 00:43
84 の方が短い罠

92:84=90
02/12/13 02:43
そして 84=90 という罠

93:名無しさん@お腹いっぱい。
02/12/13 19:34
オークの中でリダイレクトできるのか。

94:名無しさん@お腹いっぱい。
02/12/15 02:53
zshでの関数定義内において
標準入力をファイルに書き出すには
どのような書き方がありますか?

使い方:
last | x2w

コード:
x2w(){
while read line do
echo >>dummy-memo.txt
done
<略>
}

read line do;〜;done しか思い当たりません。


95:名無しさん@お腹いっぱい。
02/12/16 02:40
短く書くのならcatでいいのでは?

x2w () {
cat >> dummy-memo.txt
}


96:83
02/12/17 14:03
どうもです。

cut -f1 dummy>f1
cut -f2 dummy>f2


cut -f5 dummy>f5

を連続して実行したいのですが、
^1^2
のグローバル置換ありませんか?
^1^2だと
cut -f1 dummy>f2
になります。



97:名無しさん@お腹いっぱい。
02/12/17 14:59
date -3
で今日の日付をhighlight表示させる方法ありませんか?

98:65
02/12/17 16:57
>>96
r 1=2 とか。それよりも for loop を廻した方が早いと思うが
>>97
くだ質へ行きたまえ

99:名無しさん@お腹いっぱい。
02/12/18 01:12
>>96
!:gs/1/2/
はどう?

100:100
02/12/19 02:07
zsh (・∀・)イイ!!

101:名無しさん@お腹いっぱい。
02/12/19 02:29
シェル変数を補完しないようにするにはどうすればよいのでしょう?

102:名無しさん@お腹いっぱい。
02/12/19 08:24
awk --help |grep hoge
grep --help | grep hoge
のようにhelpの出力をgrepしたい時は
| を使うのでしょうか?







103:名無しさん@お腹いっぱい。
02/12/19 09:49
>102
そうですが何か?

104:名無しさん@お腹いっぱい。
02/12/19 10:48
sourceコマンドの補完で質問。
原因不明で、以下のものが動かなくなった。
他のサンプル持ってないので、皆さんの
_source見せてください。
おながいします。


% cat _source
#compdef . source
compadd ~/.zsh.d/.zsh(rc|env) || _files


105:名無しさん@お腹いっぱい。
02/12/19 14:33
あー、グローバルエイリアスってすごいね。
これだけでzshに存在意義を見出させてしまいます。

zsh以外で実現しているシェルってあるの?

106:名無しさん@お腹いっぱい。
02/12/19 17:36
>>102
もしできなかったら
awk --help 2>&1 |grep hoge

>>105
なに設定してる?
漏れは
alias -g I=/dev/stdin
alias -g O=/dev/stdout
alias -g E=/dev/stderr
alias -g N=/dev/null
alias -g L='|less'
alias -g G='|grep'

107:名無しさん@お腹いっぱい。
02/12/19 19:52
foreach i (ココの部分)
      ^^^^^^^^
グローバルエイリアスがいちいち展開されてウザイっす。
例えば、bindkeyでキーバインディングの空き情況を調べる時、
foreach i (w \W i \I);bindkey "^x$i";end
のように展開を避ける必要があって、面倒です。

グローバルエイリアス展開の有無を情況ごとに調整する
オプションありませんか?

108:名無しさん@お腹いっぱい。
02/12/19 20:52
bindkeyを引数なしで実行すればいいのでは?

109:名無しさん@お腹いっぱい。
02/12/19 22:47
>>107
> グローバルエイリアス展開の有無を情況ごとに調整する
> オプションありませんか?
これは自分も以前思ったことがあった。しかし、グローバルエイリアス
の有効・無効を「簡単に」切り替えられる方法は見つけられなかったが、
一応の方法は見つけた。

無効にしたいとき、
disable -a $galiases[(I)*]
有効に戻したいとき
enable -a $dis_galiases[(I)*]

110:名無しさん@お腹いっぱい。
02/12/19 23:36
漏れはグローバルエイリアスって使ったことないんだけども、
それって使い方を間違えているんじゃない?
もっと、衝突しづらい文字列のエイリアスをあてがうのが正しい使い方かと。

111:名無しさん@お腹いっぱい。
02/12/20 00:25
そうでもない

112:名無しさん@お腹いっぱい。
02/12/20 21:55
%echo '
>hoge
>hoge
>ho
ここまで入力して上の行に戻れる?

113:104
02/12/21 02:48




いろいろ調べていますが、結局のところ

% cat _source
#compdef . source
compadd ~/.zsh.d/.zsh(rc|env) || _files

でsourceの補完が聞かなくなった理由が
わかりませんでした。

だれか理由か関連情報ご存知ありませんか?





114:名無しさん@お腹いっぱい。
02/12/22 01:52
zshで、makeなどの出力結果をコンソールに出しながら
標準出力と標準エラー出力をそれぞれ別ファイルに吐き出すことは出来ますか?


115:名無しさん@お腹いっぱい。
02/12/22 03:02
make >LOG.stdout 2>LOG.stderr >& /dev/tty
とか
make >LOG.stdout 2>LOG.stderr |& tee
の方がいいか

116:名無しさん@お腹いっぱい。
02/12/22 03:38
どうもありがとうございます。
shじゃできないけど、zshだと出来るのですね。

117:名無しさん@お腹いっぱい。
02/12/22 23:13
history内部コマンドの表示行数はデフォルトでは10行ですが
変更方法はありませんか?

118:名無しさん@お腹いっぱい。
02/12/22 23:19
おまいら便利なbindkey教えてください。
unix userに載ってたのを書いてみる
accept-and-hold(M-A) コマンドを実行して再び表示する。
transpose-word(M-T) 単語を入れ代える
quote-line(M-') 'でくくる
insert-last-word(M-.) 直前のコマンドの最後の引数を挿入

autoload run-helpをやってもM-h(run-help)でwhereなどの内部コマンドのヘルプが
でてこないのは漏れだけ?

119:名無しさん@お腹いっぱい。
02/12/22 23:21
>>117
たぶんHISTSIZE=10000(byte)

120:名無しさん@お腹いっぱい。
02/12/22 23:22
>>117
勘違いスマソ
alias history='history -20'

121:117
02/12/23 00:09
alias使うと、
% history -m 'hoge*'
などのマッチングが出来ません。

そうすると、
% function history{history 〜}使うしかないのかな?




122:名無しさん@お腹いっぱい。
02/12/23 00:10
>>121
> % history -m 'hoge*'
> などのマッチングが出来ません。

ということにしたいのですね。

123:名無しさん@お腹いっぱい。
02/12/23 01:23
そもそもhistoryコマンドって何に使う?
>>121
grep使えば?

124:名無しさん@お腹いっぱい。
02/12/23 03:01
>>118
> autoload run-helpをやってもM-h(run-help)でwhereなどの内部コマンドのヘルプが
> でてこないのは漏れだけ?
手許では unalias run-help; autoload run-help で内部コマンドのマニュアルが動いている。
もっとも zshbuiltins(1) が先頭から表示されるだけで、それほど便利ではない(w

>>119
単位は byte でないよ。履歴の数そのもの

>>117
history は fc -l の別名だから適当に使い分ければ?

125:名無しさん@お腹いっぱい。
02/12/23 16:35
>>124
run-helpがaliasされてたのですか。おもしろい使い方ですね。
>単位は byte でないよ。履歴の数そのもの
スマソ

126:名無しさん@お腹いっぱい。
02/12/26 01:38
$@, $*の扱いがzshとshで違うのは仕様ですか?

127:名無しさん@お腹いっぱい。
02/12/26 10:12
>>126
どう違う。


128:名無しさん@お腹いっぱい。
02/12/26 21:33
#test.sh
arg.sh $@
arg.sh $*
arg.sh "$@"
arg.sh "$*"

引数の数を表示
#!/bin/sh
#arg.sh
echo $#

sh test.sh 'a b' 'c d'
4
4
2
1
zsh test.sh 'a b' 'c d'
2
2
2
1
勘違いしてたらスマソ>>127
bashは4421になった。

129:名無しさん@お腹いっぱい。
03/01/03 11:52
から揚げ

130:名無しさん@お腹いっぱい。
03/01/03 15:49
うまうま

131:名無しさん@お腹いっぱい。
03/01/03 18:08
zsh を 3.0.8 から 4.0.4 に上げたら job control が変になりました。
具体的には
% less nannoa.txt

として見てるときに kill -STOP `pidof less` して止めたとき、
fg で less をフォアグラウンドにだすと jk では上下せず、
j + return, k + return というように改行キー入れないと動かなくなります。

これ、どのへんの設定を直せばいいんでしょうか。


132:777
03/01/03 19:06
>>826
すんばらしい。
ありがとうございました。


133:名無しさん@お腹いっぱい。
03/01/03 20:16
>>826 に期待がかかるわけだが。

134:826
03/01/03 22:49
>>777
いえいえ、どーいたしまして

135:名無しさん@お腹いっぱい。
03/01/04 13:11
>>131
4.06にしたら?

136:名無しさん@お腹いっぱい。
03/01/07 01:08
>>128
see SH_WORD_SPLIT

% zsh -y test.sh 'a b' 'c d'
4
4
2
1


137:128
03/01/07 19:35
>>136
ありがとうございます。

zshってzshのオプションは補完してくれないのか。

138:名無しさん@お腹いっぱい。
03/01/07 20:04
-o


139:名無しさん@お腹いっぱい。
03/01/11 12:07
日経Linuxでちょろっと取り上げられてたage

140:名無しさん@お腹いっぱい。
03/01/12 12:54
zshrcの置き場所って
~/.zsh/zshrc
で正しいですか?
設定を読み込んでくれないのですが

141:名無しさん@お腹いっぱい。
03/01/12 13:01
>>140
/etc/zshrc

142:名無しさん@お腹いっぱい。
03/01/12 13:17
>>140
~/.zshrc


143:名無しさん@お腹いっぱい。
03/01/12 13:22
>>140
$HOME/.zshrcでいいんじゃない?

144:名無しさん@お腹いっぱい。
03/01/12 13:24
>>140
ドキュメントを読まない方はお断りします。

145:名無しさん@お腹いっぱい。
03/01/12 16:59
>>12 のwikiが無くなってるんだけど、どっかに移転しましたか?

146:140
03/01/13 03:33
140ですが
$HOME/.zshrc
を読み込んでくれません
aliasも有効にならないし
環境変数も有効にならないし
書式がおかしいというエラーも出ません
なんででしょうか
chpassでログインシェルを変更しました
またログインシェルを変更せずとも
ただたんにフォアグラウンドで走らせようとも
関係なく読み込んでくれません
関係ないか
なんででしょうか?

147:140
03/01/13 03:40
ちなみにパーミッションは
-rw-rw-rw-: こんな感じですね
とくに意味は無いですが
そのうち変えます
自分に読み込み権限はあります


148:名無しさん@お腹いっぱい。
03/01/13 10:14
>>147
source $HOME/.zshrc って打ったらどうなる?

149:名無しさん@お腹いっぱい。
03/01/13 11:00
>>147
> -rw-rw-rw-: こんな感じですね

(゚Д゚)ハァ?

150:名無しさん@お腹いっぱい。
03/01/13 13:55
>>140

# $HOME/.zshenv
ZDOTDIR=$HOME
export ZDOTDIR

man zsh に目を通しておきませう


151:150
03/01/13 13:59
あ、 >>150 は zsh 4.0.6 (i686-pc-cygwin) での話なんで、
他の環境では違うのかも...

152:山崎渉
03/01/15 12:53
(^^)

153:名無しさん@お腹いっぱい。
03/01/20 20:56
GUIでアイコンをクリックすると適切なアプリが起動するように、
プロンプトでファイル名をうったら適切なアプリが起動したら便利だと思う。
zshのpreexecとかでできないかな?

preexec(){
if [ -f "$1" ]; then
vi $1
fi
}
と定義して
%.zshrc
とやるとviは起動するんだけど、 そのあとに
zsh: command not found: .zshrc
となる。ちょっとうざい。

154:名無しさん@お腹いっぱい。
03/01/20 21:11
>>153
スクリプトで拡張子見て起動するようにしてみれば?

155:名無しさん@お腹いっぱい。
03/01/21 09:36
>>154
まず magic を見て、次に拡張子の方がいいだろうな。
file の出力を拾うのがいいかな?


156:名無しさん@お腹いっぱい。
03/01/21 18:13
>>154-155
スクリプトだとたとえ1文字にしても
%a hoge.txt
としなければいけない。
%hoge.txt
ってのはやっぱり無理かな。

157:名無しさん@お腹いっぱい。
03/01/21 22:12
bindkeyで適当な関数を割り当てればいいんじゃないかな。
内容はあんまりいい例じゃないかもしれないけどこんな感じで。

function my-accept-line {
emulate -L zsh
local -a cmd; cmd=(${(z)BUFFER})
case "$cmd[0]" in
*.log)
BUFFER="$PAGER $BUFFER"
;;
*)
if [ -z "`whence $cmd[0]`" ]; then
BUFFER="echo $BUFFER"
fi
;;
esac
zle accept-line
}
zle -N my-accept-line
bindkey '^J' my-accept-line

参考にしたのは
URLリンク(dengaku.org)
のrun-fg-editorと
URLリンク(www.zshwiki.org)
のpreexec。

158:名無しさん@お腹いっぱい。
03/01/21 23:31
>>157
カッケー!サンキュウ!

159:158
03/01/22 01:58
よく考えたら補完が使えなくなるのか。うーん。

160:155
03/01/22 09:43
おれはpreexecの中で一時的にaliasを定義したらいいかな?
と思ってやってみたんだが、aliasの展開はpreexecより前
みたいなんだよなー。
ソースをちょっと直せば対応できそうな気がするけど。


161:名無しさん@お腹いっぱい。
03/02/02 14:25
faq っぽいですがよろしくです。

shell> aaa bbbbbbbbbbb ccccc

とかあって、bbbb の中頃にカーソルがあるとします。そこで、
次の単語までジャンプする方法ってありますか?
# つまり ccccc の頭まで。
矢印キー押しっぱなしというのは美しくないので・・

162:名無しさん@お腹いっぱい。
03/02/02 16:10
>>161
ESC f とか ESC b とか

163:名無しさん@お腹いっぱい。
03/02/03 02:15
さんくすです! esc か・・。
ctrl に適当に割り当てられれば便利そうですね。
^F も ^B も日頃使わないからそれに振ってみます ;-)

164:名無しさん@お腹いっぱい。
03/02/03 11:06
>>163
Meta-b(Alt-b) でイくない??

165:名無しさん@お腹いっぱい。
03/02/03 15:09
macos 上のターミナルなので alt は無いです。option キーだと
変な文字が入力されるだけだし・・。ううむ。

166:名無しさん@お腹いっぱい。
03/02/03 23:28
>>161ではありませんが、C-, とか C-. に割り当てることは出来ませんよね?
ってこれは、terminalの問題か...。


167:名無しさん@お腹いっぱい。
03/02/06 23:32
実行しているコマンド名をウィンドウのタイトルに設定したいんですが、そんなこと
可能でしょうか?
Enterでコマンドが投入された直後にそのコマンドラインをウィンドウのタイトルに
設定できればいいと思ったんですが、うまい方法を見つけられませんでした。
実行が終了して元に戻すのはPROMPTでいいんでしょうが。

168:名無しさん@お腹いっぱい。
03/02/07 00:04
>>167
preexec を設定してはどうでしょうか。
cf. URLリンク(www.zsh.org)


169:167
03/02/07 00:45
>>168
そういうフックがあったのですね。ありがとうございました。試してみます。

170:fushianasan
03/02/07 17:49
zshって、tcshとくらべると、
動作速度、メモリの使用量はどうなの?

171:名無しさん@お腹いっぱい。
03/02/08 01:01
>>170
起動はおそい

172:fushianasan
03/02/08 01:06
一回起動しちゃうと、サクサク?

screenとかmlterm多様してると、
シェルのプロセス立ちまくるから、
あんまり重い||遅いとこまる。

tcshマンセーな俺はzshを愛せるだろうか

173:名無しさん@お腹いっぱい。
03/02/08 04:20
こんな感じ
% ps aux |grep '[tcz]sh'
xxx 2172 0.0 0.8 2436 2016 p3 Ss 4:17AM 0:00.14 -zsh (zsh)
xxx 2178 0.0 0.4 1384 996 p3 S 4:17AM 0:00.03 tcsh

うーむ、実質二倍って感じ?

174:名無しさん@お腹いっぱい。
03/02/08 08:58
>>172
一回起動するとサクサク!
screenはdetatchしてatatchすれば起動の遅さは気にならないはず

175:名無しさん@お腹いっぱい。
03/02/08 10:28
486 なマシンだと zsh の方が completion とか明らかに遅かった。ヲレには
耐えられないレベルだったので使用を諦めた記憶がある。

176:fushianasan
03/02/09 00:03
>>173-175
御丁寧にどうも。
とりあえず、つかってみようかと思います。
多機能なぶん、おもいのはしかたないのかなぁ。


177:名無しさん@お腹いっぱい。
03/02/10 18:26
>>175
Pentium/120MHzでもcompletionとか明らかに遅いよ。
でもなんとかつかえる範囲なので使ってるけど。
普段余り触ることのないルータ機だからってものあるけど。

178:fushianasan
03/02/10 22:12
P2/233Mhzでも、微妙に遅いかも…。

使用感ですが、かなりカスタマイズできるようになっていて、
tcshよりも、かなり自由度がたかそうです。

うちのtcshはいじりすぎて、実メモリを1.8Mくらいメモリくっちゃうんで、
zshへの移行もありかなとおもってますが、
.*rcの移行が非常に面倒くさい…。

地道にzshの勉強しながら移行します。

179:名無しさん@お腹いっぱい。
03/02/10 22:53
>>178
2.xでも使ってみれば?
それでも現行のtcshより便利じゃないかな。
ってtcshの事はよく知らないんだけど。


180:名無しさん@お腹いっぱい。
03/02/10 22:57
ソンナワケ(ry

181:名無しさん@Emacs
03/02/11 18:44
>>179
|>!|2.xでも使ってみれば?
|>!|それでも現行のtcshより便利じゃないかな。

ということにしたいのですね?

182:名無しさん@お腹いっぱい。
03/02/12 00:56
>>180,181
いや、おれの.zshrcは2.6の頃から大して変わって
ないからさ(細かい所はいじってるけど)。
最近追加された機能なんて使わなくても十分
便利なんじゃないかな、と思っただけ。


183:名無しさん@お腹いっぱい。
03/02/12 01:49
~/.zshrcって何書いています? キーバインドくらいでしょうか?

私は以前、~/.zshenvには環境変数、~/.zshrcにはシェル変数やエイリアス、
キーバインドの設定を書いていましたが、
rshしたときには ~/.zshrcが読み込まれないみたいなので、
今は全部 ~/.zshenvに書いています。


184:名無しさん@お腹いっぱい。
03/02/12 02:54
ssh だと読み込まれるけど

185:名無しさん@お腹いっぱい。
03/02/12 06:38
rsh host command
では読み込まれない。

rsh host
では読み込まれる。

sshでも一緒。


186:名無しさん@お腹いっぱい。
03/02/12 06:39
Mac OS X 10.2.3 付属の zsh 4.0.4 を使っています。
端末エミュレータ (Terminal.app) で表示言語を UTF-8 にしているのですが、
日本語を入力すると文字化けします(EUC だと文字化けしません)。
zsh で utf-8 を通す方法があったら教えて下さい。

187:名無しさん@お腹いっぱい。
03/02/12 09:40
>>186
「utf-8移行スレ」なんてスレ立てて情報集めてみるのはどう?
各プログラムの utf-8 対応度が知りたい。


188:名無しさん@お腹いっぱい。
03/02/12 20:16
.zshrcってないの?

189:名無しさん@お腹いっぱい。
03/02/12 21:31
ある

190:名無しさん@お腹いっぱい。
03/02/13 03:19
sjisなファイル名はちゃんと補完できないのか?

191:名無しさん@お腹いっぱい。
03/02/13 16:21
なんだか404から406にした時かなり遅くなったように感じますた。

192:名無しさん@お腹いっぱい。
03/02/13 21:31
zsh上でとあるソフトを make install として/usr/bin なんかに入っても
zshを再起動させないとコマンドの補完に含まれないんだけど、なんか設定あるのですか?
逆にPATHの中のコマンドを削除した場合、ずっとそのコマンドが補完対象に含まれるし。

193:名無しさん@お腹いっぱい。
03/02/13 21:34
>>192
rehash

194:_
03/02/14 22:11
zshのオプションに文字列を渡せてそれを実行させてプロンプトに欝って欲しいのですけど
どうしたらできますか?

195:_
03/02/14 22:42
-e -cだと実行した後zsh死んでしまうし。

196:名無しさん@お腹いっぱい。
03/02/14 23:10
>>194
なんでそんなことしたいの?

197:名無しさん@お腹いっぱい。
03/02/17 19:06
hoge.c
int main(){
fprintf(stderr, "err\n");
fprintf(stdout, "out\n");
}
./hogeのエラー出力をerr.txtに標準出力をout.txtに出力して
画面には両方を出力するにはどうすればいい?
./hoge 1>&2 2>&1 2>error.txt 1>out.txt
これで一応できたけど、意味不明。shでもできる方法ない?

198:名無しさん@お腹いっぱい。
03/02/17 23:18
>>197
わかりやすいのがいいのなら、
./hoge > out.txt 2> error.txt |& cat
とか。
197もそうだけど、setopt multios されてないとダメ。
hでは
((./hoge |tee out.txt >&3) 2>&1 |tee error.txt) 3>&1
くらいかな。もっと簡単な方法あるかな?


199:198
03/02/17 23:19
s/hでは/shでは/


200:名無しさん@お腹いっぱい。
03/02/18 00:15
>>198
> ./hoge > out.txt 2> error.txt |& cat
これだと、out.txt に stderr も含まれない?

./hoge > out.txt 2> error.txt >& /dev/tty
なら大丈夫だが、あまり好みではない

201:198
03/02/18 10:51
>>200
あれ、ほんとだ。確認したはずなんだが、頭が寝ていたらしい。
ありがと。
しかし、 |& と >& はふるまいが違うのか。
んなの man 眺めたくらいじゃ気付かんよ・・・

ちなみに/dev/tty使うの嫌いなのは一緒だったりする。


202:197
03/02/18 11:47
>>198-201ありがとうございます。
((./hoge |tee out.txt >&3) 2>&1 |tee error.txt) 3>&1
これすごいですね。もうなにがなんだかってかんじ。

./hoge > out.txt 2> error.txt |& cat
俺もこれためしたんだけど、なんでout.txtに全部入るのかわからなかった。

203:198
03/02/18 14:08
>>202
zshmisc(1) に

`|&' は `2>&1 |' の省略形
`>& word' は `> word 2>&1' の省略形ではない

と書いてある。そこから想像しろという事らしいな。


204:200
03/02/18 16:44
>>201
>あれ、ほんとだ。確認したはずなんだが、頭が寝ていたらしい。
まあ、そういうこともあるね。 実は >>115 を書いたのも自分だったりする(w
このとき、自分もちゃんと確認したつもりだったけどね。同じような質問が
きたので、もう一度動作を確かめて気付いた次第。114 の人に悪いことをした。

>>203
どうも直感的に扱えないのが、嫌なところだね。

/dev/tty を使うのが気に喰わないので、zsh 的に他の解決法はないものかと
思案したところ、こんなのでいけそうだ。

./hege >& >(cat) >out.txt 2>error.txt

でも、綺麗とは言い難い…

205:197
03/02/18 17:42
うわ、既出でしたか。毎日見てるはずなのにな・・・

206:名無しさん@お腹いっぱい。
03/02/20 00:32
tcshの
bindkey -k up history-search-backward
bindkey -k down history-search-forward
みたいな事は、zshで出来るのかな?

これがないと移行する気になれないんだが、
出来る人情報キボン

207:名無しさん@お腹いっぱい。
03/02/20 00:50
>>206
history-search-(back|for)wardならあるけど?
それとも、カーソルキーに割り当てたいの?
up => "^[[A", down => "^[[B" みたい。

208:名無しさん@お腹いっぱい。
03/02/20 00:52
M-xしたときのキーバインドってどう変えるんでしょう?
Emacs風に、"C-a"とか"C-b"使いたいし、
M-[pn]で、M-xでコールした関数の履歴を活用したい...。


209:名無しさん@お腹いっぱい。
03/02/20 01:06
>>206
autoload -U history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^P" history-beginning-search-backward-end
bindkey "^N" history-beginning-search-forward-end

210:名無しさん@お腹いっぱい。
03/02/20 01:10
>>207,209
サンクス!
これで移行する事ができました。
zsh、おもったより軽くて快適。

イイ!!

211:名無しさん@お腹いっぱい。
03/02/20 13:23
zshがディレクトリのシンボリックを
勝手にリンク先の名前に戻してしまうのですが、
どういう風に設定したらよろしいでしょうか?
意図的に名前をかえてリンクしてあるディレクトリの意味がなくなってしまいました。
お知恵をお貸しください。

212:名無しさん@お腹いっぱい。
03/02/20 13:27
すまそ、
ディレクトリのシンボリックリンクを

でした。

213:211
03/02/20 13:51
自己解決しました。

スレ汚しすまそ。

214:名無しさん@お腹いっぱい。
03/02/20 14:13
>>213
なんだったの?

215:名無しさん@お腹いっぱい。
03/02/20 15:55
>>214

chase_linksがついてたせいで、
hoge-xxx@ hoge/
pwd ~/hoge-xxx/
にしたかったのが、
pwd ~/hoge/
になってたの。

chase_linksを消したらなおった。



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

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