zsh その3

このエントリーをはてなブックマークに追加
zshのスレその3です。

過去スレ
zsh入門
http://pc.2ch.net/test/read.cgi/unix/990283346/
zsh入門 パート2
http://pc3.2ch.net/test/read.cgi/unix/1036324177/

>>2リンク
英語
index http://www.zsh.org/
公式 http://zsh.sourceforge.net/
FAQ  http://zsh.sourceforge.net/FAQ/
http://www.zshwiki.org/cgi-bin/wiki.pl

日本語
zshのある暮らし
http://hiki.ex-machina.jp/zsh/
zsh に関するドキュメント(翻訳)
http://dengaku.org/naoki/zsh/
ドキュメントの日本語訳など(上のより古い)
http://tehanu.hpcl.titech.ac.jp/zsh/
FreeBSD なあなたのための zsh (The Z Shell) 設定
http://aquahill.net/zsh.htm
zshのおぼえがき
http://www.ayu.ics.keio.ac.jp/members/mukai/tips/zsh.html
zsh 用 euc-jp patch
http://www.ono.org/software/zsh-euc/
【至高のコマンドインタプリタzsh】
http://www.gentei.org/~yuuji/rec/pc/intro-zsh.html
zsh for the working researcher
http://cl.aist-nara.ac.jp/~daiti-m/text/zsh-intro.html

http://kimama.ddo.jp/zsh
http://www.sol.cs.ritsumei.ac.jp/~sawaki/comp/zsh/
3名無しさん@お腹いっぱい。:04/03/23 09:47
前スレの1002は何だ?
6名無しさん@お腹いっぱい。:04/03/23 12:18
>1
もつかれ
> ドットファイルの例
これも
ttp://dotfiles.com/index.php3?app_id=4
8名無しさん@お腹いっぱい。:04/03/24 15:42
setopt correct しておくと typo を修正してくれるけど,同じくらい近い候
補が2つ以上ある時に一方しか持ってこれないのが不満.たとえば, bunzip
は unzip の typo だと解釈されるんだけど本当は bunzip2 なんだよね,とか.

ispell みたいに複数候補を出して選べるようになると嬉しいんだけど,そう
いうのって難しいのかな?
実用上は、そんなに頻繁に間違えるのは alias あたりしとけばいいんじゃない?
>>1
もつかれい〜
リンクを新しく張ってくれたのは殊勝。
118:04/03/25 13:08
>>9
まあ確かに実用上はそうなんだけど,そう頻繁に間違えるコマンドはないです.
どっちかというと,修正案を見せてくれたときの「そっちじゃねーんだよ
なぁ……」という脱力感をどうにかしたい.
129:04/03/25 13:54
そういえば emacs の eshell は、
何度も間違えると自動的に alias の設定になってくれるんだよね。
あれは面白いと思った。
最初に間違えてるのは自分なんだからzshを責めるなよ。
>正しいかどうかの判断は使ってる本人にしかできないのだから、
>その判断を先取りしてコンピュータが行うというのは、やはり無理があると思う。
158:04/03/26 20:36
>>13
確かにそうなんだけど.
>>14
漏れはSKKユーザだから引用元の意見は納得できるんだが,それはちょっと話
が違わないか?

けっきょく選ぶのは人間だとしても選択肢が(もう少し)多いと嬉しいんだけど,
という話なんだけど…….
=()と<()てなにがちがうんですか?
普段はvimdiff =(grep aaa file1) =(grep aaa file2)みたいに使ってます.
>>16
echo =(grep aaa file1) と echo <(grep aaa file1) を比べるとわかる気がする。
=()初めて知った.
すごく(・∀・)イイ!!
もっと目から鱗な機能ってないの?
これ、逆に =(...) だとダメで <(...) だとOKな例ってあるのかなぁ
>>19
/tmp があふれるサイズの出力になったとき。
あぁなるほど。
=(...) は一時ファイルを使うが
<(...) はファイルディスクリプタor名前付きパイプを使うって違いか
>>19
head =(yes)
head <(yes)
おもしろそうな新機能ある?
http://zsh.sourceforge.net/releases.html
目新しいのは、UTF8 にそれなりに対応したのと Suffix Aliases ぐらいかな
>>24
Suffix Aliasesおもしろいですね。
前スレの153でまさにこの機能が欲しいと書き込んでました。

alias -s ps=gv
./hoge.ps
でgvを起動
/. ひととってキモイですね
>>25
その機能すげー良い。

ついでに、

% http://.../

で w3m が起動される機能欲しい。
>>27
Prefix Aliases ってことか?
実装してるんじゃないの?
知らないケド…
4.2.0にしてから、w3mの引数補完で~/.w3m/historyが補完されなく
なりました。4.0.7の_w3mを持ってきても補完されませんでした。
何か設定が必要なのでしょうか。

もう1つ質問があります。ローカルのファイルを引数にしたいのに、
それが補完対象にならないコマンド(appletviewerなど)があります。
そのようなコマンドに対してローカルのファイルも補完できるよう
にするにはどうすればいいでしょうか。
30名無しさん@お腹いっぱい。:04/04/02 20:22
Cygwin で zsh 4.2.0 にあげてみましたが、
svn コマンドの補完ってできてます?

% svn [tab]
とすると、
^M :log:
:add: :merge:
:blame:praise:annotate:ann:^M :mkdir:
(略)

というように表示され、さらに
% svn add [tab]
とすると

":add:": unknown command.


(改行が何個か混ざる)
となってしまいます。

スクリプトの改行コードがどこかおかしいのかと思いましたが、
/usr/share/zsh/4.2.0/functions/_subversion はちゃんとLFのみになっているようです。
今はとりあえずこのスクリプトを消していますが、ちゃんと補完できている方がいたら
設定を知りたいです。
>>30普通にできているが。
3230:04/04/03 07:14
どうも、Windows の svn.exe を使っているのがいけなかったようです。
日本語ファイル名を指定しようとして、xim対応端末で日本語を入力しようとすると、
kinput2で漢字を確定してもシェルのコマンドラインでは^^という文字しか出てこない。

setopt print_eight_bit以外に何か設定が必要?
>>33
printeightbit
3533:04/04/04 21:59
>>34
いえ、ですから print_eight_bitはsetoptしてます・・・

zsh 4.2でunicode対応なんてどこかに書いてありましたか?
> コマンドラインでは^^という文字しか出てこない。
山崎パッチがあたってませんか?
tcsh はメッセージを別ファイルでいろいろいじれるみたいですけど、
zsh はできますか?
>>37
ソースをいじる
>>29
% diff share/zsh/4.1.1/functions/_java ~/.zfunc/_java
100c100
< '*:url:_urls' && return 0
---
> '*:appletviewerarg:->appletviewerarg' && return 0
575a576,581
> ;;
>
> appletviewerarg)
> _alternative \
> 'urls:url:_urls' \
> 'applet-files:HTML or java file:_files -g "*.(#i)(htm(|l)|java)"'
4029:04/04/06 08:01
>>39
ありがとうございます。補完できるようになりました。
しかし、これを見ても一体何のことかさっぱり分からんな
難解だ
% make -f ~/makefiles/foobar.makefile
みたいな場合に、targetが補完できない。
"~"をやめればいいのだけど。
>>42
??? 普通にできるぞ。
>>38
37は {,R,S}PROMPT 相当の話をしてるんじゃないのか?
>>43
% make -f ~/cvs/w3m/Makefile awk: cmd. line:4: fatal: cannot open file `~/cvs/w3m/Makefile' for reading (No such file or directory)

あれ、こんな具合にならないのでしょうか。
4.0.7じゃ古過ぎたかな……。
>>45
おれも4.0.7でいろいろ不具合があったが、4.2.0にしたら直った。
4737:04/04/06 18:47
>>44
いや、RPROMPT のことじゃなくて、

% grpe hoge
zsh: command not found: gpre

のようなメッセージ部分を

% grpe hoge
そのようなコマンドはありません (プゲラチョ

とかいうようにかえられないかと思ったのです。
tcsh ならカタログとかいうのがあるらしいですけど。
>>47
( ´_ゝ`)フーン
zsh本って早くでませんかね。
雑誌のシェル特集で取り上げられるぐらいですからね。
今のところは。

zshを使いたいのですが、今のところは、関連書籍が出ているbashで勉強して、
オライリーからzshの本が出てから移行することにします。
表紙はカモノハシです。
5044:04/04/06 20:46
>>47 なるほど.それは zsh ではできないんじゃないかと思います.
コマンド訂正メッセージは SPROMPT で変更できるんですけどね.
>>49
市販の計算機関連書籍を購入するのは時間と金の無駄。特に、翻訳本はゴミ。
ネットワーク上には、遥かに優れたリソースが存在するのだから。
>>51
> >>49
> 市販の計算機関連書籍を購入するのは時間と金の無駄。特に、翻訳本はゴミ。
> ネットワーク上には、遥かに優れたリソースが存在するのだから。

ただ単にカモノハシの表紙が見たかっただけです。
>>53
> >>52
> http://images.google.com/images?q=%E3%82%AB%E3%83%A2%E3%83%8E%E3%83%8F%E3%82%B7&hl=ja&lr=&ie=UTF-8&inlang=ja&sa=N&tab=wi

家にはオーストラリアで買ってきたもっとかわいいカモノハシの人形があるのです。
zshは得体の知れない雰囲気がカモノハシをイメージさせるのです。
カモノハシのように、水中でも地上でも万能だし。

なーるほど。web上ではきとんとした情報があるのですね。
でも、自分は、入門bashみたいな本をじっくり読み、脇に本を置きながら、操作したり、設定したりするのが好きなのです。
webを見ながらできる人にとっては、非常に効率が悪いのかもしれません。
> 自分は、入門bashみたいな本をじっくり読み、脇に本を置きながら、操作したり、設定したりするのが好きなのです。
html2latex 経由とかで PDF 化して printout して製本すれば?
zshオタ降臨
手軽に設定できればいろいろ設定してみたいが
わざわざ膨大な量の英文を調べてまでやってみたいとは思わん

たかがシェルにそこまで時間をかけても仕方がないし
> たかがシェル
御愁傷様♪

GUI盲目へ真っ逆さまw
わずかな設定で楽ができることもあるし、
労多く功少ないこともある。
バランスが大事ですよ。
まぁたかがシェルと言ったのは語弊があった。

しかしzshの現状を見るに、
setoptのオプションと、autoload -U compinit; compinit -uで可能なデフォルトの補完と
あとRPROMPT回りとか、そのあたりの設定方法はすぐ見つかるし、それだけの記述かなり便利になるが、
そこから先に進もうとすると、例えば独自の補完を書こうとすると、いきなり学習曲線が急になる。

それだけのコストはかけられないな、というのが本音。
>>61
激しく同意
>>61
>そこから先に進もうとすると、例えば独自の補完を書こうとすると、いきなり学習曲線が急になる。

それを分かち合うのがこのスレの目的。
みんなで知恵を絞りましょう。
>>61
compinit -u の -u って何?

To avoid these tests and make all files found be used without asking,  use the  option -u,
>>56
> > 自分は、入門bashみたいな本をじっくり読み、脇に本を置きながら、操作したり、設定したりするのが好きなのです。
> html2latex 経由とかで PDF 化して printout して製本すれば?

なーるほど。そうすれば、表紙をカモノハシにすることもできますからね。

>例えば独自の補完を書こうとすると、いきなり学習曲線が急になる。
それだけのコストはかけられないな、というのが本音。

激しく同意でした。でも、そっから先の世界を体験したいという気持ちもあります。


Writing Zsh Completion Functions
http://www.linux-mag.com/2002-07/power_01.html

わかりやすいよ。
>>67
これイイですね。
zsh の公式ページからリンクされている記事だね。たしかに読み易かった
英語だからわからないという...
オライリーだせ
oreily は英語だよ?
o'reilly
>>70
訳してみた.細かい訳文はヘンかもしれないけど,肝心の部分はまあ大丈夫だと思うよ.
http://www.ayu.ics.keio.ac.jp/~mukai/translate/write_zsh_functions.html
   n                n
 (ヨ )              ( E)
 / |    _、_     _、_    | ヽ
 \ \/( ,_ノ` )/( <_,` )ヽ/ / good job!!
   \(uu     /     uu)/
    |      ∧     /
>>72
> o'reilly
オライリーでした。
>>73
gj.
ところでemacsには
超有名なcalcというrpn関数電卓がすでにあるよ。
7773:04/04/10 11:44
>>76
若さ故の過ちということで許してくれ…….2年くらい見てもいなくて,存在も忘れかけてたよ.見てて悲しくなったので消すことにした.
ちなみに, zsh の tips もほとんど修正してないので,あんまり信用しすぎないようにしておくれ.
zshでできればいいと常々思っていること。

・java -jar 時に Manifest File に実行ファイルが設定されている.jarファイルだけの補完。
・シェルでのファイル名補完時にkogikuを用いて日本語をローマ字から補完。


無理だろうな無理だろうな無理だろうな・・・・
>>78
自分で補完関数勉強すれば可能でないの?

>>67, >>73 読んでみたけどいまいちわからん・・・

俺は↓みたいな補完関数書いて.zshrcに追加してるけど、zstyleなるものは別物なんだよね?

compctl -K _hoge hoge
function _hoge () {
reply=()
for fuga in $(piyo)
do
reply=($reply "$fuga" )
done
}
8073:04/04/11 15:33
>>79
compctl は obsolete な機能になっちゃったんですよ. man zshcompctl
の冒頭に書いてあります.個人的にも, compctl はわけわからなくて
好きじゃなかった.
代わりの compsys ってのは,デフォルトの設定が充実していて,しかも
autoload -U compinit
compinit
って実行すればその環境が手に入る.
処理を全部関数に投げるので,かなり柔軟な処理が可能なはずなんだけど,
その分書き方がわかりづらい. zshcompsys は途中まで読んだけど投げ出した.

compctl だと, kill で普段はプロセスIDを補完,%のあとジョブを補完,
ハイフンのあとはシグナル名を補完,なんて芸当は相当難しいでしょ.
cvs のサブコマンドとかね. cvs とかを使ってると zsh の compsys は
まじ便利ですよ.

zsh で、mailcap に書いてある拡張子を持つファイル(かつ、executableパー
ミッションがかかっているファイルだけだとなおよい)を指定するだけで、自
動的にそのアプリケーションで起動させることはできるでしょうか?

例えばプロンプトで、
zsh> hogehoge.pdf (改行)
と入力するだけで、xpdf hogehoge.pdf が起動するとか…
>>81
できるよ
>>81
君、過去スレ読んでないでしょ。実行権の部分はしらんが。
>>81
alias -s pdf=xpdf
とすれば、実行権限に、関係なく
zsh> ./あほ.pdf
で、xpdf あほ.pdf
path に、カレントディレクトリを加えておけば
zsh> あほ.pdf
で O.K.
>>81
実行権限の意味勘違いしてない?
>>84
PATHは関係ないですぜ。
前にも出たが http:// も識別可能になってるの?凄ぇ便利になるんだけど…
alias -s って新機能なのね。4.0.4 だと man に載ってなかった。
>>84
でもこの機能(過去ログによれば 4.2.0 の新機能)って,まだタブ補完ができない
んだよね.コマンド名+タブ補完の方が打鍵数が少ない.
>>89
補完できるぞ。
9189:04/04/12 14:41
>>90 あれほんとだ.すいませんガセネタでした.
4.2.0 にしてから、1文字の Makefile のターゲットが補完できなくなったっぽい。
まあ、そもそも 1文字で補完が必要か、ちう話やね・・・
>>93
make <tab>
ってやったときリストにも登らないってことでは?
やってみたらたしかにできないね
まあそもそも Makefile で1文字のターゲットを作るかというと……
9592=93:04/04/14 13:32
私はテストコードを t.c とかいう名前で作ることが良くあるんですよね。
でも、こんなの私だけなんでしょうね。

と思ってたのですが、さっき dietlibc のコード眺めてたら、t.c なんてのが・・・
9694:04/04/14 13:42
t.c だと3文字ターゲットになる気がするんだけど。

折角知ったので見てみましたが、パターンマッチのところで [^\/\t=]+: って
書いてあるので、この + を * に書き換えればオーケー(4個所あります)。実
験して確認しました。

ただ、なんで * じゃないかというのには何か理由があるんじゃないかな。何
かの make は1文字ターゲットを認識しないとか、そんな感じの理由。
>>96
t: t.c
$(CC) t.c -o t

ってな感じで 1文字ターゲットになるんです。

で、調べていただいて、どうもです。
やっぱ件の和訳ドキュメントとか読んで補完を勉強しといた方が良さそうだなあ。
>>89,90
補完できないんだけど..
何かの設定のせい? (PATH に . は入っています)
9990:04/04/16 23:05
漏れは PATH に . は入れてないからその差かな。
./<tab> ってやると補完されると思う。
>>99
漏れは PATH に . 入ってないけど <tab> だけで補完できるよ。
おれも>>100と同じ。
ただ、なにも入力していないときにtab押すとtabが入力される。
10298:04/04/19 15:49
compinit を使っていなかったからの模様。
autoload compinit; compinit で補完できるようになった。

compinit すると重そうなので使っていなかったんだが..
あまり変わらないかな。
zsh-4.2.0を使っています。
suffix alias で、 拡張子が tar.gz のとき tar zxvf を実行させたいのですが、
alias -s tar.gz='tar zxvf'
としても、
zsh: 許可がありません
となってしまいます。
何か方法はありますか?
>>103
おれは拡張子を見て展開するコマンドを作って、全部それにわりあ
てた。
alias -s gz=ta bz2=ta zip=ta lzh=ta tgz=ta tbz2=ta
>>104
> おれは拡張子を見て展開するコマンドを作って、
そんなコマンドなかったっけ。perl かなんかだったような。
alias -s html=w3m

これは基本。
しかし

^http --> w3m
^rtsp --> mplayer

にしたいんだ。
107103:04/04/25 15:05
>>104
拡張子が、 tar.gz か、 gz のみかどうかの判定を、
zsh じゃなくコマンドにやらせればいいのですね。
分かりました。
>>106
参考になるかな?
http://sugi.nemui.org/doc/zsh/
screen で zsh 使ってるときに
プロンプト直後で日本語(EUC-JP)を入力すると
1文字分(半角)左に表示がずれるのってなんで?

と思ったら zsh で日本語の表示がおかしくなる状況はそれだけじゃなかった。
まあいいや。
>>109
konsole とか、 Emacs の term とかだと、ごみが付いたり。
gnome-terminal だと、自分の環境では付かないが。
誰か、hack して。
fack ならしてやってもいいが、ただし相手を探してこい。
本当のことを暴露するのか
>>111
oh
miss spell
"fuck you"
114名無しさん@お腹いっぱい。:04/04/26 06:02
>>111
>>113
fack: 本当のことを言う
115111:04/04/26 13:00
faq you
4.2.0 にしたら global で関数名が補完されなくなったような。
あ、global って、 global っていうプログラム (コマンド) のことです。
global、あとlispを理解してくれればなあ。
ignore_eof が off で バッファが空のときに ^D(eof) 送ると exit するけど、
これって prefix あっても(例えば ^X^D とか) exit しますよね。
^X^D とかでは exit してほしくないので ignore_eof を on にして
^D にバインドされている widget を、バッファが空のとき exit するように
したいのだけど widget から exit する方法がわからん。
その方法あるいは代替案があれば教えて頂きたい。
例えばこんなのでいいのかな。しかし、たしかに ^X^D で抜けられるのは不便だな。
IGNORE_EOF は有効にしているから知らなかったけど。

delete-char-or-list-or-exit () {
if [ -z $BUFFER ]; then
BUFFER="exit"
zle accept-line
else
zle delete-char-or-list
fi
}
zle -N delete-char-or-list-or-exit
bindkey '^d' delete-char-or-list-or-exit
122120:04/04/27 01:54
ありがとうございます。
accept-line ですか。思いつかなかったな。
最終的には以下の2行を変更して使わせて頂きます。

if [[ -z $BUFFER ]]; then
> BUFFER=" exit"

[[ にしたのは特に意味無し。
" exit" は histignorespace を on にして。
123120:04/04/27 01:59
どうでもいいけどタブ表示残ってた。
BUFFER=" exit" ね。
A User's Guide to the Z-Shell
を読んでいるんですが、他に良いドキュメントありますか?
man zshall
UNIX USER の zsh の連載が書籍になってくれたらなあ。
zsh manual は、厳しすぎ。
英語の出来ない大学生には無理です。
英語できる小学生にも無理。
>>126
賛成+1
130名無しさん@Vim%Chalice:04/04/29 02:12
>>129
++
>>127
そうか? どのへんが?
>>131
英語で書かれてる辺りが。
まあ、英語でもロシア語でも同じくらい分からん、という人も世の中にはいるでしょ。
134名無しさん@お腹いっぱい。:04/04/29 19:04
これって普通のことでしょうか?

localhost|3025% echo -n test
localhost|3026%

わたしのtestはどこ?
locaの下
>>134
unsetopt promptcr
>>134自体はFAQなれど、
>>134-135
なぜか面白かった。
138名無しさん@お腹いっぱい。:04/04/29 20:46
便乗質問なんですが

% echo -n test
test%

となるのが嫌なんですが。
どういう場合でもプロンプトは新しい行におくことはできますか。



>>138
promptを2行にすれ。
140名無しさん@お腹いっぱい。:04/04/29 21:48
>>138
function precmd () {
print ""
}
あはっ
141名無しさん@お腹いっぱい。:04/04/29 22:05
伝わっているとおもうんだけど

% echo -n test
test
%

% echo test
test
%

が好みの動作です。


あなたがzshさんの立場だったとして、
どう区別してどう動作すればいいと思いますか?
伝わってるよ。あそ。
>>142
出力の最後が改行かそうでないか。
>>138
その質問を待っていた。
zsh/4.?.?/functions/promptnl がその答えだ。
zsh/4.2.0/functions/Misc/promptnl だったりもする。
使い方は最初の 2行にある。
個人的には中に書いてある return 0 以下の the other way を勧める。
違いは

sleep 2
echo echo
echo hello

を 1秒以内に打込めば解る。

私はこれを知らずに同じものを作ってしまった。
しかも両方。
>>145
good job!!!
^P と ^N に history-beginning-search-{backward,forward}-end をそれぞれ割り当て
ていたが、{up,down}-line-or-beginning-search というのを知ってそれに乗り換えた。

今まで、複数行の履歴を編集するときの行移動には矢印キーを使うか、割り当て直した
M-p や M-n を使っていたが、いまひとつ使いづらかった。ずっと 4.0.x を使っていた
から、4.2.0 にするまで存在に気付かなかったよ。4.1.x には結構前に入ってたみたいだね。

tcsh からの移行者にお薦め

autoload -U up-line-or-beginning-search
autoload -U down-line-or-beginning-search
zle -N up-line-or-beginning-search
zle -N down-line-or-beginning-search
bindkey "^P" up-line-or-beginning-search
bindkey "^N" down-line-or-beginning-search
たしか前に NetBSD で kill の pid 補完がうまくいかないとか
書かれていた気がするけど、あれはもう解決したのかな?
zsh> my_print hoge
としたとき、"h"と"o"と"g"と"e"の間に、 sleep 0.1 を挟みたいのですが、
どうやったら $1 から、文字をとりだせますか?
my_print () { for ((i=1;i<=$#1;i++)) { echo -n ${1[i]} ; sleep 0.1 } }
history-incremental-search-{forward,backward} の最中に
search string を BUFFER に転写する方法はありませんか?
152109:04/04/30 20:17
まあいいと言いつつ調べてみた。
プロンプト直後で 2文字( 2バイト )入力すると
1文字目と 2文字目の入力に対する出力はそれぞれ

a_ -> a ( _ はカーソル )
ab_ -> a^Hab ( ^H はバックスペース )

となり何故か 1文字目を出力し直している。
この 2バイトが日本語(EUC-JP)のとき
screen だと 1バイト目と 2バイト目の間に出力されるバックスペースの影響で
1文字分(半角)左に表示がずれるみたい。
set-mark-command などで選んだ region を反転させることは出来ますか?
常に反転させとくの?
なんだか見辛いような気が。
155153:04/05/02 17:56
Emacs でも region をハイライト出来るので、
Zsh にもやってほすぃ。
最近、bashからscreen+zshに移行してみた。
すげー快適だわ、まじで。
zshマンセー(´∀`)
Emacs でも $ふがほげ 出来るので、
Zsh にもやってほすぃ。

$ふがほげ にいろいろ代入してみよう。
158名無しさん@お腹いっぱい。:04/05/02 19:15
>>156
bashから移行を考えてますが、どんな点に気をつけたらいいでしょうか?
Emacs でもテトリス出来るので、
Zsh にもやってほすぃ。
>>159
意味がわからん。やればいいじゃん。
autoload -U tetris
M-x tetris
156ではないが
>>158
bashからなら移行しやすいんじゃないかな。
デフォルトではbashとは違うところがあるが、オプションで直せる。
man zshoptionsの<S>がついてるオプションを設定すればいい。
ちょっと古いが訳がある。
http://www.ayu.ics.keio.ac.jp/members/mukai/tips/zshoption.html
autoload -U hanoi
M-x hanoi
基本的に
autoload -U compinit; compinit
これだけやっとけば十分使えると思います。
後はおいおい setopt で自分好みに設定してくと。

あと、環境変数を EDITOR=vi
にしてる場合は、 bindkey -e
しないと vi キーバインドになるので注意。
Emacs には Eliza ちゃんがいるので、
Zsh にもやってほすぃ。
Emacs には〜 シリーズだと,for 文とかで複数行に
なるときに,自動でインデントしてくれたりとか,
文法上の特殊キーワード/記号類に自動的に色を付けてくれたり,
とかはあると嬉しいかも... (もしかして既にあったりします?)
>>110
日本語文字入力毎に redisplay するとか
bindkey 日本語文字 self-insert-and-redisplay
みたいに なんか点滅しそうだけど
よく考えたら日本語文字だけじゃダメだわ
169156:04/05/03 11:27
>158
Gentooしか使って無いから、
他のディストリの場合とかよく分かんねーけど、
移行自体は特に難しいこととか無かったよ?

それより、Webで検索しても、
日本語で初心者向けにまとめられた情報が少ないんで、
Googleでひっかかったblogとか片っ端から読んで試行錯誤しますた。

解説してるサイト見ると、
~/.zshに設定ファイル小分けにしてるのが多いけど、
めんどくさくて、.zshrcに全部ぶち込んでるw

とりあえず、俺はまだ左右プロンプト、キーバインド周り、
エイリアス、補完、ヒストリ、ゴミ箱あたりの設定をして
使ってる状態です。
zsh にゴミ箱機能ってあるん?
prompt の設定だけで、200行越えてます。
もっと強者の設定を見たいのですが、
誰か公開してくれませんか?
172156:04/05/03 13:08
>170
zshの機能じゃなくて、人様のblogからぱくったやつざんす。
混同するようなこと書いてスマンコ

function trash () {
 mv $* ~/.trash
}
alias rm='trash'
alias trash-look='ls -al ~/.trash-dir/ 2> /dev/null'
alias trash-clean='\rm -rf ~/.trash-dir/* 2> /dev/null'

>171
プロンプトだけで200行も書けるってのが、
ある意味すごいと思うが。
まず自分から公開するのが筋というものだろう。
「もっと強者」かどうか判断する事もできないし。
174170:04/05/03 14:09
>>172
りょうかーい。ちなみに俺は libtrash 使ってるんだけどちょっと大げさな気
がしないでもない。
おれはこんなのを使ってる。linux magazineを参考にした。
#!/usr/bin/env bash
set -f
gomi=$TMP/gomi
date=`date +%y%m%d`
mkdir -p $gomi/$date
gomi=$gomi/$date
for i
do
  file=`basename "$i"`
  if [ -e $gomi/"$file" ]; then
    echo rm "$file.$$"
    mv "$i" $gomi/"$file.$$"
  else
    mv "$i" $gomi
  fi
done
176175:04/05/03 14:26
linux worldだったかも。
SDしか立ち読みしてない…
>>175
よく分かりませんが i の範囲は任意ですか?
>>178
for i == for i in "$@"
面白そうだから公開してみる。
PROMPT の設定。

PROMPT は "host名 % "、
RPROMPT にはカレントディレクトリと、
あと screen 使ってる時は RPROMPT に $WINDOW(screen の番号)、
そうでない時は tty 番号を表示。
昔は色付けとかやってたけど、結局シンプルに戻した。

if [ "$TERM" = "dumb" -o "$TERM" = "emacs" ];then
PS1='%w %~ %% '
elif [ "$TERM" = "screen" -o "$TERM" = "screen-w" ];then
PROMPT='%m %% '
RPROMPT='[%~] %USc.$WINDOW%u'
else
PROMPT='%m %% '
RPROMPT='[%~] %U%l%u'
fi

200行のプロンプトというのをぜひ見てみたい。
みなさん、 .zshrc は何行ぐらいですか?
私は、200行もいってないなぁ(´∀`)
>>181
% wc -l .emacs
494 .emacs
% wc -l .zshrc
117 .zshrc

% wc -l .zshrc .zshenv .zlogout
152 .zshrc
158 .zshenv
30 .zlogout
漏れのプロンプトは、
PROMPTTTY=`tty | sed -e 's/^\/dev\///'`
PROMPT="[%B${cyan}%~${default}%b] <%B${PROMPTTTY}%b> %E
%b%# "
if [ `whoami` = root ]; then
RPROMPT="${red}%B%n${default}%b@${logreen}%m${default}%b"
else
RPROMPT="${loyellow}%n${default}%b@${logreen}%m${default}%b"
fi
SPROMPT="${red}Correct ${default}> "\''%r'\'' [%BY%bes %BN%bo %BA%bbort %BE%bdit] ? '

こんな感じ。 ${red} とかは
red="%{$(echo -n '\e[1;31m')%}"
とかで全部設定してる。 UNIX User の連載で、色の設定はちゃんと zsh に組
込まれてるって読んだことがあるけど、設定変えるの面倒がっているうちに忘
れてしまった……。

RPROMPT にパスを入れとくと、パスが長くなったときにうっとうしいと思う。
普通のプロンプトに入れて改行するのが楽で良いと思う。
% wc -l .zsh*
61073 .zsh-history
39 .zshenv
52 .zshrc
185名無しさん@お腹いっぱい。:04/05/03 20:38
.zshrcをスリムにしたいんですがどうしたらいいでしょう?
もう200000行を越えてzshの起動にやや時間がかかります。

>>185
zshrcが20万とはすごい。
13017 zhistory
10 zlogin
1 zlogout
1 zprofile
32 zshenv
279 zshrc
137 setenv (sh系共通の環境変数設定ファイル)
ちなみに
587 emacs
426 vimrc
おいおまいら
ttp://www.dotfiles.com/
にうpしれよ
ただし、しょーもないのは止めとけ
まぁここに行数だけ晒してるのはほとんどしょーもないのだろうけどな
やっぱ prefix alias って出来んのかな。
$ http://... って入力したら w3m で
$ ftp://... って入力したら ncftp とかやりたいんだけどなぁ。
>>188
試してないけど >>108 のは?
>>189
失礼。見逃してた。
ちと見てみる。ありがと。
setopt share_history
setopt extended_history
setopt hist_ignore_dups
setopt hist_ignore_all_dups
setopt hist_reduce_blanks
setopt hist_save_no_dups
この辺をやればダブりもなくなるし少なくならない?
192171:04/05/03 21:43
>> 187
しました。
>>192
マヂでキモッ。
2byte文字禁止なんだけど。この恥じ晒しめ!!
そりゃ 200 行越えるわな。
ワロタ
>>192
すてき。
つんく♂も入れてやれよ。
モーヲタキモッッ
>>171 の狂気を見抜けなかった >>187 の罪は重い。
200158:04/05/04 02:29
>>156,162,164 その他皆さん
ありがとう。bindkey -e ははまりました。
一瞬、私ごときが使ってはいけない神々のシェルなのかと思いました。
201名無しさん@お腹いっぱい。:04/05/04 02:45
>>200
171みたいに、なっちゃだめだよ。
タイトルバーがなんか淋しいんで動きのあるものを表示させてみた。
元ネタはttp://www.matatabi.or.jp/~matusita/kurukuru-MAR_kun/products/zsh.script
.zshrcに以下を追加してます。
#-------------------------------------
MAR_kun=(" (゜∀゜)"\
" (゜∀゜)"\
" キ( ゜∀)!!"\
"  キター(  ゜)!!!!"\
" キターー(  )--!!!!"\
" キタ━(゜ )━!!!!"\
" キタ━(∀゜ )━!!!!!"\
"キタ━━(゜∀゜)━━!!!!!"\
"キタ━━(゜∀゜)━━!!!!!")

MAR_kun_idx=0

function nowtime(){
while true; do
MAR_kun_idx=$[($MAR_kun_idx % $#MAR_kun) + 1];
echo -ne "\033]2; $MAR_kun[$MAR_kun_idx]\007";
usleep 40000;
done
}
#---------------------------------------
ちょっといいことがあった時などに、
$ nowtime &
とかしてバックグラウンドで動かして遊んでまつ。
203名無しさん@お腹いっぱい。:04/05/04 04:15
>>202
つい、
A(n+1) = A(n) % p + q
を解いてしまった。
A(n)は、p個の整数でしかあり得ないので、A(n) は、高々周期 p で、繰り返す。
受験時代が、懐かしいな。

ところで、配列の宣言で、バックスラッシュがあるのは何で?
while 中のセミコロンは何?
行頭に移る esc sequence ってどんなのだっけ?
その他,VT 制御(?)一覧みたいなのってどこかにある?
(例えば色指定だと 赤:'\033[0;31m' みたいなもの一覧)


>202 って毎回行頭に移ってくるくるしないとイミがなくね?
"\033]2" がそれなのかな? 手元の kterm では
そういう感じに動作してくれなかった.
>>204
man printf と↓で大体分かるよ。

ttp://www.emaillab.org/mutt/1.2/manual_ja-2.html
>>204
行頭に移るってのはないと思う。
man termcap
man terminfo
もしあったとして、terminfoでhomeという名前だったら
このように出力できる。
tput home
>>204
ほとんどの端末はこれでいけると思う。
tput cub 1000
>>204
ぼけてました。行頭に移るのはCRです。
tput cr
>>204
見つけたよ、エスケープシークエンス集。下のリンクは rxvt の配布物みたい。

ttp://cns.georgetown.edu/~Eric/howto/Xterm-Title/ctlseq2.txt
ttp://cns.georgetown.edu/~Eric/howto/Xterm-Title/xterm.seq
>204 ですが,手元の環境では "半角カナ" のせいで,うまく
titlebar に行かないみたいでした(\e]2で titlebar 送りですね).

で,>208 の tput cr で kterm 内で使えました.ありがとう.
211名無しさん@お腹いっぱい。:04/05/04 17:09
http://www.ono.org/software/zsh-euc/
のパッチを当てるとき、いちいち当てるファイル名を指定しなければならなかったのですが、
私だけでしょうか?
>>211
zshのディレクトリで
patch -p2 <zsh-4.2.0-euc-0.2.patch
>>212
-p2 か。
気付けなかった。

ところで、
zsh> $HOME
と入力して、list-expand すると、暴走します。
私だけでしょうか?
暴走しないな。
zsh -f でやったら、暴走しないので、設定の違いですね。
気が向いたら、原因を調べたいと思います。
>>211
それってどう変わんの?
FreeBSD で ports/shells/zsh+euc_hack 入れてみたけど違いがわからん
forward-char とかが変わるんだよね?
ports の euc_hack は効いてないのかな
217名無しさん@お腹いっぱい。:04/05/05 01:59
例えば、日本語一文字を消すのに backward-delete-char 一回で O.K.
patch を当てないと二回必要でした。
Suffix Aliases ってウィンドウズの関連づけみたいなもん?
ウィンドウズの関連づけが、分かりません。
220202:04/05/05 13:26
>>204

遅レスですが、VT 制御(?)一覧みたいなの?はこれみて勉強しました。
http://ayapin.film.s.dendai.ac.jp/~matuda/TeX/PDF/9th.pdf

>>209
なんかリンク切れみたいです。。
>>220
済みません。ブラウザの URL エンコーディングがうまく行ってないみたいです。
~Eric じゃなくて ~ric でした。中身はその PDF にも書かれている、rxvt の配布物です。

ttp://cns.georgetown.edu/~ric/howto/Xterm-Title/ctlseq2.txt
ttp://cns.georgetown.edu/~ric/howto/Xterm-Title/xterm.seq
222216:04/05/05 19:50
>>217
それが変わらないんだよね。2回のままで。
LANG=ja_JP.eucJP
LC_ALL=ja_JP.eucJP
でやってみたんだけど。
特に困らないからいいけど。
>>222
tar ボール から、patch を当ててやってみよう!!
まぁ、特に困らないからいいけど。
       /ヽ      |   i     i ヽ   \   \ o    *
     __/  ヽ_ /  |   |     |  \   ヽ   ヽ     .   . 
     \     /   /   /    /     ヽ    |    |+
.       | ∧  |    /   /    /      |   |   |. .  .
      レ  \|  /  /   /      |  |   | 。. ★  ☆
        |   |  |                        |       。.    .
         |   |  |     /\           /\    |   . ☆  +
.        |   |  |   ..::::::::::::...                 ..:::::::... | + 
       |   |  | *        ー――――       /    . .   ☆
      /   / γ´~⌒ヽ.                     /☆ . *  +.  .
     /  / /      ヽ                /⌒ヽ、
:~>

という PROMPT にしたのですが、ls と打っても PROMPT で見えなくなってしまいます。
この場合、どんな解決策があるのでしょうか?
とりあえずPROMPTを
      / ̄ ̄ ̄ ̄ ̄ ̄\
    /             \
   /                  ヽ 
    l:::::::::.                  | 
    |::::::::::   (●)     (●)   | 
   |:::::::::::::::::   \___/     | 
    ヽ:::::::::::::::::::.  \/     ノ 
:~>
に変更する。
端末を縦横に広げる
ls && sleep 10
mkfifo /tmp/ls.result とかしてから端末を2つ用意する。
端末1 $ ls > /tmp/ls.result
端末2 $ while true; do tail -f /tmp/ls.result 2>/dev/null; done
ls | less
PROMPT=''
おまいらイイ奴等ですね。
何も入力されてないときに、TAB を押すと TAB が、挿入されますが、
例えば、expand-or-complete を他の key に割り当てると、
何も入力されてないときに、その key を押しても、何もないところからちゃんと補完されます。

この動作はどこから来るもので、そして、何も入力されてないときにも、^I で、割り当てられた
expand-or-complete を実行させるにはどうすればよいのでしょう?
何も入力されてないときに補完なんかする?
5000ぐらい候補がでるけど。
234232:04/05/07 08:40
tcsh を使ってる友人が、TAB が挿入されるから zsh は、だめだ。
と、言っていたので、ぜひ、出来ることを示したいのです。

ちなみに、学校の Solaris では、その5000個の候補を表示するのに 10 秒位かかります。
zstyle ":completion:*" insert-tab no
とかかな。コンテキストをもっと絞ったほうがいいのかもしれんが
/usr/local/share/examples/zsh/zshrc にある
zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns '*?.o' '*?.c~' \
'*?.old' '*?.pro'
の '*?.c~' の部分って効いてないような。
http://homepage1.nifty.com/blankspace/zsh/zsh.html#abbrev
を使っていますが、shell を起動してしばらく使っていると、[space] を押すと、

my-expand-abbrev:2: job table full

と、なってしまいます。
どなたか、解決法をご存じでしょうか?
ご存じないけど、2 ってのは変わらないの?
あと、そのときの jobs の結果は?
239237:04/05/12 00:37
数字の部分は、さっきは、最初1回だけ 3 で、そのあとは、ずっと 2 でした。
jobs の結果は、普段と同じです。
manの補完をするためには何をすればいい?
autoload -U compinit; compinit
をやったがmanの補完をしてくれない。
RH9で4.2.0を使っている。
MANPATHはこのようになっている。
MANPATH=$HOME/man:/usr/share/man:
基本的には autoload -U compinit; compinit だけでできるはずなので、設定
がちゃんとしているか確認した方がいいと思います。

1. 他のコマンドで補完が効くか確認する
2. fpath の値を調べる( echo $fpath )
${prefix}/share/zsh/4.2.0/function になっていないとダウトの可能性高し。
3. fpath のところにシェル関数がちゃんとあることを確認。
4. _man があるかどうか調べる( which _man )
なんかずらずらとシェルコマンド(シェル関数)が出てきたら正解
5. 正しく man が _man を呼んでいるかどうか調べる

問題は 5. だと思うんだけど、確認の仕方はちとわからんです。

あとは、 .zcompdump があれば、その中に
man _man
という行があるか確認する。ないと、ダメかも。その場合は .zcompdump を削
除して zsh 再起動すると直ると思う。
>>241
ありがとうございます。
alias man=w3mmanが原因でした。
aliasしちゃうとだめなんですか?
あ、俺も今まで man の補完ができねーと思ってたのだが、
alias man=jman としてたのが原因だったのか。

alias man=... してても補完できる方法があれば俺も知りたいです。
>>242-243 たぶん、 alias の元のコマンドを見て判断しているからなのだと
思います。試してないのですが、man 読んだ感じでは
setopt COMPLETE_ALIASES を設定すると alias を補完時に展開しないようです。

が、そもそも、 w3mman や jman を普通に使う場合でも _man を呼ぶように工
夫する方が方向性としては正しい気がします。 ${fpath}/_man の最初の行に
w3mman と jman を加えるだけなので、そちらをやってみてはいかがでしょうか。
245242:04/05/12 16:02
>>244
どうも。COMPLETE_ALIASESでできました。
246243:04/05/12 16:14
>>244
俺は setopt COMPLETE_ALIASES だと困ってしまうことの方が多そうなので、
後者の方でやってみたら、うまくいきました。
ありがとうございました。
~/.zshrc で compdef _man w3mman
248243:04/05/12 16:32
>>247
おお、それでいけました。ありがとうです。
>>237
余計なお世話だが space 押す毎に sed 呼ぶのは負荷が大きいような。

my-expand-abbrev () {
local MATCH
LBUFFER=${LBUFFER%%(#m)[_a-zA-Z0-9]#}
LBUFFER+=${myabbrev[$MATCH]:-$MATCH}
zle self-insert
}

とすると軽くなると思う人がいる。EXTENDED_GLOB が要るけど。
local MATCH=
の方がいいかも。
これで job なんたらも直るかも。直らないか。
>>243
jman なら

% diff site-functions/_jman 4.2.0/functions/_man
1c1
< #compdef jman
---
> #compdef man apropos whatis
19d18
< _manpath=( ${^_manpath}{,/${LANG}}(N) )
23c22
< _manpath=( /usr/man(-/) /(opt|usr)/(dt|share|X11R6|pkg|local)/(cat|)man(-/) )
---
> _manpath=( /usr/man(-/) /(opt|usr)/(dt|share|X11R6|local)/(cat|)man(-/) )

で ja only の page も LANG=ja で補完できる。
と思ったけど、これじゃ man 直下に ja_JP.EUC と ja_JP.eucJP があったりするとだめだね。
jman だから _manpath=( ${^_manpath}{,/ja*}(N) ) でいいのかな?よくないか。
251249:04/05/14 01:56
zle self-insert は勘違いだった。
key bind が何であれ空白を追加すべきか。
g++ で補完しようとすると、*.c 、*.cc だけ補完されて、*.cpp は、補完されません。
cpp も補完されるようにするには、どうすれば良いですか?
253名無しさん@お腹いっぱい。:04/05/15 14:04
PROMPT="%B%U$USER@%m%%%b%u "
RPROMPT="[%~]"

これは確かこのスレの初期に晒されたものだと思うのですが
気に入って数年間使っていました。しかし、 C を勉強する
ようになってから、思わぬ不具合に遭遇してしまいました。

#include <stdio.h>
main(){
printf("Hello, ZSH")
}

のように、改行コードの入っていないプログラムを実行すると
何も表示されないのです。

#include <stdio.h>
main(){
printf("Hello, ZSH\n")
}
のように改行コードを入れれば Hello, ZSH と表示されます。
csh で試したところ、この問題はでないので、.zshrc のどこ
かが関係していると思うのですが、誰か検討付く方はいませんか?
>>254
ありがとう。
しかも;が抜けていた…。ショボーソ
>>253
そんなプログラム書くな、というzshの警告です。
これだけ頻出だと、テンプレに入れとくべきだな。>改行無し出力消失問題
>>252
いま見てみたけど
share/zsh/4.2.0/functions/_gcc の 16行目あたりじゃないかな
試してないけど
>>258
ありがとうございました。
16 行目に cpp を追加したら、うまくいきました。

# というか、C++ の拡張子で、cpp はマイナーなのかな?
こういうとき、配布物を直接いじらずに zstyle を使うのがスマートなんだろうが、
正直言ってよくわからん
>>252,259です。
zstyle ':completion:*:*:g++:*' file-patterns '*.(cpp|c++|c|C):c++\ files *(-/):directories'
とか書いてみたのですが、正しいのかどうか分かりません。
誰か、zstyle が分かるハカー居ませんか?
>>260
配布物いじるとバージョンアップのとき面倒だよね。
zshrcで済むならそっちに越したことはない。
263258:04/05/16 00:11
260 読んで色色試してたら 261 が書き込まれてた
一時間もたってたのか
とりあえず試した結果としては
zstyle ':completion:*:*:g++:argument-rest:*' file-patterns '%p|*.cpp(-.):globbed-files *(-/):directories' '*:all-files'
でいいみたい
globbed-files と directories を空白でつなげることに気付くまで時間がかかった
261 を早く読んでればよかったよ
_complete_help の結果に近い、最小の修正だと思うがどうか
264261:04/05/16 01:38
>>263
良いですね。
乙ですた。
-o の補完候補にはなってほしくないだろうから、>>263 に倣えば
zstyle ':completion:*:*:g++:option-o-1:*' file-patterns '%p~*.cpp(-.):globbed-files *(-/):directories' '*:all-files'
とでもすればいいのかな
うーん何をやってるのか全然分からん
いまさらながら
zstyle ':completion:*:*:g++:argument-rest:*' file-patterns '%p|*.cpp(-.):globbed-files %p:directories' '%p:all-files'
の方がいいかと思い試してみたがうまくいかない。なんで? %p の意味を勘違いしてるのかな。
まあ * で問題ないけど。
ついでに、これ試してるときに初めて _next_tags の使い方を知った。これと似た機能で上の場合に
globbed-files と directories の一方を選択するのないかな?
と思ったけど多分ないね。それより globbed-files、directories の順でソートするんはないかな。
file-sort に tag とか file-type とかないみたいだし、無理かな。
調べてみたら %p の意味を勘違いしていた。
* でいいみたい。
バックグラウンドで、running な job を suspended にするコマンドを、教えてください。
>>269
kill
コマンドを補完した後、スペースが付いている状態で
% foobar _
パイプに渡すために '|' をタイプすると空白が勝手に消えてしまいます。
% foobar|
空白があった方が見やすいので、空白を削除しないでほしいのですが、
どうするとできるでしょうか。
(パイプを多段で使うことはよくあるので、コマンドの前後には空白が
あってほしいのです。)
消える方がおかしいのではないか
ああ、一意に補完できたときはそんな風になるみたいだな。
| を入れる前にスペースを押せばいいようだが…
コマンドだけじゃなくて、ファイルでもなりますね。
スペース押せばいいんだけど、既にスペースが挿入されている(ように見える)
所にスペースをタイプするのは気持ち悪い感じ。
何かのオプション設定かと思ったんですが、違うのかな。
余計なスペースがある方が嫌だという主義なんじゃないかな。
同様なものにディレクトリ末尾の/や{}中の,などがありますね。
たぶん zstyle でなんとかできるんだろうけど、漏れにはわからないっす。
| 以外にも & も似たような動作をするようだね。ディレクトリ末尾の/はオプションで
制御できるし、この動作も zstyle で何とかできそうだと思ったが、どうも適当なのが
見付からない。賢くないやり方だとこんなのか。

self-insert-pipe () {
if [[ $LASTWIDGET == *complete* && $LBUFFER[$CURSOR] == " " ]]; then
zle -U ' |'
else
zle .self-insert
fi
}
zle -N self-insert-pipe
bindkey '|' self-insert-pipe
ちょい前にbashからzshに移行したんですが
パスの入力中などにAlt+BackSpaceすると
ディレクトリ単位でさくさく消せていたのが、
パス全体が一括で消されるようになってしまいました。

$ /var/www/hoge/fuga ←ここでAlt+BSすると
$ /var/www/hoge ←こうなっていたのが
$ ←こうなってしまう

どうすればbashの時と同じ挙動に出来るでしょうか?
ちなみにOSはGentooっす。
>>277
おれはこうやってる

bindkey -e
tcsh-backward-delete-word () {
  local WORDCHARS=
    zle backward-delete-word
}
zle -N tcsh-backward-delete-word
bindkey '^W' tcsh-backward-delete-word
>>277
C-w を使うとか。まあ慣れてるバインドが一番かもしれんけど。
>278
ありがとうございます。
Ctrl+Wで期待通りの動作になりました。
出来れば、Alt+BSでも同様にしたいのですが
その場合、"^W"ではなくどう書けばいいんでしょうか?
度々質問ばかりですいません・・
>>280
> 出来れば、Alt+BSでも同様にしたいのですが

bindkey '^[^H' tcsh-backward-delete-word
>>277
漏れのだと Alt+BS でその動作になるけどなあ(Alt+BSなんて初めて知ったけど)。
WORDCHARS を設定すればそれで良いんじゃないの?
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
283277=280:04/05/18 13:09
>281
うおお、ばっちし完璧に望む動作になりますた。
感謝感激っす!まじでアリガトー
Alt じゃなくて実際には Meta だな
>>284
「実際」って?
本当にaltとBSを押してるんだったら激しく不便なキーバインドだ。
287282:04/05/18 14:52
>>282 自己レス。ターミナルが Alt を Meta として
通してくれるやつ(mlterm)だからですた。
^R 押したときに
補完中で補完候補数が 3 以上のときに reverse-menu-complete
それ以外で history-incremental-search-backward を発動させるには
どうすりゃいいかな。
$compstate[nmatches] を見てんだけど
completion widget の completer から history-incremental-search-backward 起こすと
widget名:zle:6: widgets can only be called when ZLE is active
とか言われるし。
zle -C の使い方もイマイチわからんし。
補完中の keymap があればいいんだけど (いや、あってもだめかな)
最終的には undo,redo の直後も redo にするつもりだけど。
>>276
上手くいきました。Thx!
しかし、マニアックだなぁ..。
>>286
& や ; にも対処するなら

self-insert-purely () {
LBUFFER+=$KEYS[-1]
}
zle -N self-insert self-insert-purely

でもいいと思うよ。man のパクりだけど。

ところで、中で widget よぶなら
zle .self-insert
みたいに special widget 使った方がいいのかな?
>>290
すげえ、よく読んでいるな…

ただ、例えば {foo,bao,hoge, と hoge が一意に補完できると末尾にコンマを
附加するけど、ここで } を入力するとコンマを消してくれる。一連のお節介の
うち、これだけは気に入っている(w

自分は安全のために special widget で指定することが多いけど、どっちでも
変わりがないのが大半だよね
>>291
man に書いてあるのは recursive-edit の項にある self-insert-ucase だけどね。

コンマとかに関しては確かにそうだね。ほかにもまずいことがありそう。
安直すぎたか。
% i=12345
% echo ${i##(1|12)}
2345

正しくは 345 になるべきだと思うんだが、これってバグ?
下のはいいみたいだけど

% echo ${i##(12|1)}
345
% echo ${i%%(45|5)}
123
% echo ${i%%(5|45)}
123
.zshrc に、
function foo () {
function bar () {
hogehoge
}
hogehoge
}

とした場合に、bar 関数を、呼び出せるのは、 foo 関数だけにするのは、どうすれば良いのでしょう?
コマンドラインや、他の関数から、bar を呼び出せないようにしたいのです。
おまいらもっとwikiに書いてください。
http://hiki.ex-machina.jp/zsh/
>>293
それって正規表現の最左最長マッチの原則が破れる例とそっくりだね。
でも %% がうまく行ってるのは不思議。
何だかんだ言って、I love zsh. age
Zsh > Emacs
何だかんだ言って、I love 歯ブラシ. age
歯ブラシ > 免許書
>>294
function foo () {
(
function bar () {
hogehoge
}
hogehoge
)
}
しか思いつかん。ほかには特にないんでないかな。
300名無しさん@お腹いっぱい。:04/05/23 17:41
>>299
望みの、動作になりました。
ありがとうございました。
TAB を押すときに、
すでに何か入力されていたら、expand-or-complete
何も入力されていなかったら、他のコマンド、
というようなことは、可能ですか?
もし、可能なら方法を教えてください。
>>301
expand-or-complete-or-other-command () { [~]
if [[ -z $BUFFER ]]; then
zle -I
echo eraihito
else
zle expand-or-complete
fi
}
zle -N expand-or-complete-or-other-command
bindkey "^I" expand-or-complete-or-other-command
とか
303302:04/05/24 23:02
RPROMPT が入ってた。 expand-or-complete-or-other-command () { [~]
の [~] はなし
w3m の補完だけをオフにしたいのですが,設定ファイル
で何とかする方法はありますか?

# 現在は _w3m を削除して対処してます
>>304
compdef _nothing w3m
ってことかな
306名無しさん@Vim%Chalice:04/05/26 02:15
あるディレクトリに aaa bbb ccc というファイルがあって
aaa 以外を消したい時など、
   rm -f *~aaa
とかやるんですが、
   rm -f *~a
まで打ったところでタブを押すとaaaが補完されるのはどうすればよいですか?

現状だと bbb ccc が候補に出てきます。
# つまり既に *~a を解釈して ファイル名がa以外から始まるものを表示してるんでしょうが
>>306
多分そう。
rm -f *~a
から _complete_help (多分 "^Xh") を呼んでみると _expand が
呼ばれているらしいことがわかる。
zstyle ':completion:*' glob false
とすると、その効果は消え *~a をファイル名として補完を試みる。
この状態で _files の代わりに適切なものがあればいい。と思う。
補完候補に、たとえば、hoge-foo と hoge-bar と hoge-baz があって、
"hoge-foo" まで入力したあと、
やっぱやめた、ってことで、一意になるぎりぎりの "hoge-" まで戻す、
ということはできないでしょうか?
^H^H^H
control-/
でどうだろ
311308:04/05/26 13:22
>>309
そ、そんな・・・

>>310
アプローチは違いますけれども、やりたいことに割と近いようです。
とりあえず ^/ ^/ でいくことにします。ありがとうございました。
このディレクトリに cd したら○○を実行する、みたいなフックが書けたらなあ。
precmd を使えばそんな難しくないような
>>313
なるほど。 man の precmd を見てみたら、chpwd つーのもあるのですね。
このへんでなんとかなりそうです。
ありがとうございます。
ありゃ chpwd のつもりだったのに実際に書いたのは precmd だった(w
316名無しさん@お腹いっぱい。:04/05/26 22:06
みんなの .zshrc が視れるところありますか?
>316
勝手に覗かれても困ります
>>316
>>187 が誘うも、最初からしてアレだったため、後続が発生せず、といっ
たところが現状のような気がします。
>>318
久しぶりに . に逝ったら未だ輝いてるね(w
日本の恥だ。IP抜かれてだいたい知れ渡ってるだろうな…
せめてアニヲタ全開のだったらジャパニメーションは(ry
>>308
zle backward-delete-word
zle complete-word
ではだめかな
321316:04/05/26 23:37
http://www.dotfiles.com/
を視てきましたが、
みなさん、こんな人なのですか?
という事にしとけば?
323名無しさん@お腹いっぱい。:04/05/27 01:02
zshの本ってないの?オライリーのbash本みたいな奴
>>323
m9(´∀`)おまいが書け!
UU の連載絶対本になると思ったけどならないね。
本にするならもうちょっといろいろ載せて欲しいところ。
ちょっとくらい高くてもいいから。
>>319
奴のせいで「日本語 (シフト JIS)」になってしまっとる。
同じ日本人として恥ずかしいよ。
別にいいんじゃない? なんか過疎サイトっぽいし。
スペイン語とかフランス語のうpってるヤシもいるし、日本語だからって卑屈になることはない。
CygwinやX68kで、DOSコマンドを使いたい時に
% alias dir='cmd.exe /c dir'
のようにエイリアスしているんですが、これだとパスがスラッシュ区切りの
ため、
% dir /tmp
のように使うことができません。
$foo:s%/%\\%
のようにすれば / を \ に置換できるかと最初思ったのですが、\には
置換できないようなのと、:s/// 記法は全置換してくれない感じです
($foo:s/foo/bar/g は単に g がついて出力されてしまう)。
しょうがないので今は sed で置換しているんですが、
dir などは頻繁に使うコマンドなので、zsh だけで何とかする方法はないでしょうか。
zsh入門 パート2
http://pc3.2ch.net/test/read.cgi/unix/1036324177/

を読もうとしましたが、navi2ch で、checking file...moved
となって、読めませんでした。
kita でも読めませんでした。どうすれば、読めますか?
>>329
s:/l/r/g じゃなくて gs:/l/r だよ。ただ、バックスラッシュの扱いが特殊なので
${foo:gs%/%\\\\\\\\} にしないと駄目かな。

それよりも //pat/rep の方が短くすむし判りやすいか。
${foo//\//\\\\}
>>329
s:/l/r/g じゃなくて gs:/l/r だよ。ただ、バックスラッシュの扱いが特殊なので
${foo:gs%/%\\\\\\\\} にしないと駄目かな。

それよりも //pat/rep の方が短くすむし判りやすいか。
${foo//\//\\\\}
kill-word-match とかって kill-word とかと違って
MARK の前で呼んだりすると MARK を置き去りにするよね。
find の -name の直後だけ noglob にするとかってできないよね?
4.2.0 から scp の補完で使う _remote_files がまともに動かないね
_ssh の 9行目がおかしいようす
ls -d1F の後の ${(Q)PREFIX%%[^./][^/]#}\* の部分でクォートが足りないのかね
${(Q)PREFIX%%[^./][^/]#}'\*' にすればいいか?
_ssh を変えずに何とかできないか
独り言は、zsh-workers でおながいします。
>>333,334
Thanks! 長年の問題が解消されました。
cygwin では、
start () { ${1//\//\\} }
と定義しておくと、start /bin とか start . とかできていい感じ。
ただ、パスに空白が含まれていると上手くいかないみたいなんで、もう少し
直す必要があると思う。
start () { cmd /c start ${1//\//\\} }
でした。何言ってんだ..。
自己レスだけど、//pat/rep 記法は新しい zsh でないとダメみたいですね。
start () { cmd /c start $*:gs%/%\\\\ }
は最新でなくても大丈夫でした。

X68000の zsh 2.5.03 でもOKでしたが、やはりちょっとマイナーな記法らしく、
$* が空のときに $*:gs が空にならないので、簡単な場合分けをする
必要がありました。
# いまどきX68ユーザーな人はいないか..
342341:04/05/29 16:41
ちなみに、Win2kで空白を含んだディレクトリをうまく
扱えないのは、zsh ではなくて Windows の問題な感じ。

C:\> cd "C:\Program Files" はうまく動くのに、
C:\> start "C:\Program Files" ではエクスプローラが開かない。
C:\> start C:\progra~1
ではうまくいくので、パスを8+3形式に変換するコマンドがあれば
うまく行きそうですが..
以上報告でした。
343337:04/05/29 17:15
できた。こんなかんじ
zstyle ':completion:*:complete:scp:argument-rest:files' command -noglob
>>341
多分、こうじゃないの?
start () { cmd /c start "${1//\//\\}" }
>>344
'closing brace expected.' なんてことを言われます。
前のバージョンでは対応してないみたいですね。
>>345
あー、じゃあ、これは?
start () { cmd /c start "$@:gs%/%\\\\" }
function accept-line-or-browse () {
case $BUFFER in
http*)
BUFFER="w3m $BUFFER"
zle accept-line
;;
*)
zle accept-line
esac
}
zle -N accept-line-or-browse
bindkey "^M" accept-line-or-browse

とかやってますが、何か方法ありますか?
>>347 108みたいなの?
349名無しさん@お腹いっぱい。:04/06/02 04:25
標準出力、標準エラーによって、文字の色を変えたいのですが、
何か方法ありますか?
>>349
前スレの876
351名無しさん@お腹いっぱい。:04/06/02 18:34
前スレ
http://mimizun.mine.nu:81/log/2ch/unix/pc.2ch.net/unix/kako/1036/10363/1036324177.dat
を見ましたが、800までしかありません。

どうすればよいのでしょう?
あきらめれば?
zsh 4.2.0 で man zshcompsys の 2169行目にある
zstyle ':completion:*' matcher-list '' '+m{a-Z}={A-Z}' '+m{A-Z}={a-z}'

zstyle ':completion:*' matcher-list '' '+m:{a-z}={A-Z}' '+m:{A-Z}={a-z}'
の間違いでしょうか?
追加質問。
man zshcompsys にある
zstyle ':completion:*:foo:*' matcher-list 'm:{a-zA-Z}={A-Za-z} r:|[-_./]=* r:|=*'
という例の最後の r:|=* はどういう意味があるのか教えて下さい。
なくても変わらないような気がしますが。
>>342
cygpath --windows --short-name
>>354
COMPLETE_IN_WORD が on で、文字列の中途でも補完させるために必要
357354:04/06/03 21:39
>>356
なるほど。これってデフォルトでは無効ですよね。
>>356
それってどんなときに使いますか
>>357
デフォルトでは無効だね。

>>358
自分も >>354 と同じような設定にしているけど、実際のところ滅多にそういう局面に
ならないね。

例えば、COMPLETE_IN_WORD が有効で、カレントディレクトリに
aiueo-akasatana、aiueo-hamayarawa
というファイルがあるとする。また、
zstyle ':completion:*:' matcher-list 'r:|[-_./]=* r:|=*'
とする。ここで、a-a や a-h と打った時点で Tab を押せば一意に補完できる。

ところが、誤って a-t と打った場合ここで Tab を押しても補完はできない。このとき、
ひとつカーソルを戻して Tab を押せば aiueo-akasatana に補完してくれる。
a を入力してから Tab を押してもよいが。

しかし、
zstyle ':completion:*:' matcher-list 'r:|[-_./]=*'
だと、この手の補完ができない。t を削除してから何なりする必要がある。

一番ありそうなのは、ロングオプション(--foo-bar)の補完のときだろうか。
デフォルトで 'r:|[_-]=* r:|=*' 相当の設定になっているようだ。
% iii="\ a"
% printf "%s_%s_\n" "${(z)iii}"
\ a__
% printf "%s_%s_\n" ${(z)iii}
\ _a_

となる理由が解りません。
expand-word すると
"${(z)iii}" --> \\\ a
${(z)iii} --> \\\ a
となり ${(z)iii} の場合に a の前に一つ余計にスペースが付いて
いるような気がします。どう解釈すれば良いのでしょうか。
>>360
いや、その動作は正しい。(z)は「シェルの単語を区切るパース」だから、\の
あとのスペースは単語区切りとみなさない。しかし、評価された結果から\を
取り除いてはいないため、'\ a' という文字列とみなされる(クォートを外す
場合には ${(Q)${(z)foo}}と書けとマニュアルにあるね)。

やりたい動作は、最初の %s に空文字列、二番目に a が入る挙動? なら、
% iii="\ a"
% printf "%s_%s_\n" ${(Q)${(z)iii}}
_a_
で、どうでしょ。 a の前にスペースが2つあるのがミソです。
362360:04/06/05 00:16
>>361
すみません。ここはスペースが削られるんですね。360 は不正確でした。
結果の部分のスペースを ~ で表わすと

% printf "%s_%s_\n" "${(z)iii}"
\~a__
% printf "%s_%s_\n" ${(z)iii}
\~_a_
"${(z)iii}" --> \\\~a
${(z)iii} --> \\\~~a

となります。
363361:04/06/05 00:32
すまん、そもそもの前提が間違えていた。漏れの環境だと、
% iii="\ a"
% printf "%s_%s_\n" ${(z)iii}
\ a__
になるよ。
364360:04/06/05 00:45
>>363
環境によるということで調べたところ SH_WORD_SPLIT を on から off に
すると "${(z)iii}" と ${(z)iii} の結果が同じになりました。
SH_WORD_SPLIT ってどんなときに有用?
>>365
% hoge='a b c'
% setopt SH_WORD_SPLIT
% for i in ${hoge}; echo $i
a
b
c
% unsetopt SH_WORD_SPLIT
% for i in ${hoge}; echo $i
a b c

なので、こういうのをやるときは便利かも。あとは Bourne shell のスクリプ
トを動かしたいときとか。 SH_WORD_SPLIT が off のときは、↑のように
${(z)hoge} で実現はできる。
>>366
${=hoge} のような
コマンドの保管させようとしてるんですけど、hoge aみたな
-から始まらないオプションがあるときって_argumentsじゃ
無理で_regex_argumentsを使わないと無理なんでしょうか?
_tar みると _values 使ってるよね。使い方しらんけど
いきおいあまってこんなことをしてしまった
kaka () {
emulate -L zsh
local i j in=$PREFIX$SUFFIX
local -a kaki yomi
kaki=($(echo *)) yomi=($(echo $kaki|kakasi -Ja -Ha -Ka))
for ((i=1; i<=$#kaki; i++)) do
if [[ $yomi[i] = $in* ]]
then
echo m:$in=$kaki[i]
fi
done
}
zstyle -e ':completion:*' matcher-list 'reply=( "$(kaka)" )'
migemo っぽいんができたけど使わないなあ
for のあたりとかもっと簡潔に書けないかな
てゆーか >>353 はどうですか、間違いですか
言うまでもなく間違い
それをきいて安心
setopt xtrace とか function のエラーメッセージで出てくる
+preexec:5> echo
とか
_path_files:341: invalid pattern character `('
の数字って LINENO なんですよね?
これはソースの行番号とは対応してないわけで、
ソース見てもどこのことか分かりにくいんですけど、
何か有効な参照法はありませんか?
>>370
4行目は
kaki=(*) yomi=($(echo $kaki|kakasi -Ja -Ha -Ka))
でいい。それと hoge/ 以下は補完できない( ./ 以下だけ )。
hoge/ とか hoge/fuga/ 以下もできるようにするには
各段のファイル名も kaki に含める必要がある。
_make みると ports の target って fetch とか 14項目を直接指定してるのね
なんで clean と distclean が入ってないのよ
match-words-by-style は word-style shell で word-chars ありってのはなしなのか〜
378名無しさん@お腹いっぱい。:04/06/08 09:36
viキーバインドでコマンドの履歴をたどるとき、
カーソルを行の先頭に来るようにしたいのですが、
どうすればいいのでしょう?
w3m コマンドなどの引数に '?' を含む URL をクオートせずにあたえようとすると、
zsh がファイル名のワイルドカードマッチしようとして怒られるのですが、
w3m コマンドのときにはワイルドカードマッチしない、みたいなのはできますか?
>>379
alias w3m='noglob w3m'
url-quote-magic
>>378
- が vi-up-line-or-history に bind されてる。 + も同様。
first non-blank character にとぶんであって行頭ではないけど。
>>380, >>381
どっちも良さそうですね。ありがとうございました。
384名無しさん@お腹いっぱい。:04/06/08 19:03
>>382
bindkey -a 'j' vi-down-line-or-history
bindkey -a 'k' vi-up-line-or-history
で出来ました。
ぬるぽ
predict-onな状態の時に,補完候補の一覧だけを表示させて
挿入はTABを押したときのみ…って動作にしたいんだけど,
どのへんをいじればいいのかな?
>>386
zle complete-word ってところを zle list-choices にして
zle .history-beginning-search-backward のまわりを無効にすればよさげ

zle -F って何?
だれか vim の i_^O みたいなのつくった人おる?
っていうかどうやりゃできるかな
>>388
そんなマニアックな機能いるのか(w
>>388
どんな昨日だい?
>>387
thanx.
スクリプト言語的なzshの機能をあんまり知らなかったんで
最初面食らったけど,希望通りの動作にできますた.
zshのスゴさを再認識したyo.
>>390
vim help より
execute one command, return to Insert mode
えー、つまり zle でいえば
発動後に入力された key stroke に map されてる vicmd の widget を
一回だけ実行する。みたいな。
例えば viins/emacs から始まって ^O(bind されてる key) f A 1 2 と入力して
zzzzzzAbbbbb (cursor は先頭)
から
zzzzzz12Abbbbb (cursor は 2 の後)
となるような機能です。この場合 f A がその機能によって処理されてる。
後、keymap も発動前(viins/emacs) に戻る。
viモードで使ってる人どれくらい居るんだろう?

ノシ
それで割合とか人数とか把握できるとお考えで?
いや,そもそもviモードで使ってる人がいるのかどうか知りたかった.
そりゃviモードがある時点で需要はあるんだろうけど,かなり小数派だと思って.
惰性で emacs 使ってる。
"^X^V" なら使ってるけど。
>>395
http://pc5.2ch.net/test/read.cgi/unix/996949546/694
に書いたことだが,

これでemacsキーバインドとviキーバインドが同時に使える。便利
bindkey -e
bindkey '^[' vi-cmd-mode
KEYTIMEOUT=1
>>397
GJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Thanks!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
漏れもviモード使てるYO
>>397
幸せになったつもりだが…
KEYTIMEOUT=1 ってどこに効くの?
1 だと 10ms だよね。
2w とか、dd とかのタイムアウトだと思ってたけど違うのかなぁ。
2 -> 5s放置 -> w でもちゃんと 2w になるし。
違うと思う。
bindkey "a" some-widget
bindkey "ab" another-widget
みたいなときに 'b' を待つ時間だと思う。
'2' とか 'd' はそれ一打で widget 呼んでると思うので関係無し。
つか '2' とか 'd' で timeout の必要はないような。
^[ には効くと思うが。
あーなるほど。dクス。
うん、'2' や 'd' で何を待つ必要があるんだろう?と思って不思議だった。
>>400-401
KEYTIMEOUT=100にして^[押すと1秒後にノーマルモードになる.
# わざわざウニックス板の人間が機種依存文字で書いてるのって変なの
# どういう機種に依存してるのか説明キボン
ちょっと質問ですが,

zsh で for 等のループの最初または最後にだけ処理を変える
"簡単な方法" ってありますか?
>>405
# 「dクス」
>>407
そういう機種があるの?
>>408
くだらねえ揚げ足取りする奴はどっかいってていいよ。
410402:04/06/23 09:46
おれFreeBSDでふつーに書いたんだが…

ちゅうか「機種」ってそもそもなに?
環境依存だとは思うけど機種には依存しないような。
# 漏れもNetBSDでふつーに見えてるんだが…
# ひょっとしてCP932に対応してると
# ウニックス板とやらにふさわしくない機種なんだろうか
# 「ふつーに書」いてその字が出るって、IMはなんなんだろ。
## 辞書にデフォで含まれてるかどうかだけの問題ではあるが。
# あ、file server の cannaserver をみんなで使ってるから
# 誰かが突っ込んだのかも…
# ふつーに書けるから気づいてなかったyp
# 今まで当たり前のように書いてた…orz
どうでもいい話題を長々と続けるな
>>410
そういう環境依存な文字 (JIS の符号表で空欄になってる文字) を
通常「機種依存文字」って言う。「環境依存文字」などとは言わない。
スレ違いも甚だしい
>>405
> # どういう機種に依存してるのか説明?ヌ稽渺?タ

# 文字化けしてますよ。
ネタ振らないと流れが変わりそうにないので
function cd {
 pushd $argv > /dev/null
 title "[$(pwd | sed "s|^$HOME|~|")]"
 ls
}
function pd {
 pushd +1 > /dev/null
 title "[$(pwd | sed "s|^$HOME|~|")]"
 ls
}
function nd {
 pushd -0 > /dev/null
 title "[$(pwd | sed "s|^$HOME|~|")]"
 ls
}
function title {
 echo -n "\ek$argv\e\\"
}
pdで前の,ndで次のディレクトリに移動.ブラウザの進む,戻ると同じ.
ディレクトリを移動するとscreenのタイトルも変更される.
おぉ、これは色々使い道がありそうだ。
ところで、screenの中からktermのタイトル変えられないかなぁ、
ってすれ違いだ、逝って来る。
>>418
便利そうだね。
で、それやっても cd -TAB は使えるな…。そーゆーもん?
>>419
タイトル変えるエスケープシーケンス吐けばいいと思うが.
>>421
あら、レスありがと。
screen起動してないときはタイトル変わるんだけど、screen
起動すると変わんなくなっちゃうのよね。
これだけじゃすれ違い大魔王なので、

preexec() {
  [[ -t 1 ]] || return
  print -Pn "\e]2; $USER@%m on tty%l: %~ $1\a"
}

と指定している。
screen 起動するとタイトルが
user@host on ttyp0: ~ screen -xRR
のまま変わんない…
なにか間違ってるのかなぁ。
>>422
screenスレにあった.
>\033P と \033\ ではさんで、
>"\033P\033]0;`whoami`@`hostname`:\007\033\\"
>でどうでしょう。
>infoのVirtual Terminal→Control SequencesのESC P参照。
メールが来たときの、 you have mail ! みたいなのの変更の仕方を教えてください。
>>424
mailpath <S> <Z> (MAILPATH <S>)
An array (colon-separated list) of filenames to check for new
mail. Each filename can be followed by a `?' and a message that
will be printed. The message will undergo parameter expansion,
command substitution and arithmetic expansion with the variable $_
defined as the name of the file that has changed. The default
message is `You have new mail'. If an element is a directory
instead of a file the shell will recursively check every file in
every subdirectory of the element.
>423
でもこれだと screen の window 切替たときには window title は
更新してくれないよね...
427422:04/06/28 09:33
>>423
サンクス
>>426
まぁそこまでは言わないさ。

でも、ローカルではscreenの中でも使えるけど、リモートで
使えないのはどういうわけだろう。
screen無し、ローカル  OK
screen無し、リモート  OK
screen有り、ローカル  OK
screen有り、リモート  NG

コマンドラインからprintするとscreen有りリモートからも
タイトル変わるから、zshのprecmdの問題なのかなぁ、と
思いつつ、screen無しなら使えるんだしそんなわけあるか、
とも思いつつ。うーむ。
>>426
screenのnextとかprevに細工すればよし.
>>427
うーん.不思議ですね.ローカルとリモートではpreexecの内容は
同じなのでしょうか? リモートではscreenは起動していますか? も
し起動しているなら,\033Pを二重にする必要があるかもしれませ
ん.
私の周りのzshユーザーは、
「ふーん。それって、○○-shellでもできるよ」
という言葉に過剰反応する。
>>430
複数行のコマンドをヒストリとして保存できるシェルはzsh以外に
ある?
>>393
ノシ
良くいる one-line に固執する人には
zsh みたいな複数行を手軽に扱えるシステムを知らない人も
多いんだろうなと、思う。
テトリスでもやってろ
435名無しさん@お腹いっぱい。:04/07/06 23:05
五目ならべとか出来ないの?
できるようになったらどうするんだよ。
テトリス出来てる時点でどうしよう。
今の今まで>>161 はネタだと思って試してもみなかったよ……。
漏れが甘かった。
まあ zsh の存在自体ネタみたいなもんだからな
テトリスは4.1からの機能だっけ?
特定のコマンドに対しては、特定の拡張子を補完対象にしたくないのですが、
どうすれば良いのでしょう。

具体的には、less で、 .class ファイルを補完したくないのです。
前に g++ の例が出てたけど、compinit 使ってるならこんなかんじかな
zstyle ':completion:*:*:less:argument-rest:*' file-patterns '%p~*.class:all-files'
ただしこれだとディレクトリにも適用される
ignored-patterns を使う方が素直なような。
zstyle ':completion:*:*:less:*' ignored-patterns '*.class'
補間候補リストが多い場合にdo you wish ...と尋ねてくるけど,
これを抑制するオプションってある?
>>444
すこしは info 読め
zstyle ':completion:*:default' menu select=long-list
なんで
alias mv='nocorrect mv'
のときに
% mv
v の直後で
which-command してもなにもおきないの?
zshoptions の説明の中で、
AUTO_PARAM_KEYS <D>
Completion in a brace expansion is affected similarly:
the added character is a `,', which will be removed
if `}' is typed next.
とありますが、brace 展開で補完する例を見たことがありません。
上のオプションの説明を実際にすることが出来る例を教えてください。
>>448
wc ~/.z{shrc,shenv,history}
以外は思いつかないな。
>>449
ありがとうございます。出来ました。
zsh って感動で出来てますね。
>>450
残りの半分はテトリスで出来ています。
コマンドの終了ステータスに応じてプロンプトの色変えたいのですが、
どうすれば?
>>452
precmd使えばできると思う。
>>453
ありがとう。
PROMPT='%{^[[$[32+status % 5]m%} プロンプト %{$reset_color%} '
みたいなかんじでも
status % 5 が 0になってしまう可能性については? 無視でもいいけど。
status % 5 が 0 なのが通常だけど、その場合は
%{^[[$[32]m%} になって緑になるんじゃ?

あと
PROMPT='%{%(?.$fg[green].$fg[red])%} プロンプト %{$reset_color%} '
のが普通だったかな
いや、エラーの際に 5とか 10を返された場合気付かないよ、という事では?
ああ、なるほど。
まあ、数式でなんとかなりそうって意味で書いただけだったんだけど、
それを改善するなら
$[33+(status-1)%4]
とかかな
460ねぇ、名乗って:04/07/12 00:03
RPS1='%(?..exit %U%?)%u'
とかやってる.
漏れはこんな感じで。
%(?.%{^[[32m%}%!.%{^[[35m%}%?%{^[[m%})
ほんとはもっと色々書いてるけど、関係あるとこ抜粋。
462名無しさん@お腹いっぱい。:04/07/12 18:31
(・∀・)イイ!!
もっといろいろ出していこう age
463名無しさん@お腹いっぱい。:04/07/14 06:22
>>438
俺も。

このテトリス、左右がh lじゃなくてj lなんだな。ちと使いにくいな。
setoptで変えられたらもっと驚きだが。
bindkey -M tetris Th tetris-left
prompt凝ってる人多いね.
俺は
prompt="[%~]%#"
orz
だからキモイって言われるんだよ.
初心者ですが、

ファイルの属性によってファイル名にちがった色をつけるには
どうしたらいいですか?

ディレクトリか実行ファイルか区別するためのbashとかで
よくある機能なのですが。
man dircolors
>>467
それはシェルの機能じゃなくて GNU 系 ls の機能。それとは別に、
zsh には補完リストに色を付けるモジュールがあるけども。
>>467
ls --color=auto
あとは LS_COLORS を弄る(;´Д`)ハァハァ
>>470
萌えるLS_COLORSを教えれ
>>469
多分それを訊いてるんじゃないかな(補完)
>>467
でそれは LS_COLORS があれば
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
>>395
kshもbashもzshも
vi modeしか使ったことない。
>>473
凄いな。間違って vi mode になっちゃった場合を除いて、 vi mode は使った
ことがない。

ところで、 keymap の現在値って取得できないのかな。 vi mode だと、
viins か vicmd かを RPROMPT に入れられたら便利な気がする。
使ってないから他人事だけど。
$KEYMAP
echo $KEYMAP しても空白なんですけど……。
print $KEYMAP しても空白なんですけど……。
[[ -z $KEYMAP ]] && echo "echo \$KEYMAP しても空白なんですけど……。"
キミタチ。
man zshzle
These special parameters are always available in widget
functions, but are not in any way special outside ZLE. If
they have some normal value outside ZLE, that value is
temporarily inaccessible, but will return when the widget
function exits. These special parameters in fact have
local scope, like parameters created in a function using
local.

つまり、zle の widget function 内で使用可。
vi モードには C-] で移行できるようにしてる。C-[ (esc) じゃないよ。
ヒストリいじるときなんかに、
bbbcw とかやりたいときとかあるしね。
M-b よりは楽だし。
>>480
>>397をおすすめします。
482476:04/07/24 01:16
>>479
いやそれは man で読んだ上でコメントしてます。やっぱそうだよね。
でもそれだと元々の、

RPROMPT に viins とか vicmd とかを表示する

っていうのができないんですよ……。これできないのかな。便利だと思うんで
すが。ついでに >>397 のような用途にも便利な気はします(でもRPROMPTが動
的に変わるわけじゃないから無理か)。
ああ、そうだね
とりあえずこんなんしか思いつかん

up-line-or-history () { zle .up-line-or-history ; zle -R '' "histno.$HISTNO keymap($KEYMAP)" }
zle -N up-line-or-history

history に関してるのは特に意味無
keymap だったら vi-cmd-mode とかかな
つーかコレ、ちらつくなあ
やってみたら、暴走した。
zle .up-line-or-history を
zle up-line-or-history にしたとか
ここで質問すべきかどうかわからないのですが・・・

ずっとcygwin上でtcshを使ってたのですが、最近になってzshに乗り換えました。
ファイル名の補完だけでもめっちゃ便利で( ・∀・)イイ!って感じだったのですが、
ファイルにスクリプトを書いて実行する際、^Mがついてるとかなんとかでエラーがでます。
tcshを使ってるときはこのエラーは出ませんでした(DOSの改行も認識してくれてました)。

わざわざエディタを使って改行コードを変換してますが、DOSの改行コードが入っていても
認識してくれる方法、または、そういうzshってあるのでしょうか?

環境は以下の通りです。

Win98とWinXP(どっちも同じ症状)、cygwin 1.38、zsh 4.1.1 (i686-pc-cygwin)、
tcsh 6.12.00 (Astron) 2002-07-23 (i386-intel-posix) options 8b,nls,dl,al,rh,color

よろすくお願いします。
LANG とかはどうなってるのかな?
489487:04/07/25 16:07
>>488
LANG=ja_JP.SJIS です。
スクリプトの実行って source とかで?
491487:04/07/26 09:10
例えば・・・下記のような内容をhoge.zshに書きこんで、
zsh hoge.zshで実行するってことです。

for i in {1..10};do
print $i
done
こんなんどう?
zsh-rm-r () { zsh <(sed $'s/\r$//' "${1}") "${(@)argv[2,$#]}" }
zsh hoho → zsh-rm-r hoho
と置き換えて使うんだけど、どっか間違ってるかなぁ
493487:04/07/27 20:28
>>492
考えてくださってありがとうございました。
しかし上記の関数を.zshrcに書いて、zsh-rm-r hogeを実行すると・・・
  zsh-rm-r: doesn't look like your system supports FIFOs.
というエラーがでました(どいういことを意味してるのかわかりません)。

ですが、見よう見真似で次のような関数を作ってみました。
  zsha () { dos2unix $1 ; zsh $1 }

これでなんとかうまくいったのですが、dos2unixの実行時に
  hoge : done.
というのが出て気持ち悪いので、
  zshb () { tr -d '\015' < $1 > /tmp/zshtmp ; zsh /tmp/zshtmp }
という関数を定義するとうまくいきました。

これで改行コードを気にせず編集できそうです。
どうもありがとうございました。
(できれば/tmp/zshtmpとかいうファイルを作りたくはないのですが・・・)
494492:04/07/27 22:04
ああ、悪い悪い。cygwin ってあったからもしかしてと思ったんだけど
<(hoge) と >(fuga) は /dev/fd mechanism か named pipes (FIFOs) を
使う(多分)んだよね。で、それを cygwin は support してないと。
zsh は <(hoge) の代わりに =(hoge) を使えてこれは /tmp/zshXXXXXX を
使う仕組なので cygwin でも可。てことで

zsh-rm-r () { zsh =(sed $'s/\r$//' "${1}") "${(@)argv[2,$#]}" }

とすれば上手くいくはず。結局 /tmp/ にファイル作ってるけどこれは勝手に消えるので。
あるいは

zsha () { dos2unix $1 2>&1 >/dev/null; zsh $1 }

とか

zshb () { tr -d '\015' < $1 | zsh }

とかでも確認してないけど良いと思う。
495名無しさん@お腹いっぱい。:04/07/28 01:46
prompt_prefix=`hostname -s`
prompt_titlebar='%{^[]2;%m - %n(%D %T)[%~]^G^[P^[]2;%m - %n(%D %T)[%~]^G
prompt=$prompt_prefix"%# "$prompt_titlebar

watch=(all)
WATCHFMT='^[[40;37m %U%T%u ^[[41;33;1m%n^[[00;m^[[40;37m has %a%(m: (^[[40;32m%
m^[[00m):)'
age てまで言うことでは無いな.
zle を他のコマンドに使えないかな
>>492
そっか、パイプで渡せばいいわけですね。
勉強になります。何度もありがとうございました。
mathfunc を使うにはどうしたらいいですか?
雑種使ってます
zmodload zsh/mathfunc
zsh: do you wish to see all 113 possibilities (29 lines)?
これなんとかならん?
だまって表示しろやって事?
英語がわからんって事?
「尋ねる/黙って表示/表示しない」を切替えられると嬉しい.
man zshallを読もうとしても,長すぎてどこに書いてあるのか分からない….
どの辺に書いてあるかだけでも教えてくれると有難い.
LISTMAX=10000
とか。無条件で表示ってのは知らんけど、
あまり大きい場合困ると思うので要らんでしょ。
ところで LISTMAX が負値の設定ってどういうときに使うのかね。
あとは
LISTPROMPT='hogo hogo'
とかもありかな。
それと >>446 のあたりも。
507480:04/07/29 18:56
>>481
遅れすだがサンクス。
便利だが、screen を併用してると
ちと反応が鈍いね。
screen の方で解決できるかな。
>>506
なるほど.thx.
尋ねる→LISTMAX=0
黙って表示→LISTMAX=10000
表示しないのは…,何か参考になるものは無いかと思ってpredict-onを見たら,
# This is a helper function for autocompletion to prevent long lists
# of matches from forcing a "do you wish to see all ...?" prompt.
predict-limit-list() {
if (( compstate[list_lines]+BUFFERLINES > LINES ||
( compstate[list_max] != 0 &&
compstate[nmatches] > compstate[list_max] ) ))
then
compstate[list]=''
elif zstyle -t ":predict" list always
then
compstate[list]='force list'
fi
}
こんなのがあった.これを
comppostfuncs=( predict-limit-list )
と登録しとけばいいらしい.
>>507
maptimeout 5
とか。5 は適当。

>>508
一応、説明足しとくと、
LISTMAX=0
で screen あふれたとき
LISTMAX=10000
で候補数が 10000 超えたら
LISTMAX=-100
で 100行以下のとき
に尋ねられる。

predict-limit-list のままだとあれだけど、それでいけそうすな
誰か ssh 切れたあともなぜか remote に残ってる zsh につなぐ方法しらない?
もっかい remote 入ると別の tty に残ってるの。再現性なし。
screen使え
たまたま screen 使ってなかったときなんよ
もういいんだけど何か方法があるなら教えてください
remote では screen 使うのが半ば当然。
local で使うかどうかはスタイルの問題だが。
>>513
remote でだってスタイルの問題だが。

いや、漏れも当然のように使ってるが。
clone ってどういうときに使うの?
cd や less 等の補完候補から .svn を削除したいのですが,
そうすれば良いのでしょうか?
>>516
そうすれば? :)
>>516
こうゆうことかな?
zstyle ':completion:*:*:*:*' ignored-patterns '.svn'

もしあってたら,ゆゆたんの画像を下さい.
違ってたら,何をしたいのかはっきり言ってね.
>>518
もまいは例のモーヲタか!?
>>519
例のって何?
linux 板のデスクトップすれのことかな。
この一年くらいで急速に低年齢化したような感じのスレ。
>>521
なんでゆゆたんで分かったの?
さては...
>>520
>>171,187,192-201
モヲタに生存権は無いっす。
typeset -A associate
としたとき associate の key か value で sort することは出来ますか?
${(o)associate}
incappendhistory on にすると elapsed times が 0 になるのはなぜ?
モヲタってのは、mohta ヲタク?
.complete-word とかって直接呼んでるとそのうち落ちる?
特に _complete_help の後とか
うーん。なんとかして直前の completion が終了したか選択中なのか
知る方法はないかなあ。ないですかねえ。
suspend してる jobs 数をプロンプトに表示するにはどうしたらいいっしょ?
%j The number of jobs.
man zshmisc
reverse-menu-complete から始まった補完の最中に
complete-word とかすると確定するのってなんで?
順送りになるべきでは。
linuxの話で悪いのです。

$ rpm -q <Tab>
とするとrpmのデータベースが読み込まれますが、これを再度読み直すことは可能でしょうか?
消したrpmの情報がいつまでも残ってしまうのです。

>>532 tnx.
%(1j.%{[31m%}%j:%{[m%}.)
こんなのを加えてみた。
たまには ROM っていないで、contribute してみる。
ttp://hiki.ex-machina.jp/zsh/?%CA%E4%B4%B0%A5%D5%A5%A1%A5%A4%A5%EB
>>534
_rpm の最後みるとデフォで
zstyle ":completion:*:*:rpm:*" cache-policy _rpms_caching_policy
となるようす。よーわからんけど、どうも一週間 cache が有効になるみたい
これを適当な関数にすればいいと
returns status zero で needs rebuilding かな

あるいは
zstyle ":completion:*:*:rpm:*" use-cache false
とか

man zshcompsys
>>534
手動でってんなら _rpm の中で _store_cache してるのを
自分でやればいいんでない?
お疲れ >>536
>>537
gj
vim の display lines downward かと思った。
_iconv が iconv --version の出力に "GNU" の文字列が含まれるかで
gnu のか判断してるようだけどその出力に
iconv (GNU libiconv 1.9)
とか先頭行に出てくるから誤認しれくれますね。
zstyle の command 指定すりゃいいかもだが。
gnu の iconv --version ってどんな出力?
誰か書いて
# iconv --version
iconv (GNU libc) 2.3.2
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Ulrich Drepper.

これかな
確かに GNU の文字は入ってるけど libc にかかってんのか。
iconv が GNU だとは明記されてないんだね。
てか、なんで libc がわざわざ表示されんの?
つーか、FSF ?
orz

% iconv --version
iconv (GNU libiconv 1.9)
Copyright (C) 2000-2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Bruno Haible.

>>544 のとどっちがっぉぃの?
Copyright (C) に Free Software Foundation, Inc. とありますが。
GNU のんは _iconv みるかぎり iconv --list が使えると思う。
>>546
同じモノなんじゃないの?
rup | sort
とかしたときに Ctrl-C で rup の方に INT を送るようにする
方法はないですか
kill -INT <pid>
Ctrl-C で
552549:04/08/05 21:32
SIGINT シグナルはフォアグラウンドプロセスグループ中のすべてのプロセスに送られんだね
というか、なんか zsh とは関係ないみたいね
freebsd とかで pid が 3桁以下のときの ps の出力ってどうなる?
_pids が ps で pid とるときに 1桁目から
ヘッダ行で (#i)[[:blank:]]pid に match する部分の桁までを使うようだけど
netbsd だと pid が 3桁のときは
PID_TT_STAT____TIME_COMMAND ( _ はスペース )
とかなって PID の前に [[:blank:]] がないから match せんでうまくいかんのよね
他の OS だとこういうことはないの?
noglob zstyle :completion:* matcher-list 'r:|?=d'
として
% ls
abc adbe
となるディレクトリで abc から _files の補完かけると落ちるね
補完対象に "air.mp3" があるとき
zstyle ':completion:*' matcher-list 'r:|.=air'
で "." からの補完が失敗しますが、理由がわかりません。
zstyle ':completion:*' matcher-list 'r:|.=*'

zstyle ':completion:*' matcher-list 'r:|?=air'
なら成功するんですが。なぜですか?
read "info zsh".
それで解決すると?
558555:04/08/07 02:45
man zshcompwid を読んで書いたんですけど、
info zsh も一応読んでみました。同じことが書いてあります。

r:|.=air

r:lpat|ranchor=tpat
の形式で設定しているので
. が ranchor で
air が tpat となり
. から補完すると前に air が入って成功すると思うのですが。
どこを勘違いしているのかわからない状況です。

zstyle ':completion:*' matcher-list 'l:|=air'
とかは成功して l: の挙動は思った通りになるんですが
r: の方がどうもよくわかりません。
誰か _vim とか持ってない?
560553:04/08/07 13:10
まあ、あれだな。

% diff /usr/pkg/share/zsh/4.2.0/functions/ .zfunc/_pids
28c28
< pids=( "${(@)${(@M)out#${(l.${#desc[1,(r)(#i)[[:blank:]]pid]}..?.)~:-}[^[:blank:]]#}##*[[:blank:]]}" )
---
> pids=( "${(@)${(@M)out#${(l.${#desc[1,(r)(#i)((#s)|[[:blank:]])pid]}..?.)~:-}[^[:blank:]]#}##*[[:blank:]]}" )
>>559
かなり適当ですが...

_vim.bz2 (Base64)
QlpoOTFBWSZTWfnN/OQAALvfgEAQSff/8D9Hn56/59/qUANeXSJttdumbcJEiSehTeqfk1Ce01NQ
2o/Uah6jRk009RtJ+qDQZKPSnppomFPTUep5IDQPSGCaNAMgwkQk0k8qbCIaZNqABoMQDTQHqNDm
EwCYATCYTTAAAJk00DCSQmlPaJ6ain6mnpqeqDyIB6Ieppk9QZDQcL6z3pAUiVCDLh49n78PTdu9
30wRoSA0CMGSAsZHF0r4eDF6LURRNEC9E6I7+P2l3nMazabjoOkwOk6jKqs+m5crSSnQ7cSzhE+K
hQeO6Zfk6NJTjOi6HMZZYGitTUSQ8R3/d40btG//eDXRW/r5teZg+bSuFzswZPKWmgN1FVXmpM/T
x7M5ilY0FkpQ5DGmE0gPImahBMnk7C7v79+SGYvmgj8Qs9l/qlkujrLHOJR2TA3Zw3UIqZCJRPXt
/WNX+lwxdMTt2WMLWs5pzawYMrB2FEElNSzqBnK8BpB4NWb8njd5craSmdTFtaepbsnCbYDUNNx1
woGOXDGkwbTY3DcQ0tu/u4VVbfh591HR8dlPtqNv39OGM8dflT+f7l4bvHWkBzHKwemEFTbbVuwg
wKO3YprAHIsykPDN6Tjaf2k1X1+PTwC03ZFxXmDFB7k+DKMpo2DRs3QYj4EtO9RiLspSEJwTwyaB
LSzBbdEUpUiqV2jtKjQ7UnxwqeIIaW9w6ICjDMPX7nS9pEiXZluT1riYtof0Fg3Bw6CIUUJ+q9bD
jz5qYL1phqJxeOSI6lqzX1c8QV5ZHIS5IlQHodZlvuJAGpCHAvMqRQJWP60CAOVkA52icsEpLx6N
RLVenKnmozyDBmZMMIdUHM0wrNiqHbBq7OdrcEspZui5dKRLKESqGoZJBBiwnNtQDTSojUw94xVW
NE06jZvlCYX3iXUTL6JdbBRctTjkldLAg9uQzoDiZaGkdi0kewO0xqKY++OpK+WvEEmbCJTZHdJf
XTU8nwxukDxZFSEKoyKel8AMZ4VQRAKEYzFRQgQ/4mkEIWW5pmDHkKIbzMFYGtcxsahXJzONpMBl
K9SSd7XsO1mXZiGdypKJDHejIoNOGJdtosCuyuAULEnFIrqczOuqmRIVDHY8N8WMVddluaUTokVh
PrMNH/F3JFOFCQ+c385A
zsh のバージョンに依存する記述を .zshrc の中に書くには
どうするとよいでしょうか?

計算機を /home を NFS で共有していくつか使っていて、必ずしも zsh がどれも
最新とは限らないのですが、今やっているように
case $ZSH_VERSION in
4.2.*)
 なんたら ;;
esac
では 4.3.x になった時に困りそうです。
うまい判定法を使っている方, 教えて下さい。
>>561 thx.
適当に追加して使わせてもらう。
で、こんなんなった。

_vim.bz2 (Base64)
QlpoOTFBWSZTWe10KvwAAnzfgFRwX///+3/n/9+/7//+YAi9vtDuZdpy9NCXEpVRJQOTVVw0IphN
NJpppmk/VPKbUMnqHpDQ0yYE0aAaGgNAGiDSZT1NpTaj1PUBoAAA0AAAAAAA0ap+oRQeoAaANGgA
AAAGgAABkEiIiYjSanoaTZSbKeo9RsoBgyaINqMnqNpHqaGnqBxkwTQyGRkZNDQBoMjCAaDRpkMQ
0AEkgmmgEyBNMhk0oybFGhkDCB6TRo0BoMliEBYkBuHX1w/V+lNKO4OjVZczDLHMnZPrs2Cdn8Tz
TMghXc6zhW9yjaqKLsvZMJCC80w6xNKTsSz7IoTBi8xMu4BF/tysvysc/Ki2TqGueK3F2LWVZ3Xo
QGZiEBX6fZ26PftWJHwMbTaExjaBc/u8np/b5EUCQSuEOTmQmmui7LZzer2vkRP8yMCHb3enNdGU
7HP3e37NWP9/sZ68i2sbL1BYa0gy/puke5hBQUBSrUyzxcHW111yf7xQiiPs7JZFJv4zvYrFxRK4
sdBM8nDZ0ougiA3FFVCuduCOJBiO5MHR7LkU9nf05X8mhiF8mCQNQg7wvjAMIxDGOgMgdf6TsA4K
WxBUBLOEERRGRKuW4sVzykMgxCc1LKElMi5CWNqwLlpcCe8W86GwBEBD0v2LyEwaWWlQgQb9xyom
tTYIKaWBrThPRfvrc+gllVSi4c1xFcH3Tm6+2zHq24QIY61r26S1Sa6ege5tEIZls8BygUkPcbM7
NOCp9jrOW2Nso1K+RRkbhD5lIdygEZKVdFP5hTC1NUCrLXquYxGYYyS2AGOhA14F058SDxttIbV7
U5MKd46I2JFXaNKz65kOmFD4B39J542tbKSrzG/1P0+g6AOIikRqMG68bn54Re82Qc3JqQWtBbMw
5G20wr39+i1qNWZLYwRaxJTmy5nRbqaKux5lCJFqGqfiwoJZx76x9UVY9NfNySlPOVsBFBJrS6K2
1KOpQA0wyTPBT8BYm554yeqIY0G8gR5Ce+P0Lf8TKrmMMBiy8ktadV1ql1xw+QzRHGBhqARaYzA3
Y4bpCRSYQvbSGFIRT+vL76Y+NYW3eywL2BOwDwzZ2UkpDKZQlFzNBnIATxuCzUOISeIYxLZRqWuw
7fwXrFJQMGdQy3kvT71/3UWK5vDUy+76M3OYN5TxLO2w2y4UEthDnP0UKHpTSOpMKdLGCjqxLarn
MUai21HQoqvCQkDVhYkb5p6wRwoR4QVBYmVJY7YpPmXYhts2+DWPHPkjk0yMHuRRIyGje4o6AOCN
564563:04/08/10 14:21
続き。

Qt1Z+C1UucCfbEBPtEQjv0P7EOtGQnl5WzVzCO0styxxtuRjucMYru1s5Wr8Mlgv3EPIhiXM4TO0
gh4N1mZuESBKW5x8K1+dHV7+vqjry3O6TtafnZsjuWkN+u5l8vqZLc/nb9msPwwIhbn6OD7aABDn
aHoCuWhEN2JAESNRAU8CI4SIZQuhBiDbxB58ixy8RnnuR/FIF+RbHj6ik7noNsUrQYFhheXloq8j
rV3NvlA8JUQW+k0pwQX2+tDJ1JELg7Q7WNgwRGYb3eR7ZGUksFEY0CkLfWFdan5vHEzCoVAwt5nz
lx/xXgusHGgjFPUJy0iM0Ja9jyYTmKoV2CqFvIIzSspvjDwPutbXXWdnchOCM6ZmWJOLdGlnpoey
v2yV0aiRqEbe9VVRJDoTQiiiNVDTtWo0iUoi4SIEVY8DftejPXXK0DEabk4ucdjbfCoIokNi0veY
TwEZDuvIpqjIDQQDpuxRjrcEtK9w7ICzBGArkvCx8vNmFLzvylhcNbXxl4sbRcWY0GhpJjUogPQM
GhgByRWUii74cpZFxng/WQJAl1BaG2Ix48NF4Wq7b2lKDxQkdCw3R4Y1nEeycBxRWUDWT8W7hMWq
D3qI6EDjF/XKKUvXu1sUSYqRoPzdNUfKwOVGCcGeKMmU1mFmICc+8biW6yztjZUk0gzLqqr1KIMq
WZmlXp2p7hwmHwgQQQEdKOWLLJxjJhzj8Msqtgt+9rmpuDi1BhJFl5ZY4c85zqY6gmhHBkkTBUC1
tY5th/2dagkppyxbBkJVBtmhKmB2Qgb0UvdgrBQuIN8NZEDbZat2UON8nw8SDuNA2mMEpkFIOcc7
JmzBwY7zOZ3SWFKuOhyKRVEekbCFvSwPnyJQXCJUAXYZJz0UkSSUBKCAcCHp6lBDZdRVUqIijtgo
ElWlUWmqTwhu2CoMpBbUEED1VUmTh5TSUqCe9dkDWGnUug8lkMhK/IS8pgnmRnSXnYSyCxlciUHj
KVaXysrtSVuG04gFJQ0QC+pHGkHGJeGcdviRZmT6UbBgiDcoeswgHaCaLaN1KX1P7Tvjbk9RpQWb
Er8DDtJpbwZjIV4u9LCJYuAZuNOgXZg4T8ju7HDnOd4vkx+AIhrSYAh4OOkUDk0pebsvWgbUOBhY
+/seALW+FSpQmdhAk0ikJUvBqHe9iKyBbFKZ2SKy4p3iwUTdNICEaxnQmEwBAkzgmAySQpw8Jy1A
W8BbtuOPNQwywRkvQa84yCKo1oJztnlS9ahE8EMyrGoIPD5lHM2olER7okTEbmGHsW1lkwTLpvjL
Q4JqnjS3XbZx1hjsLiaUtSHUk4QqLChU0FSIDJESZnavmNN+sTRVdQ8EwXzGg9WsBVX2BfrYPLaM
LnewadnIVCbg0d6QXDnLrOfx5JYLQZgtzs8ZafC62kKS8WgxdpFE02TL2fJ7ZEw/RVuKiyWGK2y4
s7718MXjPBYF+K580TJBKAeLXyY4XvdDvqiBroGCghajnS5EyDpRgebn9JGNc3SG8BbLGYcjT3uu
cKxqWsTP8XckU4UJDtdCr8A=
>>562
つかったことはないが

is-at-least needed [ present ]
man zshcontrib
setopt LOCAL_PARAMETERS みたいのが欲しいね
>>565
Thx. そんな便利なものが。
autoload is-at-least
is-at-least 4.2.0 && ほげほげ..
で使えるようになりましたが、ブロックを書こうとして
if [ is-at-least 4.2.0 ]; then ..
は "condition expected: is-at-least" と怒られてしまう。何がいけないのかな。


568567:04/08/10 19:36
う、書いてから気づいた。自己レス。
[ は(zshでは組み込みの)コマンドなので、if is-at-least 4.2.0 .. と直接書けば
いいのでした。
というわけで、
if is-at-least 4.2.0 ; then
なんたら..
fi
でOKですね。

if の後にはほとんど必ず [ を書くので、普通のプログラミング言語の書き方
もあって、何か固定観念があったなぁ。
569561:04/08/10 21:39
>>563 改良ありがとうございます。早速使い始めた。

>>568
Bourne shell な話で、'[ ... ]' ていうのは確か 'test ...' と呼んでるのと同じだったと思う。
% ls '/usr/bin/['
/usr/bin/[
% ls '/usr/bin/['
ls: /usr/bin/[: No such file or directory
% where '['
[: shell built-in command
/bin/[
または
% echo ='['
/bin/[
% where '[['
[[: shell reserved word
>>563 で気付いたけど
[[ -prefix ''(|127.0.0.1|localhost)/ ]]

[[ -prefix (|127.0.0.1|localhost)/ ]]
だと
zsh: parse error near `('
で失敗するんね。
ZDOTDIR ってどこで設定するん?
>>576
/etc/zshenv
precommand modifier の - builtin はあるけど
argv[0] string を任意に変更するのはないんかいな。
つーか - builtin ってどんなときに使うんだ?
ARGV0=-are kore ぐらいでいいのでは。
- に関しては、頭に - が付いたらログインシェル扱いということぐらいしか知らないな
あー。なるほど。 ARGV0 ですか。
ところで =- ってのは何か意味が?
いや、ちょっと気になったもんで。
- builtin を使って同時に argv[0] も変えたい話だと思ってそうしたんだけど、
別個の話だったのなら意味はありません
582名無しさん@お腹いっぱい。:04/08/14 17:39
4.2.1リリースage

>>536の補完ファイルパッチは
_cvs、_subversion、_mplayerの変更が本家でされたため、
その部分だけ修正すればOK
4.2.1の新機能解説キボン
>>583
news
zftpのipv6対応、cygwin/Darwin対応、ヒストリの実装変更
くらいはソース見たら分かった。

他にはNEWSみたら、autoload他の-k、-z optionはいいが、
try blockとalways blockがどういう機能かよく分からん。
>>585
そのままだろ?
>>586
具体的に説明してくれ
だから try は C++ からの借用
vim の vim/vim63/syntax/zsh.vim は
zsh/4.2.0/functions/_ssh とか読むと
9 行目とか
54 行目 の "'" のあたりや
152 行目 の (#i) のあたりでおかしくなるけれど
こーいったのを修正する ~/.vim/syntax/zsh.vim とか持ってる人おる?
$'\c' てやると落ちるよ〜
まあ $'\u1234' とか $'\U12345678' でも落ちたりするけど
RC_EXPAND_PARAM の RC って何?
>>590
落ちない
593590:04/08/21 00:59
% zsh --version
zsh 4.2.0 (i386--netbsdelf)
で落ちるけど。ウチだけ?
落ちる
zsh 4.2.0 (i386-unknown-openbsd3.6)
'\'' ってゆーふーに '' の中で ' は出すことができないけど、
前からこうだったっけ?以前できてたような気がするんだけど。
そうだとすると unsetopt rcquotes すると '' の中で ' は出せないことになるよね。
そうだったっけな〜
% zsh --version
zsh 4.1.1 (powerpc-apple-darwin7.0)

落ちた。
>>590
$がpromptで
'\c'<return>で落ちるということ?
試しても落ちないけど。
>>595
追試してみた。
zsh 4.2.0 (i386-portbld-freebsd5.2.1) と zsh 4.2.1 (powerpc-apple-darwin7.5.0) で共通の結果。
echo '\'' -> NG
echo '"' -> OK
echo "'"' -> OK
echo "\""' -> OK
工夫して回避できないことはないと思うけど、ちと困りますな。
あー、なるほど、そう読めますか
えーとね、% が prompt で
% $'\c'
て打つの
>>599
了解。追試してみた。

localhost:~$ $'\c' [2:57:24]
localhost:~$ $'\u1234' [2:57:41]
zsh: character not in range
localhost:~$ $'\U12345678' [2:57:52]
zsh: character not in range
localhost:~$ zsh --version [2:58:01]
zsh 4.2.0 (i586-ひみつ-linux-gnu)
localhost:~$ [2:58:09]
落ちないよ。debian sid の
zsh 4.2.1 (i686-pc-linux-gnu)
4.2.1 にしたら >>337 のバグが直ってる!
% zsh<<<"$'\c'"
zsh: cannot do charset conversion
zsh: 22019 segmentation fault zsh <<< ""$'\\c'""

% zsh --version
zsh 4.2.1 (i386--netbsdelf)

こうなった。 $'' で cannot do charset conversion すると segmentation fault ってことかな。
$'' で \c を charset conversion しようとするのがおかしい気もするが。
linux では違うメッセージ出てますね。
下のは落ちないんだけどね。

% print '\u0000'
zsh: cannot do charset conversion
gentoo amd64
$ zsh --version
zsh 4.2.0 (x86_64-pc-linux-gnu)
落ちなかったよ
どうも linux 勢は落ちないみたいね
606589:04/08/21 06:17
自己レス。
~/.vim/after/syntax/zsh.vim に以下の記述で直る。

syn clear zshSpecial
syn match zshSpecial "\\." nextgroup=zshGlobOperators

syn clear zshDerefOpr
syn region zshDerefOpr start="\${" end="}" contains=zshShellVariables,zshDerefOpr

syn match zshGlobbingFlags "(#[^)]*)"
syn match zshGlobOperators "##\=" contained
syn match zshGlobOperators "\S\@<=##\="

syn clear zshString
syn region zshString start=+"+ skip=+\\"+ end=+"+ contains=zshSpecial,zshOperator,zshDerefIdentifier,zshDerefOpr,zshSpecialShellVar,zshCommandSub

もうちょっと色々したけど上で書いた問題はこれで一応解決する。
けっこう linux のいるんだ。というわけで >>543 を誰かよろしく
>>607
Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]
or: iconv -l
609600:04/08/21 15:32
>>607
$ iconv --version [15:58:09]
iconv (GNU libc) 2.3.2
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
これはフリーソフトウェアです。利用許諾についてはソースをご覧ください。
商業性や特定の目的への適合性の如何に関わらず、無保証です。
Ulrich Drepperによる書き込み.
$

日本語気持ち悪いな…
以前APRESSから出版されるとかってかかれてあったと思うのだけど、その話はどうなったの?
>>609
良く嫁
iconv (GNU libiconv 1.9)
Copyright (C) 2000-2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Bruno Haible.
612600:04/08/21 16:56
>>611
おおすまん。入ってなかったのでコンパイルして入れてみたら同じだな。

bash-2.05b# /usr/bin/iconv --version
iconv (GNU libiconv 1.9)
Copyright (C) 2000-2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Bruno Haible.
bash-2.05b#
>>612
> bash-2.05b# /usr/bin/iconv --version
スレ違い、bash スレヘ go
>>613
貼り間違えたけど結果は同じ。
613 の意図がわからん
>>615
スレ違い以前の勘違いだろ。スルーしとけ。
ええと、つまり
iconv (GNU libiconv 1.9)
が iconv -l を使えるやつで
iconv (GNU libc) 2.3.2
が iconv --list を使えるやつ?
どっちも GNU 製ってわけじゃなくて
ライブラリが GNU 製なのか。
GNU か否かで分けるんじゃなくて
GNU libiconv か GNU libc かで分ければいいんすね。
>>542-548 >>607-617
>>617 が結論ならば、_iconv の 6 行目を
if iconv --list > /dev/null 2> /dev/null; then
とすればいいのではないでしょうか。私は GNU iconv なので確かめられないが。
ていうか 4.2.1 の _iconv の下の方にある

if [[ -f /usr/lib/iconv/iconv_data ]]; then # IRIX & Solaris
codeset=( ${${(f)"$(</usr/lib/iconv/iconv_data)"}%%[[:blank:]]*} )
elif [[ -d $LOCPATH/iconv ]]; then # OSF
codeset=( $LOCPATH/iconv/*(N:t) )
codeset=( ${(j:_:s:_:)codeset} )

って条件に引っ掛かる環境での iconv --version はどんなかな
libc 使ってる iconv の iconv --list はどういうのが出るんだ?
最初の空行から数行うつしてほしい
621Solaris is good OS:04/08/22 01:13
iconv: オプションが正しくありません -- -
使用法: iconv -f fromcode -t tocode [file...]

>>620
全部うつすぜ。
$ LANG=C iconv --list
The following list contain all the coded character sets known. This does
not necessarily mean that all combinations of these names can be used for
the FROM and TO command line parameters. One coded character set can be
listed with several different names (aliases).

437//
500//
500V1//
850//
851//
852//
855//
856//
857//
860//
861//
862//
863//
864//
865//
866//
866NAV//
(全部で961行)
>>617 の通りなら
4.2.1 の _iconv の 6行目の ( >>618 の _iconv とはちがうみたい )

if _pick_variant gnu=GNU unix --version; then



local variant
if _pick_variant -r variant use_gnu_libc="GNU libc" use_gnu_libiconv="GNU libiconv" unix --version; then
case $variant {
use_gnu_libc)
そのまま
;;
use_gnu_libiconv)
上のを修正
;;
}

みたいなかんじでいいかな
624620:04/08/22 01:55
>>622
なるほど。1行 1エントリなのね。
4.2.1 の _iconv は GNU と認識した場合は codesets の取得で

${${${(f)"$(_call_program codesets iconv --list|sed -n '/^$/,$ p')"}## #}%//}

ってのを取ってるから、_iconv を変えたくない場合で libiconv 使用のときは

zstyle ':completion:*:*:iconv:*:codesets' command 'echo;iconv -l|tr " " "\n"'

とすれば、姑息だし libiconv の iconv の仕様と微妙に合ってないけど
codesets の補完が可能になる。
625622:04/08/22 02:03
もしかしたらちと違うかも。glibcのiconvで、
zshからiconv --listすると>>622 になるんだけど、
scriptの中で実行すると以下になる。

The following list contain all the coded character sets known. This does
not necessarily mean that all combinations of these names can be used for
the FROM and TO command line parameters. One coded character set can be
listed with several different names (aliases).

437, 500, 500V1, 850, 851, 852, 855, 856, 857, 860, 861, 862, 863, 864, 865,
866, 866NAV, 869, 874, 904, 1026, 1046, 1047, 8859_1, 8859_2, 8859_3, 8859_4,
8859_5, 8859_6, 8859_7, 8859_8, 8859_9, 10646-1:1993, 10646-1:1993/UCS4,
ANSI_X3.4-1968, ANSI_X3.4-1986, ANSI_X3.4, ANSI_X3.110-1983, ANSI_X3.110,
script の中でって not tty ってこと?
その出力だと 4.2.1 の _iconv では上手くいきそうにないね。
627623:04/08/22 03:49
修正してみた。
case 使った方がいいのかもしれんが diff の出力を長くしたくなかったので
if にした。

% diff ~/.zfunc/_iconv /usr/pkg/share/zsh/4.2.1/functions/
5d4
< local variant
7,31c6
< if _pick_variant -r variant use_gnu_libc="GNU libc" use_gnu_libiconv="GNU libiconv" unix --version; then
<
< if [[ $variant == use_gnu_libiconv ]]; then
< local exargs="-l --version"
< _arguments -C -s \
< "($exargs)-f[specify code set of input file]:code set:->codeset" \
< "($exargs)-t[specify code set for output]:code set:->codeset" \
< '(- *)-l[list all character code sets]' \
< "($exargs)-c[omit invalid characters from output]" \
< "($exargs)-s[suppress warnings]" \
< '(- *)--version[print program version]' \
< '(-)*:input file:_files' && return 0
628623:04/08/22 03:50
続き。

<
< if [[ $state = codeset ]]; then
< if compset -P '(|*[^/])/'; then
< _wanted option expl option compadd "$@" /TRANSLIT && ret=0
< else
< _wanted codesets expl 'code set' compadd "$@" \
< -r / -M 'm:{a-zA-Z}={A-Za-z} r:|-=* r:|=*' \
< $(_call_program codesets iconv -l) && ret=0
< fi
< fi
<
< return ret
< fi
---
> if _pick_variant gnu=GNU unix --version; then
echo `echo \``
ってできなかったっけ。できないなあ。できなかったんだなあ。
>>629
echo $(echo \`)
echo `echo \\\``
でできるな。
なんと
echo `echo \\\``
ですか。何で \ が 3つも要るんだ?妙な仕様。

今気付いたんだけど setopt sunkeyboardhack で
echo \`
と入れると ` が消される。あくまでも奇数かで判断するんだね。
ていうか何でこんなオプションつけてんだろ。外しとこ。
>>631
2回評価されてるんでしょう。
\\\` -> \` -> `
という具合に。
まあ、command substitutionは``ではなく$()を使っておこう。
おお、freebsd の ports にも 4.2.1 が来てる
>>632
なるほど。まず `` の parse で
\\ -> \
\` -> `
としてから command の parse をするのか。
`` の parse では \\ と \` の解釈はしても置き換えはしないと勘違いしてた。
そうすると
echo `echo \`echo ee\``
とかして nest もできるのか。 `` で nest はできないと思ってたよ。
まあ $() 使ってるから関係ないけど。
昔は融通が利かなかったもんだから、
三段ネストの `` とか何も考えずにやってたよ。
途中でわけわかんなくなるのだが、
大量の\がなぜか愉快だった。
636名無しさん@お腹いっぱい。:04/08/28 21:59
tex でtexのファイルを補完してくれるのですが、platexだと
補完してくれません。

こういう場合、既にある補完と同じ補完をするようにzstyle 等で指定できないでしょうか?
>>636
うちでは
/usr/share/zsh/4.2.0/functions/Completion/Unix/_tex
にあるファイルを、
-#compdef tex latex slitex pdflatex jadetex pdfjadetex
+#compdef tex latex slitex pdflatex jadetex pdfjadetex platex
とか書き換えればいいんでね?
638名無しさん@お腹いっぱい。:04/08/28 23:29
>>637
すいません、説明が足りなくて。

その方法は知っているのですが、標準の補完の定義を
書き換えずに済ませる方法があるのか知りたかったのです。

もしかしたら、zstyleとかで既に定義されている補完と同等の
補完をするように定義できるのかと思いまして。
639636:04/08/29 01:03
>>637
出来るようになりました。

compdef _tex platex platex209
です。

これで '_tex'の補完と同じこと補完になるようです。
640名無しさん@お腹いっぱい。:04/09/01 11:33
ftp.ayamura.org/pub/emacs/emacs-21.3.tar.gz をダウソしてき
て、./configure で Makefile を作成した後、gmake と入力して、TAB を押し
たときに、ちゃんと、install-strip が出てくる人いますか?
私の場合 LANG=C と場合出て、LANG=ja の場合出ないんです。

LANG=C awk '/^[a-zA-Z0-9][^\/\t=]+:/ {print $1}' FS=: < Makefile
LANG=ja awk '/^[a-zA-Z0-9][^\/\t=]+:/ {print $1}' FS=: < Makefile
の結果が違うことに起因しているんだと思うんですけど、give up です。
ちなみに、gawk-3.1.4 を使ってます。
>>640
手元の環境だと出るよ。 LANG は普段は ja_JP.eucJP だけど、 C でも ja で
も関係なく出る。
FreeBSD だと標準の awk 20030729、 Linux だと gawk 3.1.1 で試したけど、
できたよ。
install-strip 以外のターゲットは出てる??
zle -R
でタブを打つとエラーにならない?
_zle:shift:70: shift count must be <= $#
>>642
4.2.0だけど同様になるね。
↓こんなかんじです。OS は Solaris 9 です。
----BEGIN BASE64----(a.gz)
H4sICCdWNUEAA2EApZBNTwIxEIbv/RVzMEGzDNuFBVkiCYQIHtSDeJIPU3a7bGW/
0hYVjP/dLuySaEw82KSdpzN5304nEGEIuIX++e3wftIfwZq9baBmL2cM90N8ougt
Zsu5Pdf9hdWz4SOXItVw5nzWYDzt9+AK7tiGhyLmF5XJC/uPC0FEsHWS23sV7a6Z
ezOFw2pS6iL1kDrgtHptt9eiDdpuNTudLqVgUY9SYlnWSbv/S9ulnue1TtrBANCp
t8Fy6i4MBgRYHBPkOdORwjCTPicQc5EQUNI3KFZYQCG7rDc7YHXqjnMQVn8h4Gdp
KNYNpZneKgIiNVS4loBM+hEGPP+REem33OHV001pKUwx2QRCEtymlSmMH0YmnSkd
7/yYs5RgGQKhdIkJM4M3m8uqyN+1ZEeGbRpn/oaA5IeIj8PJFDRbm9b9iBeVwooc
p2EaCjNSnsGrIJCw3Yo/r7JMmx5ZTuA3xFioHB3yBTIQ6m16AgAA
----END BASE64----
>>644
最初何かと思った(w 結果をそのまま貼り付けても良かったのでは。

Solaris 9 では確かに起きますね。 FreeBSD なら、 gawk-3.1.4 でも問題な
いのですが。また、 gawk-3.1.2 なら Solaris 9 でも上手く行くことがわか
りました。ですからその間の gawk の変更で何かやっちゃったのがあるんじゃ
ないかと思うのですが……。

とりあえずの対処法としては、ちょっと古い gawk に入れ替えるとかしかない
かな? というか Solaris9 なら /usr/bin/awk があるから、そっちを使うよ
うにすればいいという話もありますな。
setopt extendedglob
local word=${(M)LBUFFER%%[^[:blank:]]##}${(M)RBUFFER##[^[:blank:]]##}

より,もっと簡単な書き方は出来ますか?
ところで、ayamura.orgの管理人はまだ行方不明なのか?
>>647
どっからその話題が出てくるんだ?
640 がわざわざ ayamura.org にあるアーカイブを指定したからだろう。
>>642
zle -F や zle -I でも
651650:04/09/02 03:45
-F や -I に限定しなかった。 _zle に書いてないのもなると。 -Y とかでも
>>642
_zle の下の方の
while (( $#state )); do
case "$state[1]" in
の中で
(args) と (redisplay) の場合に _arguments 呼んでるから
state と context が書き換えられて
下の
shift 1 state
shift 1 context
でエラーが出てる
653652:04/09/02 04:08
あー、そうそう share/zsh/4.2.1/functions/_zle ね
っで、そろそろ utf-8 に対応しましたか?
対応ってどういうこと?
654の脳味噌はUTF-8に対応してない
「ぜっしゅ」と読んでいます
prompt expansion でカーソルポジションは変更するけど prompt には表示しないようなことはできますか?
%{%} の逆(の様なこと)がしたいのです.
659654:04/09/02 16:50
バージョン 4.0.7 なんだが、print_eight_bit しても、補完も化けるし、プロンプトに表示されるパスまで化けるね・・・。
>>659
端末は何?端末の設定に問題は無い?
>>660
うちでも化けるが、あなたの環境では化けないのか?
>>661
すまぬ、化けた。
そりゃ BadSoftware にもあげられるわ・・・
ttp://www.freedesktop.org/Software/BadSoftware
さすがに BadSoftware 呼ばわりされるとちょっとショックだな、と思いなが
>>663のリストを見てると、
tcsh: This shell has issues: "Unicode (UTF-8) doesn't seem to work". This is on their wish list, though.
があってちょと安心した(w
シェルで日本語なんて使わないからどうでもいいけど。
>>665
おらはlgrepとかよく使うだよ
migemo-grepつかうから
>>658
どゆこと?
空白いれんじゃだめなの?
669名無しさん@お腹いっぱい。:04/09/03 03:21
>>668
'川*‘ ー‘ )%~%# '
というプロンプトにしたいのですが, ー の部分が2バイト文字なのに
表示は半角分なのでカーソルがずれてしまいます.
mlterm だとエスケープが表示されないようなので,
'川*‘ %{ー%}^[‘ )%~%# ' と詰め物をすると一応できるのですが,
kterm とかでは無理なので,カーソルポジションは変更するけど
prompt には表示されない,ここでいうエスケープの様な方法はありますか?
またキタ━━━━━━(゚∀゚)━━━━━━ !!!!!
ワラタ
>>669
何が問題かよくわからんけど
^[[C はどう?
>>672 表示さてしまうのでだめなようです.
これは何ですか?矢印?

これを見て思いついたのですが,
毎回色を決定しているのでプロンプトの最後 ^[[0m とかを入れても変わらないので,
'川*‘ ー‘ )' -> '川*‘ %{ー‘%} )^[[m'
'从*・ 。.・从' -> '从*%{・ 。%}.%{・%}从^[[0m'
' ノノ*^ー^)ノ' -> ' %{ノノ%}*^%{ー%}^)%{ノ%}^[[0m'
などで解決できたようです.
ありがとうございました.
674672:04/09/04 16:43
>>673
何が問題かわかった。
そういうことなら − を $'\xa1' と $'\xdd' みたいに 1バイトずつに分けて
$'\xa1'%{$'\xdd'%} とかやれば?
まあ、もう解決したようだけど。
っていうか半角表示の 2バイトの − って UTF-8 とか?
675673:04/09/04 17:05
>>674
そんな方法もあるのですね.勉強になります.
たぶん ー は機種依存?
\x8e\xb0 でした.
676674:04/09/04 17:23
>>675
あ、EUC-JP の半角カナね。
つーか、どーでもいいことだけど ascii の - じゃダメなんすか?
677674:04/09/04 17:28
愚問だった。ダメなんだね。
678名無しさん@お腹いっぱい。:04/09/12 04:09:13
定期保全

function RomaToKana () {
emulate -L zsh
setopt extendedglob
local MATCH
LBUFFER="${LBUFFER%%(#m)[^[:blank:]]##}$(ruby -p -r romkan -e '$_.to_kana!' <<< ${MATCH})"
}
zle -N RomaToKana

あとは任せた!
保全が必要になる状況にはなってないのだが。
狼板住人には保全必要な状況に見えるのだろう。
linux の話で悪いが、_rpm に於ける rpm -q <TAB> の読込み手続きを

253c253,257
< _rpms=( $(_call_program packages rpm -qa 2>/dev/null) )
---
> if [[ -f /var/log/rpmpkgs ]]; then;
> _rpms=( ${$(cat /var/log/rpmpkgs)%.*.rpm} )
> else
> _rpms=( $(_call_program packages rpm -qa 2>/dev/null) )
> fi

と書き直したら、驚異的に速くなった。(/var/log/rpmpkgs は毎日 crond で更新)
タイムスタンプあたりで自動更新したらいいかもね。
683名無しさん@お腹いっぱい。:04/10/02 19:43:21
hoge () {
typeset fuga
vared -p "> " fuga
print $fuga
}
zle -N hoge

M-x hoge でエラーが出ます.
hoge:vared:4: ZLE cannot be used recursively (yet)

zle widget の中で vared -p の様なことはどうすれば出来ますか?
>>683
read-from-minibuffer
man zshcontrib
reset-prompt なんてあったのか!
まあ NEWS に書いてあるけど
mplayer -play

から補完しようとすると

option
-display -playlist
corrections (errors: 1)
-playlist

とか出るけどなんでだ?
>>686
手元の環境ではならなかったなあ。普通に -playlist が補完されるよ。
ただし p のところにカーソルを合わせると、 -display と -playlist が補完
されるね。
688686:04/10/03 19:28:49
-play からああなったのは matcher-list に '+r:|?=**' が入ってたからだった。
でもそれなしでも -pl からで似たようになる。-p からはならないけど。
で、調べた結果 _mplayer の _x_arguments で ret を設定してないのが原因のよう。

% diff _mplayer ~/.zfunc/
111c111
< '(-use-stdin)*:video file:->mfiles'
---
> '(-use-stdin)*:video file:->mfiles' && ret=0

で直った。
4.2.1 の話ね。
ここのスレで出てきた質問をまとめてみたんだが、このスレのレベルが高いのか、マニアックな FAQ になってしもうた。
http://hiki.ex-machina.jp/zsh/?FAQ%40zsh%A5%B9%A5%EC
>>689
乙カレー。
まだ読んでる途中だけど、chpwdの例がprecmdになってるよ。
出力の最終行が表示されない の項目でオプションの名前が
promptct になってるけど promptcr が正解だと思う。
>>689
乙カレーさまです
693名無しさん@お腹いっぱい。:04/10/06 01:36:18
manpath=(
${^path:h}/man
$manpath
)
↑この`:h'ってどういう意味?
zshexpn(1)の Modifiers の項より抜粋。
h Remove a trailing pathname component, leaving the head. This works like `dirname'.
>>694
サンクス
>>689 からたどれる zsh 用 euc-jp patch ってカーソル移動まわりだけなんだね。
でもそれは user の widget でなんとかしちゃったからなあ。早く知ってればよかったけど。
BUFFER は正しいのに文字化けする方が直ってればちょうどよかったのに。
697689:04/10/06 23:18:18
>>690-692
指摘アンド修正ありがとうございます。

ところで、そこの Wiki の管理人って最近どうしているんだろう?
698名無しさん@お腹いっぱい。:04/10/07 00:14:41
>>696
うp
?
>>698
ほい。

% gzip <zshzle-multibyte-char|encode-base64
H4sIADIEZUEAA81T/2vaQBT/+e6veDQpVcZB7U/FIcM6uznUga0w0ExicqnZ0iTkTuY07m/vJcaY
xDvtNhgrCOXe573Pl/eiwfPS4+78J6dgLczItDiNgC3DMIg4xhrQpUW+hTKUKE6azPWfPJoUmga0
YPJ1ujIbZLpy6HR1m/wcI8V96j3Mvsyub65vd7gcZhT+LSMbKTIZo4I0bvYQRzkwFz5LhM9Ckwvp
vui6qJVVxWXquEwTv6tfYPmsln5Vk9PHFfGxWqmYf3VObTHr+HfEC+naCe2SncV/bUjYwU4Q/TAj
m+TcJOGGWh02GMQfFQVTnBTpw5ot0idGeRByoCtOfZvaT14wT9+9wDI9GLQfOx9hcNf90BvCoDt8
n9YiGlKTg74ZjgfdUa/TJI0t2AFGKbyFUVPURnfj+/vuSNNq2nNd/yWPY4tRZzx6+Dx609I3Wtq+
TSnswKd4i/HctL7/N5b6O0uXl6+0ROSebOpR4UPlSCklS7RVyFYtQhrinzL3c+Y8gtcxSwlJEBHP
ZfxA7DowmQBZg545A8N4C3xBfYzWHoUELVoD16Jst3WP0V1JypBiHDdRwCPTZ2HAqhD2705o6Ytx
kL1idDDbPzKbzElcyT9kjKh3Kqp9t+KjwUhEkh+0ZKdnzvqUsGyG+IzT+aUjSPrIUNWaVVWas7J8
zdXek6iTt7gHKc8ls9FW2ED75wNjW+UJ5e9FsFQeyl6lU+Ud1fJZjn0ERa5yLG11LOhQyWLSKusu
pVPZjFZdYNmBAl3QieQbP5pbbDlzLRKWakKKE9KObqgaUfWmXgBOC/RbDQoAAA==

載せるにあたってちょっと修正した。
以下、あんまり必要なくてやってないこと。
multibyte_char_pattern は zstyle 使った方がいいかも。
あと、負値の NUMERIC には対応してない。
それとディレクトリを補完した直後に backward-multibyte-char とかしても / が消えない。
なんかほかにあったかな。

使うときは source zshzle-multibyte-char とする。
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

で補完に色が付かなく、
eval `dircolors -b`
とやって LS_COLORS を設定しようとしても値がからっぽなのでちょっと悩みましたが
TERM を cygwin から rxvt にしてみたらちゃんと設定されました。
.dir_colors に TERM cygwin の行がなかったのでしょう
svn {copy,move} でファイル名を補完するにはどうすればいいでし
ょうか。zstyleでおねがいします。
704名無しさん@お腹いっぱい。:04/10/15 23:27:38
コマンドラインスタックが超絶便利なはずなのに慣れで\C-uで消して次のコマンド入力してしまう。
コマンドラインスタックが超絶便利なはずなのに慣れで\C-a\C-kで消して次のコマンド実行して\C-yしてしまう。
>>703
svn help $1
の出力と
svn $1 からの _complete_help の結果と
_complete_debug の結果から _svn_subcommand の中で
$_svn_subcmds と $_svn_subcmd_usage がどうなってるか
わかればなんとかなるかな。
$1 は {copy,move} 。
svn help の出力とかも。
うちは svn ないので。あるひとどんだけいんだろ。
最初の 1つだけでもなんとかなりそうだけど
708名無しさん@お腹いっぱい。:04/10/17 09:59:03
cd したときに補完されるディレクトリが 2 段に
同じものが表示されてしまうんですけどなんででしょ?

% \ls -F
a/ b/

% cd [tab]
a/ b/
a/ b/

% \cd [tab]
a/ b/
>>708
zstyle ':completion:*:descriptions' format %B%d%b
するとどうなる?
710708:04/10/17 11:38:47
>>709
% cd [tab]
a/ b/
directory in cdpath
a/ b/

となりました。
$cdpath はどうなってんの?
てか
where cd
は?
713708:04/10/17 13:34:54
>>711
うは $cdpath に ./ が入っている…。
これが原因かな。

>>712
cd: shell built-in command
でした。
ていうか zsh --version は?
zstyle ':completion:::::' completer _complete
としたらどうです?
というか zstyle の completer はどうなってますか?
>>710
その状態で \cd から試すと?
717708:04/10/17 20:46:10
% /sw/bin/zsh --version
zsh 4.2.1 (powerpc-apple-darwin7.5.0)

>>715
> zstyle ':completion:::::' completer _complete
> としたらどうです?

% cd
local directory
a/ b/
directory in cdpath
a/ b/

718708:04/10/17 20:55:23
ゴチャゴチャしていた zstyle を思い切って消したら
直りました。これから、必要なものだけ入れるようにします。
% echo (/sbin|/bin)
zsh: bad pattern: (/sbin|/bin)
path の pattern ってなしなんだね
zshexpn(1)より
----
Note that grouping cannot extend over multiple directories: it is an
error to have a `/' within a group (this only applies for patterns
used in filename generation).
----
ということですね。
% echo /(bin|sbin)
ならできる。
いやー実は
% echo (${PATH:gs/:/|/})/*(S)
とかやろうとしてた
ごちゃごちゃやればできるのかもしれないけど、漏れなら、
for i in ${path}; echo -n $i/*(S); echo
ってやるかな……。
% for i ( $path ); echo $i/*(S)
結局こんなんした
cd - からの補完で cd -1/ とかなるのっていままであまり気にしてなかったけど
やっぱり面倒なときがある。だれか直したひとおる?
/ がつくのは bug なんよね?
>>724
4.2.1 ですが、私の環境ではそのようなことはありません。
cd が関数定義されているのでは?

便乗質問です。bindkey -a (select vicmd keymap)って効きますか?
726724:04/10/25 03:57:07
4.2.1 で cd の関数定義はない。
そちらではなりませんか。
dirs -v でディレクトリのリストが出る状態、っていうか
directory stack のある状態でだよね?
/ がついても cd が成功すればいいんだけど。
補完なおすより cd -1/ を受け付けるように関数書いた方がいいかな。
bindkey -a は効いてます。
727725:04/10/26 21:32:01
>>725 (bindkey -a が効かない)
自己解決。man zshzle にあった Special Widget zle-line-init をやったら vicmd モードになりました。
bindkey -v
zle-line-init() { zle -K vicmd; } ; zle -N zle-line-init

>>725 (cd の _directory_stack 補完)
% compdef _cd cd
やっても駄目ですか?? それでもだめなら、あまり知識のない私はお手上げです。
728724:04/10/27 01:10:25
あ、効くってそういうことですか。
> % compdef _cd cd
変化ありません。
729724:04/11/02 03:47:47
>>727
いまさらですが cd の補完について。
setopt cdablevars だと -1/ みたいになるようです。
_cd の 30行目の条件で PREFIX の先頭が [-+] かに関わらないため、
こうなるようす。
=() で filename extension を指定できないものか
array から特定の値の要素を除去するのって zsh の機能である?
zsh野郎は補完マニア。readlineについて小一時間語れそうだ。
>>732
どこから readline が出てくるんだよ。
734名無しさん@お腹いっぱい。:04/11/13 08:51:34
>>731
単に array に対して :# の置換とかをするのじゃ駄目なの?
736731:04/11/14 09:56:32
>>735
いえ、それでいいです。気付きませんでした。ありがとうございます。
737名無しさん@お腹いっぱい。:04/11/15 21:18:21
zsh に bash の↓に相当する機能って無いの?

(info "(bash)Bash Builtins")
`checkwinsize'
If set, Bash checks the window size after each command and,
if necessary, updates the values of `LINES' and `COLUMNS'.
>>737
ウィンドウサイズ変えると勝手に$LINESと$COLUMNS変わるけど?
>>738
ほんとだ。ありがと。
>>734
移行を促した本なのかな。ちょっと気になる。
> focusing on two of the most recent Bourne shell variants, Bash and Zsh.

ってあるから、bash から zsh に移行する本じゃなくて bash と zsh の本なんじゃないの?
あ、 A to Z にかけてるとか
debian に ash(netbsd の sh) というのがあるが、
これなら ash to zsh になるな。
C-d を単語単位で消すようにするにはどうしたよいでしょうか?
>>745
bindkey '^D' delete-word
とか?
747745:04/11/17 00:05:55
>>746
設定してみましたがこちらの期待の動作ではありませんでした。
/usr/local/bin
を消すときに usr local bin という単語レベルで消すのが期待する動作です。
bashとかだとデフォだと思ったんですけど、なんか単語境界を設定するオプションが
あったような気がするんですが、それがなんだったか分からない…。
>>747
M-dと同じ動作?
だったら Src/Zle/zle_bindings.c には z_killwordってあるから
これbindすればいいと思うのだが。
749名無しさん@お腹いっぱい。:04/11/17 00:15:11
>>747
C-w を使ってる
>>747
WORDCHARS を設定するとよろし。

WORDCHARS は「単語の区切りとみなさない記号」を指定する変数。デフォルト
ではこの中に/は含まれていたんじゃなかったかと思った。

漏れは
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
としている。
自分は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
753745:04/11/17 01:10:13
みなさん有難うございます。そうそうC-dと間違えて書いたけど
本当はM-dを>>745のようにしたかったとです。
WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
でM-dもC-wも期待どおりに動きました。ヤター!
754745:04/11/17 01:11:43
>>753
レス番間違えたけど気にしないで…。スレ汚しスマソ
>>742
さっき、amazonから届きました。
目次は

Part 1 : Introducting the Shell
Part 2 : Using bash and zsh
Part 3 : Extending the Shell

Appendix
A : Unix Programs
B : External Resources
C : Glossary

中をチラッと見る限り、純粋に zsh の本ではなくて、bash と zsh が対比する形で
かかれてます。

詳細は(機会があれば)また後日。
757名無しさん@お腹いっぱい。:04/11/18 23:06:58
cygwin で zsh --login で起動すると

>You are running this script under zsh. Edit this script by hand.
>
>(failed to source lilypond-profile)

と警告が出ます。どのような設定が必要でしょうか?
>>757
あーそれ俺もでる。うざい。
alias cd='cd;ls'
このaliasでcdした後にlsするようになるのですが、auto_cd(ディ
レクトリ名だけでcdする)でこのようなことをするにはどうすれば
いいでしょうか?
setopt autocd
761从*・ 。.・) ◆SayuminPM. :04/11/20 16:14:43
>>759
function chpwd () {
ls
}
762759:04/11/20 19:04:39
>>761
ありがとう
763从*・ 。.・) ◆SayuminPM. :04/11/21 01:03:14
[email protected] とったどー
>>757
lilypond-profile って?どこに?
while true; do
mail [email protected] <shine.txt
done
輝け
>>761 = >>171 (=>>192=>>518=>>669) なのですか?
そうです.
性別、年齢、体重、めがねの有無、趣味など教えてください。
770名無し募集中。。。:04/11/22 07:13:36
いやです.
compdef hoge=foo fuga=foo moge=foo
とかやろうとしたけど、2つめまでしか登録できなかった。それ以上は
compdef: unknown command or service: foo
となります。複数の行に分けても変化無し。
なにか抜け道はないでしょうか。
>>771
share/zsh/4.2.1/functions/compinit 269行目
- func="$_comps[${_services[(R)$svc]:-$svc}]"
+ func="$_comps[$svc]"
のようなきがする
それでとりあえず動いたようです。tnx.
autocd使っている人多いのかな.やたら補完候補が多くなるので使ってないんだが.
/etc/passwdにあるユーザをcdの補完対象から除きたく
>>774
./
../
~
/
から始まる場合のみ補完、ってオプションがあれば便利だと思う。
>>775
autocd の?
あ、 cd っていってるし違うか。
とりあえず share/zsh/4.2.1/functions/_cd の 45行目
if [[ -o cdablevars && -n "$PREFIX" && "$PREFIX" != <-> ]]; then
から始まるブロックを消せば止められるけど。
$HISTFILE.<-> に match するファイルができるんだけど、
コレなに?前からちょっと気になってた。
ちなみにファイルの中身は <-> の部分です。
javaの補完がゴッツ重い。
自分でカスタマイズする根性がないけど
du とか mutt の引数(ほとんど単なるdirectory選択のはずだが)は
やたら重い。directory 階層の下まで覗きに行くのか、
各 file の中身をチェックしているのか...
>>781
duの引数はただのファイルだけど、muttはユーザ名とかホストとか
オプションとか
783名無しさん@お腹いっぱい。:04/12/02 11:15:09
setoptでappend_historyとshare_historyしてます。

ときたまhistoryが巻戻ってしまうのですが、
(昔のhistoryになってしまう)
解決方法をご存知でしたら教えてください。
>>780
確かにCLASSPATHをたくさん指定するとごっつ重い。
jarの展開が重いのか、classの検索が重いのかは不明だけど
zprof でしらべてみよう
>>783
append_history と share_history って同時指定するもんだっけ?
append_history はデフォルトで有効だが、share_history を有効に
すればこっちが優先される
>>873
具体的には?
789788:04/12/03 23:45:28
s/873/783/
>>780,>>784
java の補完を僅かに高速化してみた。

% diff /usr/share/zsh/4.2.1/functions/_java_class _java_class
17c17
< c+=( ${${${(M)$(_call_program jar_classes jar -tf $i)##*.class}%%.class}:gs#/#.#} )
---
> c+=( ${${${(M)$(_call_program jar_classes unzip -l $i)##*.class}%%.class}:gs#/#.#} )
.cshrc に、
if ( -x `which zsh` ) then
exec zsh
end
とかしてるんですが、これだと、外からこのマシンへのscpに失敗するんですよね。
みなさんどうしてますか?
if ( -x `which zsh` ) then
    if ($?prompt) then
        if ($SHLVL == 1) then
            exec $zsh -l
        endif
    endif
endif
>>792
ぬりがとう!
SHLVLは1じゃないことが多いので、そこだけ削除して、いただきました。
例えば、tarの補完関数とかがおせっかいすぎるので、
自分でもっとシンプルなのを、compctl で書きたいん
だけど、どうやって特定のコマンドの補完関数を無効
にできるんでしょうか?
functions の中のファイルをリネームというのはしたく
なんです。
FPATH=~/.zfunc:$FPATH
とかして、 .zfunc の中に自分用のやつを入れる。
ぬりがとう。
空のファイルを作れば、無視されるんだね。
$ touch foo/_tar
みたいに。
>>778
それ、`-' + TABを利用してのcdの履歴が利用できなくなるようですね。
現在編集しているコマンドラインの内容を履歴バッファに登録するだけで
実行はしない方法があったと思うんだけど、どうやるんだっけ?
マニュアル見ても思い出せん。
>>798
そんなのあったけ?
C-qのpush-lineではなくて?
>>799
うん。どこかで読んだ気がするんだけど。実行せずメモがわりとして履歴に
入れておきたいと思うことがごく偶にある。
ごく稀つーか、結構時々くらいにあるよね
めんどくさいんで echo hoge hoge で済ませてるよ。
パイプが絡むと面倒だけど。
803名無しさん@お腹いっぱい。:04/12/09 19:06:17
% setopt interactivecomments [/work]
それは使えん
>>804
えーなんで? 使えますよ。先頭に#を付けるだけです。
実行したのと同じようにしたいんよ。インクリメンタルサーチを使わずに
コマンドラインの先頭数文字で呼び出すことがほとんどだから。
メモしたことさえ忘れるかもしれないし。
>>796
無視だけなら compdef -d tar でも可。

>>797
あー、それなら 47行目で
- alt=( "$alt[@]" 'named-directories: : _tilde' )
+ alt=( "$alt[@]" 'named-directories:directory-stack: _directory_stack -qS/' )
として、48行目からの else節を削除っつーのはどーでしょ。未確認。

>>798
マニュアルの記述は知らないけど、
history-register-line () { fc -R <(<<<$BUFFER); zle send-break }
zle -N history-register-line
でどうすか?
最初 setopt noexec 使おうと思ったけどコレ turn on(off?) できないんだね。

>>803
[/work] って何?
>>807
RPS1
>>807
> history-register-line () { fc -R <(<<<$BUFFER); zle send-break }
> zle -N history-register-line
これで望みが叶いました。ありがとうございます。

しかし、以前読んだのが何だったのか思い出せないので、まだすっきりしない(w
>>808
なるほど
みんなの ulimit -a の結果を教えて
特別な設定してる?

ちなみに私は
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-m: resident set size (kbytes) unlimited
-u: processes 4091
-n: file descriptors 1024
-l: locked-in-memory size (kb) unlimited
-v: address space (kb) unlimited
-N 10: file locks unlimited
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) unlimited
-n: file descriptors 256
-v: virtual memory size (kb) unlimited
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-m: resident set size (kbytes) unlimited
-u: processes 7679
-n: file descriptors 1024
-l: locked-in-memory size (kb) 32
-v: address space (kb) unlimited
-N 10: file locks unlimited
-N 11: 1024
-N 12: 819200
最新の CVS HEAD では、
----
autoload -U compinit
compinit
----
と書いてあるだけで、TAB を押しただけで、core を吐いて落ちてしまいます。
Linux kermit 2.6.9-1.1032_FC4 でも、Solaris8 でも、同様でした。
何か環境・設定がおかしいのでしょうか。
>>814
Solaris 9 4/04 だと問題ないけど…。
>>815
> Solaris 9 4/04 だと問題ないけど…。

そうすると、設定ファイルの問題かな。.zshrc とか消すと、TAB 押しても平
気なんだよな。昔から使っている設定ファイルのどこかに問題があるのかも知
れないなぁ。(×_×;)シュン
33 も書いてるけど、うちでも、日本語の入力ができません。
入力しても、化けたようなのが表示されるだけ。
setopt printeightbit 以外には何したらいいんでしょうか?
ちなみに、IMは、kinput2 で、bash だったらちゃんと日本語が表示されます。
>>817
ターミナルエミュレータが何かという情報を隠すのは宗教上の理由?
>>817
euc-jpなら表示できるはず。
>>817
UTF-8 環境で補完が化ける & 日本語入力ができない
http://hiki.ex-machina.jp/zsh/?FAQ%40zsh%A5%B9%A5%EC#l4
zshの補完で~/.bmp(beep media playerのディレクトリ)が
ビットマップイメージファイル(foo.bmp)と勘違いして色付けされます。
これって回避できませんかね?
>>821
どんな設定?
823817:04/12/22 03:34:12
>>818
kterm です。

>>819
euc-jp です。

bashで通るのが悔しいorz
>>823
入力だけなら printeightbit は要らないはず。
>>817
つーか。化けたようなのってどんな?
826817:04/12/22 07:11:27
>>825
kterm + kinput2 で、
「日本語」は、「F|K¥8l」
「あいうえお」は、「$"$$$&$($*」になる。
>>826
ちょっと
bindkey "\M-^@"
してみてっていうか
bindkey の "\M-^@"-"\M-^?" の部分が
self-insert-unmeta になってるとかないよね?
>>826
jis?
>>826
コマンドライン以外は化けない?
catとかで入力してみて。
830821:04/12/22 14:38:14
>>822
//.zshrc
eval `dircolors lscolors`
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

// lscolors
.bmp 01;35

てな設定ですが。
>>830
eval のとこを
LS_COLORS='*?.bmp=01;35:'
で gnu ls 共に .bmp の色が消えるようだ。
>>831
それやったら普通の画像ファイルの設定まで無効になるだろ。
LS_COLORS では ? はメタ文字ではない。

zsh では、
=(#b)*?.bmp=01;35
などとすれば上手く行くみたい。

ただしこの設定は gnu ls だとエラーになるので LS_COLORS には含めないようにしないといけない。
なるほど。tnx
834831:04/12/22 20:18:52
これは失礼
835817:04/12/23 03:52:35
>>827
self-insert です。

>>828
euc です。

>> 829
cat で入力しても、同じように化けてます。

はー。凹む。
(Mac OS Xだからか...。)
>>835
> (Mac OS Xだからか...。)
環境を真っ先に書かない宗教的な理由を(ry
>>835
>cat で入力しても、同じように化けてます。
zshのせいではないようですね。
stty -istrip
でなおるかな?
838817:04/12/23 16:40:53
>>837
キタ━━━━(゚∀゚)━━━━ッ!!
直りました。ぬりがとう。
stty -istrip の意味が分からないのので、これから神様googleに
啓示を求めてみます。
具ぐる前に man 読む習慣つけろ
bash で OK とかあるから zsh の設定かなと思てたけど
よく考えれば他もありえますね
841名無しさん@お腹いっぱい。:04/12/25 23:33:57
utfのシェル上の日本語表示が化けるのは直すほうほうがとりあえず無いので
ファイナルアンサー?
>>841
hack
cd の補完対象に、チルダも付けていないのに、ユーザ名を補完するのは
止めたいんですが、何をいじればいいんでしょうか?教えてエラい人!
setopt nocdablevars
それか >>778,807 あたり
845さゆPさん ◆SayuminPM. :05/01/02 23:04:23
さゆっこ~% hoge
从*・ 。.・)ノ<hogeとかみつからないの
さゆみん~% rm -rf *
从*・ 。.・)ノ</home/sayuminぜんぶけすの [yn]? n
道重さゆみ~% cd ~root
从*・ 。.・)ノ<ぱーみっしょんでないどなの

みたいにメッセージを変えることはできますか?
>>845
できます。
>>845
libc にも変更が必要
cshだと萌え系のメッセージカタログがあった気がする。
>>845
翻訳フィルタを作れ
850843:05/01/03 05:11:00
>>844
さんくす。
冬休みだな
あるコマンド hoge の引数の補完をファイルだけにするにはどうすればい
いでしょうか?
>>852
デフォルトはファイルだけじゃないの?
>>853
はい。そうです。
言葉足らずで申しわけありません。
補完がファイルでない既存のコマンドの設定を変えたいのです。
~/.zshrcからcompinitって書いてある行を全部削除
cygwinで使うことを想定しています。
alias -s 拡張子=Program
といった設定を、Windowsの設定から自動生成してくれるツールは
ありますか?
>>854
compdef -d hoge
>>856
テキストファイルに落として perl でも ruby でも
>>857
ありがとうございます。faqのようですね。
年明け頃から zsh 起動時に
^mona:: No such file or directory
なんていうエラーが出るようになりました。(´Д`;)
ログイン名 mona 、ホームディレクトリは /home/mona 、zsh 4.2.1 です。

autoload -U compinit
compinit
としたときに(2回目の) compinit で上記のエラーが出ます。
他のユーザ(root)ではエラーが出ず、.zshrc,.zlogin をリネーム後に
autoload -U compinit; compinit としても同じエラーが出ます。
何か環境変数等が悪さをしてるようなのですが、原因に 全く見当が付かないのでご教授をお願いします…
4.2.1にしたら$SHLVLが2以上にならなくなった。
862861:05/01/04 10:52:44
正確に書くと、zshからzshを起動しても$SHLVLが増えなくなった。
不便
>>862
ほんとだ
% echo $SHLVL
1
% printenv SHLVL
1
% zsh
% echo $SHLVL
2
% printenv SHLVL
1
% zsh
% echo $SHLVL
2
% printenv SHLVL
1
% echo バグ?
バグ?
最後のは

% echo バグ?
おまえの頭がな!

とかなってほしかったのか?
どういう頭でそう思うんだ?
echo () { if [[ $1 = ]]; then 1=\!; fi; builtin echo $@ }
echo () { if [[ $1 = バグ? ]]; then 1=おまえの頭がな\!; fi; builtin echo $@ }
>>860
こんなんしてみて
{ setopt xtrace && compinit && unsetopt xtrace } 2>&1 |less
871名無しさん@お腹いっぱい。:05/01/12 22:10:41
Subject: Version 4.2.2 of zsh released

I've uploaded version 4.2.2 to ftp.zsh.org. Please try it out on as
many systems as possible before I upload it to Sourceforge and announce
it on Freshmeat. It would be especially good if someone could confirm
that there are now no problems on Cygwin.

There are lots of bug fixes and completion enhancements since 4.2.1,
only a few minor new features.
>>871
GJ!
SHLVLも直ってる。
Fedora Core 3 の iconv (GNU libc) 2.3.4 で codesets の補完が効かなくなったのは私だけ?

なお、_iconvを以下のように修正すれば補完が効くようになった:
- ${${${(f)"$(_call_program codesets iconv --list|sed -n '/^$/,$ p')"}## #}%//} && ret=0
+ ${$(_call_program codesets iconv --list)%%\/\/} && ret=0
>>873
再現方法教えて。
glibc 2.3.3だけど、その変更しても
zsh$ iconv --list (ここでTABを押下)
してもリストは出ないな。
875873:05/01/15 03:18:23
$ iconv -f [TAB]

$ iconv -t [TAB]
みたいにしてするcodesetsの補完です。
良く分からないけど
glibc 2.3.3
zsh 4.2.3
>>875で補完するとはいっぱい出てくるよ
877873:05/01/15 03:58:40
今気が付いたんだが、iconv --list の出力が呼び出し方に依って違っているみたいです
$ iconv --list
以下のリストには、知られているすべてのキャラクタコードが含まれています.
これは、これらの名前はコマンドラインパラメータのFROMとTOで使われる全ての
組合せを意味しているわけではありません. あるキャラクタセットは、
いくつかの異なる名前(エイリアス)と共にリストされます.

437, 500, 500V1, 850, 851, 852, 855, 856, 857, 860, 861, 862, 863, 864, 865,
866, 866NAV, 869, 874, 904, 1026, 1046, 1047, 8859_1, 8859_2, 8859_3, 8859_4,
(以下略)
$ echo $(iconv --list)
437// 500// 500V1// 850// 851// 852// 855// 856// 857// 860// 861// 862// 863// 864// 865// 866// 866NAV// 869// 874// 904// 1026// 1046// 1047// 8859_1// 8859_2// 8859_3// 8859_4// 8859_5//
(以下略)
$ iconv --version
iconv (GNU libc) 2.3.4
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
これはフリーソフトウェアです。利用許諾についてはソースをご覧ください。
商業性や特定の目的への適合性の如何に関わらず、無保証です。
作者: Ulrich Drepper.

878名無しさん@お腹いっぱい。:05/01/15 20:09:35
Some groundwork for Unicode in Zle
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
なんですぐに4.2.3が出たわけ?
>>879
Mac OS X のため
cygwin版は未だに4.2.0が最新
補完時に大文字と小文字を区別しないで欲しくて

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'

を.zshrcに追加したのですが,ちゃんと動作してくれません。
特にエラーが出たりはしないのですが。
zstyleはただ単に.zshrcに追加しても効果はないんですか?

zsh 4.2.1 (i686-pc-cygwin)
当方 zsh 4.2.1 (i686-pc-linux) だけどその設定は .zshrc に入れてて、機
能はしているよ。

ただ、たとえばカレントディレクトリに、 INSTALL と install.sh があって、
i を入力したあとに TAB キーを押しても、 install まで補完してくれたりは
しない。

これは、あくまでも個々のファイルに「マッチする」だけであって、共通のサ
フィックスを取り出す部分では区別されるからだと理解している。
これを上手く対処する方法があるなら漏れも聞きたいが……。
>ただ、たとえばカレントディレクトリに、 INSTALL と install.sh があって、
>i を入力したあとに TAB キーを押しても、 install まで補完してくれたりは
>しない。

エエーそうなんですか。
bashでも

/ero/AV
/ero/adult がある時に
cd /ero/a TAB を入力すると二つとも候補に出ますよね。
引用した例でもINSTALLとinstall.shが候補に出るはずです。
これをzshでやる方法があるなら>>883さんも知りたいということですか?

違う、候補にはなる。
でも install まで補完してくれたりはしない、ということ。
そういうことですか,そうですよね..orz
うーん,どうして動かないんだろ。
テンプレサイト巡りでもしてきます。
[1] % zsh -f
[2] % autoload -U compinit
[3] % compinit
[4] % zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
(TAB 0回目) [5] % : i
(TAB 1回目) [5] % : iNSTALL
(TAB 2回目) [5] % : iNSTALL
INSTALL install.sh
(TAB 3回目) [5] % : INSTALL
INSTALL install.sh
(TAB 4回目) [5] % : install.sh
INSTALL install.sh

みたいになったけど。
いつも setopt menucomplete だから no_menucomplete はよくわからん。
ports こねーなあ
889882:05/01/21 00:21:39
おお!その通りに入力したらいけました。
ただ,毎回これを入力するのは大変なので
これをファイルに書くとしたらどのファイルにどう書けばいいのでしょうか/////
890882:05/01/21 00:30:18
うはぁそのまま書けばいいんですね。
これでしばらく試してみることができます。
ありがとうございました。
891885:05/01/21 00:42:10
>>887
うぉ確かに動いてた。スマソ。
>>888
send-pr
文字化けうぜぇえええのは仕様ですか?
lsとか補完候補は化けないけどプロンプトのある行だけ化ける。
しかしなぜか半角カナは入力,表示共におっけー
どゆことよ
894893:05/01/22 10:55:17
つえぇええええええ
ZSHつえぇえええええええええ
なんだよこれ!!ファイラかよ!!
やべえ文字化けなんか気にならなくなってきた。
おもしれ
>>893
仕様だ。日本語ファイルは使うなってことだ。
>>895
ということにしたいのですね
>>893
半角カナ入力OKなの?
環境の詳細キボンヌ
半角カナでもタ行以降は化ける
ア カ サ行はOK
900893:05/01/22 21:09:47
>>897
そうなんです。
cygwin環境からXなしrxvt上で使っているのでIMEでの入力になるんですが
bashだと問題ないのにzshだと化けますね。
設定次第で日本語入力いけるんじゃないかって期待もあったんですけど
どうやら無理っぽい予感。
http://sylphys.ddo.jp/upld2nd/pc/img-box/img20050122210245.png

lsとか補完候補は化けないんですけどねぇ
まぁそんな事気にせず使い続けますけど。
lsで化けないのはzshとは無関係
補完候補が化けないのは知らん。
うちじゃ補完候補もバケバケだけどな。
関数内でC言語でいう static な変数を使うことはできますか
function hoge () {
static typeset -i HOGE=0
print $((HOGE++))
}
% hoge
0
% hoge
1
% echo $HOGE

%

みたいに関数外からはアクセスできないようにしたいです
4.2.1 まではないと思うよ。
今は知らん。
>>900
\012 が ^J (J -> \112) になるように
\212 が ^ハ (ハ -> \312) になるんだと思うよ。
SJIS では。
つまり
\000-\037\177 と
\200-\237\377 あたりが化けるのでは。
EUC だと 2バイト全角が化けずに(色々やると化けるが)
2バイト半角が化けるけどね。
対応するのが難しいのか
優先度が低いのか

アホアホマ〜ン

た〜す〜け〜て〜
優先順位が低いんでしょ
Unicode なら >>878
908名無しさん@お腹いっぱい。:05/01/23 18:57:50
もちろん、zsh です。
読むのマンドクセからメモ

Some groundwork for Unicode in Zle
http://www.zsh.org/mla/workers/2005/msg00035.html
910888:05/01/25 02:25:23
ports きた。Update to 4.2.3
ports って自分で書くの難しいの?
rpm しか知らないんだけど
フーン
913名無しさん@お腹いっぱい。:05/01/25 04:50:51
( ´_ゝ`)フーン
FreeBSD ports で 4.2.3 入れたんだけど、
ports の Makefile のターゲットを補完してくれなくなったっぽい

あと GNU global の補完が効かないのはまだ直ってないみたいすね
そうなの? じゃあ4.2.3は見送るかなあ。
まあUnix/_makeをとっとけばいいのかもしんないけど。
makeのターゲット補完はよく使うからできないと痛いなあ。


ところで、makeの補完で変数展開をしたものを解釈してくれると嬉しいんだけど
難しいでしょうか。
ん? 普通のターゲット補完はできるよ。できないのは ports のターゲット補完。

漏れの場合 root は zsh にしてないし、そもそも portupgrade 使ってるから、
それくらいはやってくれなくても別にいいけど……。

見比べてみると Unix/_make はかなり大幅に変更があるみたいだね。
expandVars という関数があるみたいだけど、これは何をやってるんだろう。
あ、そうですか。勘違いしてしまいました。
こんなおバカにフォローしてくださってどうもです。

expandVarsとな? 入れてみよう……。
ports の make 補完は clean distclean がなかったからなあ。
_mplayer は直ったかな、と後でみてみよう。
4.2.3 _make は .include はみてくれるようだけどパスが $PWD に限られてるようだ
>>919
あーなるほど。それで意味がわかったので、ちょっと試してみた。
--- /usr/local/share/zsh/4.2.3/functions/Completion/Unix/_make 2005-01-22 22:41:31.000000000 +0900
+++ ./_make 2005-01-26 14:31:43.669529128 +0900
@@ -1,6 +1,6 @@
#compdef make gmake pmake dmake

-local prev="$words[CURRENT-1]" file expl tmp is_gnu dir incl
+local prev="$words[CURRENT-1]" file expl tmp tmp2 is_gnu dir incl

expandVars() {
local open close var val tmp=$1 ret=$1
@@ -120,6 +120,8 @@
tmp=( $(_call_program targets "$words[1]" -nsp --no-print-directory -f "$file" .PHONY 2> /dev/null | parseMakefile $PWD) )
else
tmp=( $(parseMakefile $PWD < $file) )
+ tmp2=( $(parseMakefile /usr/ports/Mk < $file) )
+ tmp=(${tmp} ${tmp2})
fi
_wanted targets expl 'make target' compadd -a tmp && return 0
fi
こんな感じで ports も補完できた。
ただし、動作が固まるくらい時間がかかるので、あまり出来はよろしくないです。
二倍になった。 時間が。
--- /usr/local/share/zsh/4.2.3/functions/Completion/Unix/_make  Wed Jan 26 02:02:27 2005
+++ ./_make     Thu Jan 27 00:53:06 2005
@@ -59,6 +59,12 @@
           val=${val##[ $TAB]#}
           eval $var=\$val
           ;;
+       ([[:alnum:]][[:alnum:]_]#[ $TAB]#\?=*)
+           var=${input%%[ $TAB]#\?=*}
+           val=${input#*=}
+           val=${val##[ $TAB]#}
+           eval : \${$var=\$val}
+           ;;
       ([[:alnum:]][[:alnum:]_]#[ $TAB]#:=*)
           var=${input%%[ $TAB]#:=*}
           val=${input#*=}
@@ -74,13 +80,14 @@
           local f=${input##$incl ##}
           if [[ $incl = '.include' ]]; then
               f=${f#[\"<]}
-               f=${f%[\">]}
           fi
           f=$(expandVars $f)
           case $f in
           (/*) ;;
+           (*\>) f=/usr/share/mk/$f ;;
           (*)  f=$dir/$f ;;
           esac
+           f=${f%[\">]}
           if [ -r $f ]; then
               parseMakefile ${f%%/[^/]##} < $f
           fi
実用的には 4.2.1 に倣って
--- /usr/local/share/zsh/4.2.3/functions/Completion/Unix/_make  Wed Jan 26 02:02:27 2005
+++ ./_make     Thu Jan 27 02:42:33 2005
@@ -70,6 +70,9 @@
            input=${input%%:*}
            print $(expandVars $input)
            ;;
+       (.include[ $TAB]##\<bsd.port.(|subdir.|pre.)mk\>*|.include[ $TAB]##\"*mk/bsd.pkg.(|subdir.)mk\"*)
+           [[ $incl = '.include' ]] && print fetch fetch-list extract patch configure build install reinstall deinstall package describe checkpatch checksum makesum clean distclean search
+           ;;
        ($incl *)
            local f=${input##$incl ##}
            if [[ $incl = '.include' ]]; then
すごく基本的なことかもしれまえんが,教えて下さい.
カレントディレクトリに .aho というファイルがあって,zshで
rm -f * すると .aho も消えるんですが,bashからだと消えません.
これってどういうことなんでしょう?

また,bashで,.ahoとか.bakaとか消したい為に rm -f .* ってやると
rm: cannot remove `.' or `..'
rm: cannot remove `.' or `..'
って言われるのが嫌なんですが,"."から始まるファイルがたくさんある場合
どうやって消すのが普通なんでしょうか?
ここはzshのスレですよ?
zsh では setopt glob_dots でそうなる。
bash なら dotglob とかじゃね?
そのオプション便利かもしれないけど、
長年の常識を覆されるので
慣れてないとチョット怖いね。
"*"で".aho"を含まない方がおかしい
>>928
(゜Д゜)ハァ?
*で.*が含まれたら恐いな
そして
* で .. が含まれてたらさらに恐ろしい
"."や".."が処理対象に含まれる方がおかしい
933名無しさん@お腹いっぱい。:05/01/29 05:03:12
きちがい?
934名無しさん@お腹いっぱい。:05/01/30 00:59:21
きちがい?
MSDOS 上がりの俺としては
unko1
unko2
unko.tiff
unko.jpg
unko.ps
があったときに ls unko*
で5つ全てが出てきたときはなんじゃコリャと思った。
>>935
UNIXしか使ったことのない俺としてはそれがどうしてなんじゃこりゃになるのかわからない
解説きぼん
自分が使うシステムの勉強をサボるな。
それが unix であれ MS-DOS であれその他であれど同じことだ
DOSの'.'は文字じゃないことに気付け
938はどちら側に対して言ってるのだろうかとふと思った
zsh遅い。重い。
486 辺りの方でしょうか?

いやマジでどの辺りだと zsh の遅さを体感できるのか知りたい。
942名無しさん@お腹いっぱい。:05/01/30 18:17:23
確かcompctlで、指定ワードリストで補てんする設定して、
タブで補てんできたんですが、
ワードが、a1 a2 a3で
a*<tab> としても補てんできないです。これは仕方がないんでしょうか?
ちなみにbashから乗り換え中で、bashでもできなかった・・・
SuperSPARCII 75MHz じゃ体感速度に違いは無かった
944名無しさん@お腹いっぱい。:05/01/30 18:24:11
シェルでもどうしようもできない、事と思うけど
バックグラウンドで実行したプロセスの出力を、
途中でファイルにリダイレクトできるだろうか・・
>>944
シェルの機能じゃむりじゃない?
dup して exec だから
946名無しさん@お腹いっぱい。:05/01/30 19:04:02
>>945
そーですよね。外部からのfd操作は無理っすよね。
/procのfd1から < で取得なんてのもしたんですが、無理でした。
| tee > log で実行するようにします。
体感する側のスペックの違いではなくて?
bashではどう考えてもできないzshの機能をお教え下さい
>>948
キモいプロンプト
>>942
zstyle ':completion:*::::' completer _complete
setopt globcomplete
みたいな?
$ cd ~
って bash はできるの? sh は無理ぽだけど
>>951
~展開ぐらいcshでもできるぞ。
>>951
~展開ぐらいashでもできるぞ。
>952
ワロタ
955名無しさん@Vim%Chalice:05/01/31 11:54:30
>>950
まじ、早速と思ったけど、bash経歴が長くzshのがわからなくなってしまった・・
bashだと complete -W "aa1 aa2" hoge
hoge <tab> で候補表示ですけど
zshでは・・、マニュアルページが少ないなぁ〜
マニュアルページが少ないだって!?
>>942=955
やりたい事がわからんのだが、こういう補完か?
% ls h*<tab>
% ls hage hoge
これは unsetopt glob_complete で可能になる。

ともかく、書いてることがよくわかんないからアドバイスのしようがないよ。
zsh のマニュアル多すぎて、もはや読む気がしないんですが。
というか、あのマニュアルを読んでも全然分からない。
他人が作った設定をコピペしてるだけ。
>>959
あほ
マニュアルが複数ファイルに分かれてるソフトは呪われるべきだ
>>961
ふつー info 使わない?
http://ja.wikipedia.org/wiki/Zsh
> このシェル全体の大きさは巨大であることは、 このマニュアルページの最初の有名な一文
> 「zsh は多くの機能を持っているので、マニュアルはいくつかのセクションに分かれています。」 と 13 個のセク
> ション名のリストからもよくわかるだろう。
man zshall
いつになったら日本語訳が完成するのだか
http://hiki.ex-machina.jp/zsh/?ManPage

しかし本当に、このwiki放置プレーだな。
>>965
結構がんばってると思うけどな。
>>965
国が自分に何をしてくれるのかを問うのではなく、
自分が国のために何ができるかを問おう。
なんでここで国家を持ち出すのだ
Kennedyを引用か
968はJFKの就任演説知らないのか。
で、なんでここでJFKを持ち出すのだ
zsh=国家
zsh=宗教
口開けて待ってないで自分で更新しろやvokeってことだろ。
その程度分かれよ。
(´-`).。oO(…………)
惰性でzsh使ってますけどzshの恩恵がどこにあるのかさえ分からなくなってしまった・・
>>976
素の sh != bash でも使ってみては?
1時間以内に間違いなく気が狂うぞ
kshを使う。zshと大して変わらんことがわかる。
変わるよ…。
変わるわよ♥
変わるわよ??
今更だけど zsh をどう発音するのかが分かりません。
zsh を周りの人はぜっしゅっていてるけど
私はぜっとしぇるって言うようにしている

sh えすえいち
bash ばっしゅ
csh しーしぇる
tcsh てぃーしーしぇる
ksh けーしぇる
zsh ぜっとしぇる
ずぃーしぇる
俺もぜっしゅと脳内では読んでるけど、人前だと迷う。
ずぃーしぇるもいいけど通じなさそうだし。
じしゅをすすめます
そんな単語は会話に出ないから大丈夫
チンチンshsh
次スレたてられないので誰かよろ
テンプレは?
英語
index http://www.zsh.org/
公式 http://zsh.sourceforge.net/
FAQ http://zsh.sourceforge.net/FAQ/
http://www.zshwiki.org/cgi-bin/wiki.pl
Zsh Workshop: Table of Contents
http://www.acm.uiuc.edu/workshops/zsh/toc.html
Writing Zsh Completion Functions
http://www.linux-mag.com/2002-07/power_01.html

日本語
zshのある暮らし
http://hiki.ex-machina.jp/zsh/
zsh に関するドキュメント(翻訳)
http://dengaku.org/naoki/zsh/
ドキュメントの日本語訳など(上のより古い)
http://tehanu.hpcl.titech.ac.jp/zsh/
FreeBSD なあなたのための zsh (The Z Shell) 設定
http://aquahill.net/zsh.htm
zshのおぼえがき
http://www.ayu.ics.keio.ac.jp/members/mukai/tips/zsh.html
zsh 用 euc-jp patch
http://www.ono.org/software/zsh-euc/
【至高のコマンドインタプリタzsh】
http://www.gentei.org/~yuuji/rec/pc/intro-zsh.html
zsh for the working researcher
http://cl.aist-nara.ac.jp/~daiti-m/text/zsh-intro.html
Z shell(zsh) へ乗り換えよう
http://www.sol.cs.ritsumei.ac.jp/~sawaki/comp/zsh/
zsh補完関数の書き方 (Writing Zsh Completion Functions の翻訳)
http://www.ayu.ics.keio.ac.jp/~mukai/translate/write_zsh_functions.html
リンク切れは消しておいた
997
998
次スレ別になくてもいいと思うけど
1000从*・ 。.・) ◆SayuminPM. :05/02/02 19:09:35
从*・ 。.・)ノ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。