■掲示板に戻る■ 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50



レス数が1000を超えています。残念ながら全部は表示しません。

zsh入門

1 :名無しさん@お腹いっぱい。 :2001/05/19(土) 23:42
なんかそろそろzshの補完機能をじっくりいじろうかなぁと思ったんですけど
compctl読みにくいですねぇ…
自分で書いたのもいまいちしっくり来ない…

ってことでみんなの.zshrc(主に補完部分)を見せ合いっこしませんか?
自分はまともなの書けてないですが…
zstyleも勉強したいので大歓迎
 というか参考文献が少なすぎるのでかなり喜ばれるはず

いままで他のshellを使ってきた方もこれを機に一緒に勉強しましょー

とりあえず自分のオプションはこんな感じです。tcshライクになってます。
bindkey -e
bindkey ' ' magic-space
bindkey '^W' kill-region
bindkey '^Q' reverse-menu-complete

setenv () {export $1="$@[2,-1]"}
unsetenv (){unset $1}

setopt prompt_subst
setopt nohup
setopt auto_cd GLOB_COMPLETE
setopt auto_remove_slash
setopt extended_history hist_ignore_dups
setopt prompt_subst
setopt pushd_ignore_dups rm_star_silent sun_keyboard_hack
setopt extended_glob list_types
setopt no_beep always_last_prompt
setopt cdable_vars sh_word_split auto_param_keys no_clobber
setopt complete_aliases setopt complete_in_word auto_list
unsetopt list_ambiguous auto_menu



55 :名無しさん@Emacs :2001/07/08(日) 14:58
気になったのでつかってみました。
.zshrcを~/に置いてみたが設定が反映されない。
どういたら読んでくれるの?
chshでログインシェルはzshにしてあります。

56 :名無しさん@Emacs :2001/07/10(火) 02:10
ZDOTDIR
ってどうやって設定するの?

57 :名無しさん@Emacs :2001/07/10(火) 08:36
~/.zshrc

alias ll='ls -l'
alias la='ls -a'
と書いているのに
% ll
zsh: command not found: ll
となってしまう。

どうして?

58 :名無しさん@お腹いっぱい。 :2001/07/10(火) 10:00
% echo $ZDOTDIR
でどうなる?

59 :名無しさん@Emacs :2001/07/10(火) 22:18
>>58

なにも表示されません。

% echo $ZDOTDIR

%

となります。

60 :名無しさん@お腹いっぱい。 :2001/07/10(火) 22:49
ううむ、ZDOTDIR がセットされてなければ、HOME から
rc ファイルを読むようになってるんだけどね。ソース的には。

61 :名無しさん@お腹いっぱい。 :2001/07/11(水) 03:07
OS は?>>59

62 :名無しさん@Emacs :2001/07/11(水) 04:40
FreeBSD4.3の7/6 snapshotです。
~/には zsh-4.0.2.tar.gzを展開した中に
ある.zlogin .zshenv .zshrcを置いてあります。

63 :名無しさん@Emacs :2001/07/11(水) 21:26
zshrc中のreturn 0って書いてあるのを消してある?

64 :名無しさん@Emacs :2001/07/12(木) 02:59
>>63
できたよ、お兄さん。
ありがとう。

どっぷりつかりたいとおもいます。

65 :名無しさん@お腹いっぱい。 :2001/07/16(月) 01:13
age

66 :名無しさん@お腹いっぱい。 :2001/08/06(月) 20:08
あげ

67 :名無しさん@お腹いっぱい。 :2001/08/07(火) 00:20
話題がないようなので、初歩的な質問をします。
history の量を増やすにはどうしたらいい?
export SAVEHIST=1000
これだけじゃ駄目なようです。

ついでに、複数の terminal を使っていた時に history が
merge されますが、この点でなにかかわった機能があったような
気がするのですが、知っている人いません?

68 :名無しさん@お腹いっぱい。 :2001/08/07(火) 00:46
HISTSIZEを指定しても駄目?

69 :67 :2001/08/07(火) 01:19
HISTSIZE ですか。どうもありがとうございます。
man をみろと言われそうですが、
zsh のマニュアルは巨大でなかなか全体が把握できないんですよ。

70 :名無しさん@お腹いっぱい。 :2001/08/07(火) 13:39
zsh poce reference ほしいな。
著者は akr 大センセイで(w

71 :名無しさん@お腹いっぱい。 :2001/08/19(日) 09:45
age

72 :名無しさん@Emacs :2001/08/19(日) 10:01
みんなは zstyle 関連なんか設定してる?
いけてる設定があったら教えて

73 :名無しさん@お腹いっぱい。 :2001/08/21(火) 10:48
Esc-qとかのコマンドを
bindkey -vにしてると使えないんだけど
どうしたらいいですか?
emacsモードの説明しか見つからないんだけど。
いいHPあったら教えてください。

74 :名無しさん@お腹いっぱい。 :2001/08/21(火) 10:54
alias -g L='| less'

(・∀・)イイ!!

75 :名無しさん@お腹いっぱい。 :2001/08/21(火) 12:11
>>25
MacOSXはTCSHがデフォルトダヨー。
アレ?Terminalがだっけ?

76 :名無しさん@お腹いっぱい。 :2001/08/24(金) 07:16
age

77 :名無しさん@お腹いっぱい。 :2001/08/24(金) 15:28
こんにちは.

zsh の function コマンドで foo -a, みたいなカンジで,
オプションつきの関数を定義するには
どうすればいいのでしょうか?

78 :名無しさん@Emacs :2001/08/24(金) 15:36
zshbuiltins(1) 内の getopts を見てね
あとは zmv とか zrecompile とかで具体的に getopts 使ってるのでそれも見てみてね

79 :77 :2001/08/24(金) 16:22
>>78

ありがと

80 :名無しさん@お腹いっぱい。 :2001/08/24(金) 19:20
bashより何がいいの?

81 :名無しさん@お腹いっぱい。 :2001/08/24(金) 21:26
>>80
名前が。

82 :名無しさん@お腹いっぱい。 :2001/08/25(土) 21:41
age荒らし

83 :名無しさん@お腹いっぱい。 :2001/08/25(土) 23:02
>>81
ワラタ

84 :名無しさん@お腹いっぱい。 :2001/08/26(日) 00:50
ん?マニュアルによるとcsh/tcshの
setenvコマンドも使えるとあるけど本当?

あとそろそろ閉鎖関連ネタは止めてください。
静かなUNIX板の雰囲気が台なしです。

85 :名無しさん@Emacs :2001/08/26(日) 00:54
どこに書いてありますか?
4.0.2 の StartupFiles/zshrc にも

setenv() { typeset -x "${1}${1:+=}${(@)argv[2,$#]}" } # csh compatibility

はあるし, setenv コマンドは無いように思うのですが

86 : ◆3Hbhvg7. :2001/08/26(日) 00:55
#zsh

87 :名無しさん@お腹いっぱい。 :2001/08/26(日) 00:56
>>85
すいませんマニュアルじゃないです。雑誌です。

88 :X名無し86 :2001/08/26(日) 00:57
関係ないけど
「UNIXコマンド例文事典(sh/bash版)」
は使えるなぁ。

89 :kinput2 --名無し :2001/08/26(日) 01:00
>>84がイイ!かどうかはわからないけどなんか言ってるage

90 :名無しさん@お腹いっぱい。 :2001/08/26 07:08
使ったこと無いなzsh
そんなにいいの?

91 :名無しさん@お腹いっぱい。 :2001/08/26 07:12
>>90
補完がすぎょい

92 :名無しさん@お腹いっぱい。 :2001/08/26 07:13
>>91

bashでびびったけどそれよりもいいの?
噂では聞いていたが。。。

93 :zshふぁん :2001/08/26 08:20
zshを使ってみて凄いと思うところ
・まずはともあれ **/ をやってみるとわかる。正直これだけの
 ためでも使いたくなる。
・foreach end とかで複数行にわたるスクリプトを実行して、その後
 C-pやC-r等で履歴をたどったとき、他のシェルでは初めの1行目しか
 表示されない。zshではendまで全部残っている。てゆーか
 これは他のシェルがタコだってことだな。
・自分で補完方法を定義することすらできる。つかってないけど・・・

あと、他のシェルで絶対できないことってある?

94 :Nanashi :01/08/26 09:22
bash は分からないけど tcsh と比べての利点なら
www.gentei.org/~yuuji/rec/pc/intro-zsh.html
がよく紹介されるね。
欠点はプロセスのサイズが大きいのと、慣れると元に
戻れない事。

95 :名無しさん@お腹いっぱい。 :01/08/26 09:53
そういえば昔は shell の利用者数って
tcsh > bash
だったのがいつのまにか
tcsh < bash
になってる気がするな

若干スレ違いですまん

96 :名無しさん@お腹いっぱい。 :01/08/26 10:07
自治age

97 :名無しさん@お腹いっぱい。 :01/08/26 10:37
tcsh ユーザってのは
・UNIX 歴が長い(csh -> newcsh -> tcsh と)
・初めて教えられたのが(先輩に)tcsh
ってことである意味古くからの血が流れてるかと

bash ユーザが急激に増えたのは bash が素晴らしいからという
わけではなく Linux が bash だから。シェルに限らず WM も
とくに変更せず GNOME 動かしたりしてるんだろーね...
(って twm からとくに変更しない人もある意味多いが)

tcsh -> zsh はあっても bash -> zsh はなかなか発生しない
ような気がする. 比率じゃなく絶対数としても tcsh は減って
いくと思われ。俺もその口で zsh に鞍替え。

shell は変えてもかーちゃんそのまま :-P

98 :名無しさん@お腹いっぱい。 :01/08/26 11:32
bashとzshの違いはやっぱり {1..200} とかの連番補完だろー。
wget http://なんとか//{1..200}.jpgで連番画像がゲットできる。(w

99 :zshふぁん :01/08/26 13:49
>>94
リンクありがとうございます。
私はzsh使い始めて8年くらいになりますが、
知らないことが結構書いてあり、参考になりました。
なかなか深いですよね。

100 :名無しさん@お腹いっぱい。 :01/08/26 16:10
>>98
おれは普段は bash 使いだが、画像ゲットのときだけは zsh だな。

101 :名無しさん@お腹いっぱい。 :01/08/26 20:22 ID:ebJTUBm.
>>99
そのページの作者の HIROSE さんは、'95 年ぐらいだったか
zsh のマニュアルを日本語に訳して fj に投稿されたことが
ある。印刷してかなりお世話になった。

新しい補完システムは全くもって複雑怪奇で、近頃の zsh では
compctl で定義した補完はちょっと動作が怪しいところがある。
新しい補完システムで定義しなおそうと思っていたのだが、最近
はもう諦めた(w

102 :名無しさん@お腹いっぱい。 :01/08/26 20:34 ID:f8ASnSi2
どこかでちゃんとzstyleで書かれてた使える.zshrcがあったんだけど・・・
間違って消しちゃってから、いまだに発見できないのよ

103 :名無しさん@お腹いっぱい。 :01/08/26 21:06 ID:fecfj9hI
>>98
まじ!?
bash使っているけど、
かんたんなスクリプト組んでいる自分がばかみたいだよ。

104 :名無しさん@お腹いっぱい。 :01/08/26 21:19 ID:ziMwZgcM
>>102
zsh-4.0.xを解凍してできたディレクトリのStartupFilesにzshrcの例があるよ。
俺はここから使えそうな部分だけ抜き出して使ってる。

105 :名無しさん@お腹いっぱい。 :01/08/26 21:24 ID:PDWlxzkc
>>103
そういう場合は、多分 hoge{001..200}.jpg とする方が
実際的の場合が多いだろうね(w

あと、細かい話だがこれは補完じゃなくて展開。

106 :102 :01/08/27 00:35 ID:ZR8f4QQQ
>>104
さんくすこ。
ソース拾ってきます。

107 :名無しさん@お腹いっぱい。 :01/08/30 15:20 ID:bievg5AY
超 faq かも知れないけど、zsh で日本語文字をカーソルで移動するときに
わざわざ 2 文字分動かさなくてもいい option みたいなのあります?

108 :名無しさん@お腹いっぱい。 :01/09/03 16:29 ID:EsS27BCo
あげ。

現在の keymap を知る変数みたいなのはありますか?
zle で現在の keymap を見て場合分けしたいんです。

109 :名無しさん@お腹いっぱい。 :01/09/07 03:45
zshを使っていてカレントディレクトリに
cvs/
cvsup/
をいうディレクトリがあるといます。
cd cvsupしようとして
cv[TAB]
で補完しようとすればcvs/とcvsup/の2つが候補に入ります。
しかし、
cvs[TAB]
で補完しようとするとcvs/の方が確定してしまいます。

まぁしかたないといえばそうかもしれませんが
こんな場合みなさんはありませんか?

zsh オライリーで本ださなしかなー。
6000円まで出す

110 :109 :01/09/07 03:51
これだとzshのcdの入力を省く機能を使っているふうですが
まがわらしいのでこう訂正します。

cd cvsupしようとして
cd cv[TAB]
で補完しようとすればcvs/とcvsup/の2つが候補に入ります。
しかし、
cd cvs[TAB]
で補完しようとするとcvs/の方が確定してしまいます。



コマンドでもそうです。
hoge と hogehogeというコマンドがあった場合
hogehogeを実行しようとして
hoge[TAB]とすると
hoge となってhogeが確定してしまう。

111 :名無しさん@お腹いっぱい。 :01/09/07 06:40
>>109
もう一回 tab 押したら hogehoge が出て来ない?

まぁたぶんお主の要望は

unsetopt auto_menu

するとよいんじゃないかと推測するが.

112 :名無しさん@お腹いっぱい。 :01/09/07 08:11
>>110
もう誰か書いているかもしれないけど、
何回か [TAB] 押してれば他の候補も complete してくれるよ。

113 :名無しさん@お腹いっぱい。 :01/09/07 10:07
setopt menu_complete
だよもん。

114 :名無しさん@お腹いっぱい。 :01/10/02 02:35
保存age

115 :名無しさん@お腹いっぱい。 :01/10/02 02:53
zsh マンセーだけどあまり話題がないね。

116 :名無しさん :01/10/04 00:46
なんか一部のプログラムで、オプションまで補完してくれるんだけど、
どういう仕組みになってるの?

補完出来るプログラムと出来ないプログラムの違いは何だろう?

117 :名無しさん@お腹いっぱい。 :01/10/04 01:15
>>115
.../$(ZSH_VERSION)/functions/ 以下のファイルを参照。

しかしながら、俺も新しい補完システムのことはよく分か
ってない。昔書いた補完設定を使い続けているが、そのまま
だと ignore case の補完をしてくれないとか、他にも不都合
があるのに気付いているのだが、面倒なのでそのままにして
いる…

118 :117 :01/10/04 01:16
>>116 にだった。スマソ

119 :名無しさん :01/10/04 01:24
>>177
ふむ、なるほど!
って複雑過ぎてよく分かんねぇや┐(´_`)┌

でもまぁ、自動生成じゃない事ぐらいは分かった。

120 :名無しさん@お腹いっぱい。 :01/10/12 04:15
このスレ読んで、zsh はフクザツカイキだということが分かった。あげ。

121 :名無しさん@お腹いっぱい。 :01/10/18 23:36
最近はbashにもプログラマブル補完が付いているそうな。
聞きかじっただけだが。

122 :名無しさん@お腹いっぱい。 :01/10/19 00:37
zsh入れたけど、サンプルの設定ファイルってないの?

123 :名無しさん@お腹いっぱい。 :01/10/19 00:40
配布ファイルの中にある

124 :名無しさん@お腹いっぱい。 :01/10/19 02:19
>>123
パッケージで入れたらないよ

125 :名無しさん@お腹いっぱい。 :01/10/19 02:51
パッケージだからだろ。
配布ファイルって俺は言ったんだぞ。

126 :名無しさん@お腹いっぱい。 :01/10/19 03:43
>>125
ポーツで入れるべきだったか
まあ必要なのは書いちゃったから別にいいけど

127 :126 :01/10/19 03:57
んでもbashで充分なんだよね、実際。
全然使いこなしてない。8bitスルーってきたからだから入れただけ。
まあボチボチやっていきますけど。

128 :名無しさん@お腹いっぱい。 :01/10/24 07:49
alias で(゚д゚)ウマー

129 :名無しさん@お腹いっぱい。 :01/10/24 18:42
zsh のコマンドログを syslog にはきだすパッチ公開
http://inu.momo.it.okayama-u.ac.jp/d/?200110b&to=200110127#200110127

だそうです。どなたか4.x用に移植してくださーい。
作者は似たようのもんと言ってますが僕には出来ませんでした

130 :名無しさん@お腹いっぱい。 :01/10/25 02:04
cygwinでzsh使いたいけどうまくいかない。
みんなどうやって使ってるの?

cygwin 1.3.3です。

131 :名無しさん@お腹いっぱい。 :01/10/25 02:18
>>130
見事にコンパイル失敗(´д`;)

132 : :01/10/25 04:10
Cygwin 1.3.2の頃にコンパイルしたけど、ふつーに成功したよ。
最近、readlineまわりが新しくなったのが原因?

133 :名無しさん@お腹いっぱい。 :01/10/25 04:49
>>132
いわれて今もう一度試してみたら、普通にいけた(´д`;)

でも、結局

http://www.soft.ics.keio.ac.jp/~kayanuma/2001/note/winzsh2.html

前に↑から拾ってきたのを使ってる(;´Д`)


>>130氏がどう上手くいかないと言っているのかは分からないけど、とりあえず起動してみたら.zshrcの設定が
どっか駄目ッぽくて、そのまま面倒くさくなって止めた。

134 :名無しさん@お腹いっぱい。 :01/10/25 05:30
昔はごちゃごちゃと補完を定義してたけど
V4 になってからは >>7 の 2 行だけになってしまったわい。

135 :名無しさん@お腹いっぱい。 :01/10/25 15:42
漏れも>>133のやつを使おうとしてるんだけど、
ZSH_DONTSETCPに 1を設定してもフォントが2種類しか
選べないのは仕様なの?

136 :名無しさん@お腹いっぱい。 :01/10/25 15:53
ごめん最新版落としたら出来た
これ使おう

137 :名無しさん@お腹いっぱい。 :01/10/26 19:26
zsh(´∀`)

138 :名無しさん@お腹いっぱい。 :01/10/27 12:53
zshで現在のディレクトリをteratermとかの端末エミュレータの
タイトルバーに反映させることってできる?
bashならできるんだけど・・・

139 :名無しさん@お腹いっぱい。 :01/10/27 13:35
>>138
ふぇ〜
っつうか、bashでどうやんの?(ちょいスレ違いだけど、おせーて)

140 :138 :01/10/27 13:38
>>139
Bash Prompt HOWTO: Xtermのタイトルバーの操作
http://www.linux.or.jp/JF/JFdocs/Bash-Prompt-HOWTO-4.html
ここ読んでくれ。

141 :名無しさん@お腹いっぱい。 :01/10/27 13:43
>>138
できるよ。.zshrc で

if [ "$TERM" = "kterm" ] || [ "$TERM" = "xterm" ] ; then
precmd() {
TITLE=`print -P $USER@%m on tty%l: %~`
echo -n "\e]2;$TITLE\a"
}
fi

って書いとくと xterm のタイトルバーに
username@hostname on ttyp1:/home
みたいな感じで表示される。

142 :名無しさん@お腹いっぱい。 :01/10/27 13:49
>>141
おおっ!!サンクス!
できたよ。感動した。

143 :名無しさん@お腹いっぱい。 :01/10/27 14:20

FAQ から抜粋。
> 3.6: How do I automatically display the directory in my xterm title bar?
>
> You should use the special function `chpwd', which is called when
> the directory changes. The following checks that standard output is
> a terminal, then puts the directory in the title bar if the terminal
> is an xterm or some close relative, or a sun-cmd.
>
> chpwd() {
> [[ -t 1 ]] || return
> case $TERM in
> sun-cmd) print -Pn "\e]l%~\e\\"
> ;;
> *xterm*|rxvt|(dt|k|E)term) print -Pn "\e]2;%~\a"
> ;;
> esac
> }
>
> Change `%~' if you want the message to be different. (The `-P'
> option interprets such sequences just like in prompts, in this case
> producing the current directory; you can of course use `$PWD' here,
> but that won't use the `~' notation which I find clearer.) Note that
> when the xterm starts up you will probably want to call chpwd
> directly: just put `chpwd' in .zshrc after it is defined or autoloaded.

TeraTerm を使っているのなら、適当に調整してみればいい。

144 :名無しさん@お腹いっぱい。 :01/10/27 14:21
更新せずに書き込んでしまった。スマソ (鬱

145 :139 :01/10/27 15:36
>>140
thanx

146 :名無しさん@お腹いっぱい。 :01/10/30 21:44
このスレ見て zsh 使ってみようと思ったんですけど,マルチバイト文字
の移動とか削除が上手く出来ません.>>117 にも書いてあるみたいですけど,
解決策は書いてないみたいなんですが,皆さんそのまま使ってるんですか?
それとも何か設定があるんですか?あるならどなたかご教授頂けませんでしょうか.

147 :名無しさん@お腹いっぱい。 :01/11/03 13:18
唐揚げ

148 :w :01/11/03 15:57
>>146
> このスレ見て zsh 使ってみようと思ったんですけど,マルチバイト文字

とりあえず、emacs の M-x shell にて使っといて。
これじゃ、zsh 使う意味ねーや。

149 :146 :01/11/03 18:56
>>148
え〜,がっかり.
僕 Vim 派なんですよねぇ.
そんじゃ bash でいいや.

150 :名無しさん@XEmacs :01/11/03 19:47
>148
Emacs で shell-mode 使っちゃってると、 zsh とかの高機能 shell って
イマイチ使おうという気力が出てこないんだよね。
便利なのはわかってるんだけど、なんか、覚えようとする気力が出ない(w
Emacs は人を堕落させるのかも…

# あまり zsh じゃないので sage

151 :w :01/11/05 09:17
>>149
> そんじゃ bash でいいや.

そんなにマルチバイト文字は使わないでしょ。
戻ってこいよ。

152 :名無しさん@Emacs :01/11/05 15:14
Emacs の shell-mode って使いやすいですか?
僕はかなりの Emacs 派ですけど, shell-mode よりは
別 window に terminal 立ち上げてた方が楽なんだけど.

153 :w :01/11/05 16:10
>>152
> Emacs の shell-mode って使いやすいですか?
> 僕はかなりの Emacs 派ですけど, shell-mode よりは
> 別 window に terminal 立ち上げてた方が楽なんだけど.

俺もそう。
emacsが好きだが、zshも好きって人は皆そう思っているのでは
ないでしょうか?
zshは M-x shell ではその便利さをいかんなく発揮できないですね。
M-x eshell の作者は zsh も意識して eshell 作ったそうだが、
これもいまいち。

emacsとzshの愛好家であるはずの広瀬さんはどのように共存しているの
だろうか?だれか、よんで来て。

ちなみに俺の共存法は


emacsclient-pipe()
{
tmp=`mktemp /tmp/$0.$$.XXXXXX`
cat >! $tmp
emacsclient $tmp
cat $tmp
rm $tmp
}

alias -g EM='|emacsclient-pipe'

こんな感じ。M-x sever-start をお忘れなく。

154 :名無しさん@お腹いっぱい。 :01/11/05 16:11
M-x term
でzshを選ぶんじゃだめなの?


次100 最新50 (10:00PM - 03:00AM の間一気に全部は読めません)

read.cgi ver5.26+ (01/10/21-)