■掲示板に戻る■ 全部 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



178 :名無しさん@お腹いっぱい。 :01/11/10 15:38
しかし、本体2MB、ドキュメント2MBとは巨大なシェルだな

179 :名無しさん@お腹いっぱい。 :01/11/10 15:43
compctl ばっさり捨てて compinit だけにしたけど、
非力なマシンだと補完時の動作が重くなったような気が。
気のせい?
それとも何か設定ミスしてるのだろうか?

180 :名無しさん@お腹いっぱい。 :01/11/10 17:52
実行ファイル本体としては bash より小さいよ.

181 :名無しさん@お腹いっぱい。 :01/11/10 19:18
モジュール化に努めている御蔭だな(w

182 :名無しさん@お腹いっぱい。 :01/11/10 19:23
>>179
俺は compctl を捨て切れずに残してあるんだが、
これで書かれた補完の動作に妙なところがある。

>非力なマシンだと補完時の動作が重くなったような気が。
>気のせい?
気のせいではないと思う…(w

新しい補完システムを日本語で解説しているサイトは
ないもんだろうか。

183 :名無しさん@お腹いっぱい。 :01/11/10 23:46
4.0.4って何が変わったの?

184 :名無しさん@お腹いっぱい。 :01/11/10 23:55
3%の機能しか使っていない僕には分りませんでした。
infoはなぜか4.0.3だね

185 :名無しさん@お腹いっぱい。 :01/11/16 01:03
>>164
さっきメイリングリストで同じような質問をしていている者がいて、
pws が「bash-backward-kill-word widget を使え」と答えていた。

「何そんなのあったのかー」と調べてみたが 4.0.2 にはなかった(-_-)ウツダ
4.0.4 にはあるみたいだね。今すぐにはインストールできないから、
別の機会に試してみるよ。

これって、zsh を使い始めると結構皆が思う疑問かもしれない。
実際俺もそうで、zle を駆使して適当にでっちあげてた(w

zsh の存在を知ったのは 1993 年頃だと思う。1995 年に
広瀬さんが fj に日本語マニュアルを投稿したのを機会に
乗り換えようと決意。が、tcsh の set complete = enhance
な環境並の補完ができないのと、history-search-{forward,backward}
(Esc-N, Esc-P) ライクな履歴検索ができないことで挫折。

結局、完全に移行できたのは 3 年ぐらい前だよ。ちなみに後者は、
history-beginning-search-{forward,backward}-end を使えば
実現できる。

186 :名無しさん@お腹いっぱい。 :01/11/16 01:40
>pws が「bash-backward-kill-word widget を使え」と答えていた。
ってどうやるのかなー

187 :185 :01/11/16 01:51
>>186
zle -N bash-backward-kill-word
bindkey お好きなキー bash-backward-kill-word

な感じ。

188 :名無しさん@お腹いっぱい。 :01/11/16 02:49
man の補完て効きますか?
効かないのでコマンドを打ったあとC-aで先頭に戻ってman を追加してる。

こんなのzshっぽくないよー

189 :185 :01/11/16 02:51
>>188
うちでは補完は効いているし、何なら run-help(Esc-h)を使えば
いい。

190 :188 :01/11/16 02:56
なんか上でも書いたけどkillallで効かなかったり
manで効かなかったりして調子わるいな。

たぶん~/.zshrcのどっかを自分がかってにいじっちゃったんだと思う。
たいしたことしてないから作りなおそうかな。

>>189
Esc-hは知らなかった。便利ですね

191 :185 :01/11/16 03:07
>>190
>Esc-hは知らなかった。便利ですね

便利なんだけど、たまに Esc-Ctrl-h を打ち損ねて
manual が出てくると鬱になる(w

192 :185 :01/11/16 04:23
結局 4.0.4 の中身を見てみた。

bash-backward-kill-word () {
local WORDCHARS=''
zle .backward-kill-word
}

こういう使い方をすれば良かったのか。目から鱗。

でも、メーリングリストでは以前にも解が出ていたようで

tcsh-backward-delete-word () {
local WORDCHARS="${WORDCHARS:s#/#}"
zle backward-delete-word
}

自分もこっちが好みだな。という訳でバージョンアップは
またの機会に(w

193 :名無しさん@お腹いっぱい。 :01/11/16 08:20
zshを入れてみました。が、まだ入れただけです。
これからいろいろとやってみます。

194 :名無しさん@お腹いっぱい。 :01/11/16 15:32
>>175
FreeBSD か。
_killall を覗いてみましょう。
ports で入れてるなら /usr/local/share/zsh/4.0.?/functions/_killall

195 :175=188 :01/11/16 21:10
こうなってました。

#compdef killall

if [[ "$OSTYPE" = linux* ]]; then
_alternative \
'signals:: _signals -p' \
'processes:process:{ compadd "$expl[@]" ${${${${(f)"$(_call_program processes-names ps ${
${EUID/(#s)0(#e)/xa}//[0-9]#/} ho cmd 2> /dev/null)"//[][\(\)]/}:#(ps|COMMAND|-*)}%%\ *}:t} }'
else
_signals -p
fi

196 :名無しさん@お腹いっぱい。 :01/11/20 00:18
zsh では、alias や function で直前の履歴の
最後の引数とかを呼び出せないんでしょうか。

197 :名無しさん@お腹いっぱい。 :01/12/03 07:40
実は3重だったり

198 :age :01/12/03 21:13
***/ というのがあることを知ったage。

199 :名無しさん@お腹いっぱい。 :01/12/04 02:35
screen 使ってるんでたくさん zsh が動いているんですが,
これらの history を共有する方法はありますか?

200 :名無しさん@お腹いっぱい。 :01/12/04 03:50
>>200
setopt INC_APPEND_HISTORY
あるいは
setopt SHARE_HISTORY
を試すといいかもしれない。

201 :名無しさん@お腹いっぱい。 :01/12/04 06:10
>198
梅干し二つとどう違うの?

202 :199 :01/12/04 14:51
>>200
おおできてる! ありがとう.

203 :名無しさん@お腹いっぱい。 :01/12/05 01:52
age

204 :名無しさん@お腹いっぱい。 :01/12/05 02:28
このスレ見て、zsh のバージョンを 4.x に上げようと思った。
3 に比べて、すごく良くなってる・・・

205 :198 :01/12/07 04:33
>>201
シンボリックリンクもたどってくれるらしい。
公式サイトのZSH Reference Cardに書いてあった。

206 :名無しさん@お腹いっぱい。 :01/12/08 06:23
tcshのpostcmdとかprecmdみたいに
プロンプトのでる前後で、コマンドを実行させる方法はありますか?

207 :名無しさん@お腹いっぱい。 :01/12/08 06:41
precmd という関数を定義していれば実行される。

208 :206 :01/12/08 07:03
どうも、早速できました。

jobsコマンドの出力がパイプを流れてくれないんです。
jobs|cat
としても何もでてこない。

209 :名無しさん@お腹いっぱい。 :01/12/08 07:12
>>208
標準出力ではなくて、直接端末に出力している
と思われ。

210 :名無しさん@お腹いっぱい。 :01/12/14 22:55
compinitするとcdの補完候補にcdpathのものも出てきてうざいから
compctl -g '(|.)*(-/)' cd
で設定し直してるんだけどもっといい方法ない?

211 :zztop :01/12/15 18:44
>>208

ほんとだ.
jobs | cat ...NG
jobs |& cat ... NG
(jobs) | cat ... NG
jobs > a; cat a ... OK
jobs | tee a; cat a ... NG

212 :名無しさん@お腹いっぱい。 :01/12/20 10:35
>>210
> compinitするとcdの補完候補にcdpathのものも出てきてうざいから
> compctl -g '(|.)*(-/)' cd
> で設定し直してるんだけどもっといい方法ない?

俺はこうやってみたがまだ出る。
どうしよう

213 :名無しさん@お腹いっぱい。 :01/12/20 10:43
2001年を締めくくるに、ふさわしい祭りです!

米【TIME】紙が「Person of the 2001」の投票を行っています。
75年の歴史を誇る由緒正しい賞で、過去には「ヒトラー」や「レーニン」
なども選出されています。

TIME 投票ページ
■Masashi Tashiro■ で表記統一しましょう。(■は抜かす)
http://www.time.com/time/poy2001/

投票は削除を避けるために手動で。
締め切りは24日ですです。。。
こちらは軽いですけど結果はみれまえせん(連続投票可能)
TIME 投票ページ
http://www.time.com/time/poy2001/nominee_pop.html
※「Masashi Tashiro」で表記統一しましょう。
名前やメール欄など適当に 例)simura@or.jp
記入して、投票しよう。

新しいページがちゃんと開くまで待つ!!
VOTEの連打はダメ!!

葉書票もあるだろうから、ネット上で1位になっても安心できない。
2位にダブルスコア以上つけるのが望ましい。 。らしい。
本スレ
http://choco.2ch.net/test/read.cgi/news/1008799152/
前スレ
http://choco.2ch.net/test/read.cgi/news/1008799136/

214 :名無しさん@お腹いっぱい。 :01/12/20 12:01
なんか以前、ちょっと複雑なリダイレクトをすると
動作がおかしい(shと非互換)ことがあって、setoptかなにか
一発やるとsh互換になってちゃんと動いたという
ことがあったんですが、なんでしたっけ。
ど忘れ...

215 :見当違いだったらスマソ。 :01/12/20 21:44
% curl -O http://なんとか/なんとか/\[1-200\].jpg

216 :215 :01/12/20 21:47
このスレ初めて読んだので、今頃>>98に対してレスしてしまった。。。
重ね重ねスマソ。

217 :名無しさん@お腹いっぱい。 :01/12/20 21:50
>>210のとも関連するけど、functionの中に入ってるのを使いつつ、それらを自分で改造することは出来ないのかな?

ようするにfunction/_cdを使わない方法又はそれらを再定義する方法ってことなんだけど。

_user_at_hostとか自分が使うのが限られてるから変更できるとかなり便利になりそうなんだけど
共有してる物を直接いじるわけには行かないし…

218 :名無しさん@お腹いっぱい。 :01/12/20 22:21
compinitを使わずにcompdefが出来るような方法無いかなぁ

219 :217 :01/12/20 23:05
.zcompdumpいじったらいいのね。なんか気持ち悪いけど自己解決

220 :名無しさん@お腹いっぱい。 :01/12/21 09:00
>>219
compdef -d cd して後は好きに定義すればいーんじゃないの?
.zcompdumpをいじるのはどーかと。
当方zsh歴1日なので、外してたらごめんね。

221 :名無しさん@お腹いっぱい。 :01/12/21 21:52
_altanativeとか_wantedとかがドキュメント読んでもいまいち分からない。
どこかにわかりやすい解説無いかなぁ

222 :名無しさん@お腹いっぱい。 :01/12/21 21:53
オライリーとかから「zsh入門」出ないかな〜
6000円ぐらいまでなら出してもいいな

223 :名無しさん@お腹いっぱい。 :01/12/21 21:59
Effective zsh きぼん

224 :名無しさん@お腹いっぱい。 :01/12/21 23:25
Modern zsh Design キボンヌ

225 :名無しさん@お腹いっぱい。 :01/12/21 23:39
初めてのzsh

226 :名無しさん@お腹いっぱい。 :01/12/22 00:31
How 2 zsh

227 :名無しさん@お腹いっぱい。 :01/12/22 01:07
計算機プログラムの構造と解釈とzsh

228 :名無しさん@お腹いっぱい。 :01/12/22 01:11
サルしか分からない zsh

ウキッキー

229 :名無しさん@お腹いっぱい。 :01/12/22 01:13
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=436&forum=10&0

今日初めて見た.「をぉ!いい情報あるかな?」
・・・
無かった (;´Д`)

230 :210 :01/12/22 15:56
>>212
compinitって時々手動でやるだけだから勘違いしてたみたい。
こっちもcompctlだけじゃ戻らなかった。スマソ

結局 >>220 の compdef -d cd で解決。

potatoマシンは3.1.9-dev-8だからバージョン毎に
処理を分けるようにして自動でcompinitするように
しようっと。

231 :名無しさん@お腹いっぱい。 :01/12/25 18:56
とりあえず_wantedと_alternativeとcompaddあたりの使い方はなんとなく分かったけど
やっぱり既存の複雑な関数は意味不明…

だれか詳しく解説してage

232 :名無しさん@お腹いっぱい。 :01/12/25 19:14
>231
出来れば
> _wantedと_alternativeとcompaddあたりの使い方
を説明してYO!
# でも漏れは既存の複雑な関数も当然解説出来ないけど < 教えて君でスマソ

233 :名無しさん@お腹いっぱい。 :01/12/26 02:39
候補から外す(?) "~" の後を tab で補完はさすがに出来ないの?

234 :名無しさん@お腹いっぱい。 :01/12/26 02:53
イミワカランヨ

235 :名無しさん@お腹いっぱい。 :01/12/26 03:24
>>233
俺も偶にできたらいいな思うが多分無理っぽい

236 :名無しさん@お腹いっぱい。 :01/12/27 01:48
http://zsh.sunsite.dk/Images/wizard.gif
これ誰?

リンク拡充(採録含む)
http://www.sol.cs.ritsumei.ac.jp/~sawaki/comp/zsh/
http://dengaku.org/naoki/zsh/Doc/zsh_19.html
http://dengaku.org/~naoki/zsh/FAQ-J/zshfaq-j.html
http://cl.aist-nara.ac.jp/~daiti-m/text/zsh-intro.html
http://www.soft.ics.keio.ac.jp/~kayanuma/2001/note/zshreadme.html
http://www.soft.ics.keio.ac.jp/~kayanuma/2001/note/winzsh2.html
http://tehanu.hpcl.titech.ac.jp/zsh/waka/intro-CommandLineEditing.html
http://tehanu.hpcl.titech.ac.jp/zsh/
http://www.swlab.csce.kyushu-u.ac.jp/~hatano/material/zsh/

237 :名無しさん@お腹いっぱい。 :01/12/27 01:51
zsh で rm **/*hogehoge するときちょっとドキドキする...。

238 :名無しさん@お腹いっぱい。 :01/12/27 02:23
>>237
先に echo **/*hogehoge で確認しといてからやるといいかも。

239 :名無しさん@お腹いっぱい。 :01/12/27 02:48
>>234
233はextendedglobのことでしょ。

とりあえずスペースあけて別途補完してM-bで戻ってスペース消すとか。

240 :名無しさん@お腹いっぱい。 :01/12/27 02:52
>>237
tabで展開してからという手もあるけどhistoryがうざくなるから
おすすめはしない。

241 :名無しさん@お腹いっぱい。 :01/12/27 04:33
>>240
展開してから undo してもいいけどね。
量が多いと処理が重いけど(w

242 :名無しさん@お腹いっぱい。 :01/12/27 06:51
>> 237
C-x * して展開して確認した後,C-x u で戻すってのをよくつかいまふ.

243 :名無しさん@Emacs :01/12/27 09:58
色んな機能があるんだな。
漏れは全然使いこなせてないなぁ。前から判ってたけど(w

244 :234 :01/12/27 10:32
>239
あー,そーゆー名前なんすか.良く知らないんですよ,そーゆーの(苦笑)
今はおっしゃるようにスペース入れて補完してからスペース消してるんですけど,
なんだかなーって感じで.まぁこの機能があるだけでも有難いとしとくのがいいのかな.

>243
禿同

C-x * なんて「そーいやそんなドキュメントどっかで読んだなー」ぐらいで
全然覚えちゃいなかった・・・

245 :名無しさん@お腹いっぱい。 :01/12/28 05:25
展開結果をみるのはC-x gでいいみたい。
http://dengaku.org/~naoki/zsh/FAQ-J/zshfaq04-j.html#l43

C-x gを忘れたらtabで展開してからundoすればいいと覚えておくつもり。

246 :さすらいのbashユーザ :01/12/28 13:05
function precmd {
local exit=$?
if [ $exit = 0 ]; then
echo "\033]2;(゚д゚)ウマー\007\c"
elif [ $exit = 255 ]; then
echo "\033]2;( ゚д゚)ポカーン\007\c"
else
echo "\033]2;(゚Д゚)マズー\007\c"
fi
}

ktermとかで遊んでね。
% (exit 0)
% (exit 255)
% (exit 1)

247 :名無しさん@お腹いっぱい。 :02/01/02 02:06
興味あるのでage

248 :名無しさん@お腹いっぱい。 :02/01/09 23:05
興味あるのでage

249 :名無しさん@お腹いっぱい。 :02/01/13 10:32
^L

250 :名無しさん@お腹いっぱい。 :02/01/14 00:17
bashみたいに回数指定のignoreeofってできない?

251 :名無しさん@お腹いっぱい。 :02/01/14 09:45
>>148

http://www.ono.org/software/zsh-euc/zsh-4.0.4-euc-0.1.patch.gz
使ったことはないけど。

252 :名無しさん@お腹いっぱい。 :02/01/14 16:47
>>237
mv **/*hogehoge /tmp てのはどう?

253 :名無しさん@お腹いっぱい。 :02/01/18 02:28
auto correct を設定して data と打ったら cat ? と聞かれるね。
スタートレック思い出しちゃったよ。


254 :名無しさん@お腹いっぱい。 :02/01/18 06:38
zstyle ':completion:*:default' menu select=1 (・∀・)イイ!


255 :タカノ :02/01/18 07:49
>>254
出典は高林さんの日記だな。

256 :名無しさん@お腹いっぱい。 :02/01/18 10:25
>>254
カーソル、使えてもなー。それって、便利か?



257 :名無しさん@Emacs :02/01/18 10:51
>>256
C-f C-b C-n C-p C-a C-pでも使えるよ.
今気付いたけど M-aでどんどん追加できるんね


258 :名無しさん@Emacs :02/01/18 10:55
あー >257 は bindkey -e な時だけだった,-vな人はどうするんだろう‥

259 :名無しさん@お腹いっぱい。 :02/01/18 12:25
>254
スマソが何が起こるのか教えてくれない?
やってみたんだけど何が変わったのかサパーリ分かんねぇ(鬱

260 :名無しさん@Emacs :02/01/18 13:33
補完候補が複数有るとき それらからカーソルとかで選べるようになっちゃう

$ls[tab]
ls lsa lsattr lsd lsdev lspgpot lss16toppm

な時

$ls[tab][tab][C-e]
$lss16toppm

みたいな感じ.

261 :名無しさん@お腹いっぱい。 :02/01/18 14:09
なんか、Enter押す回数が1回増えたような気が。

262 :259 :02/01/18 14:28
>260
えっ?ならないョ・・・(鬱
試しに漏れの .zshrc 読み込まないようにしてもダメだった.
# bindkey -e はやったけど
何故だろう・・・
ちなみに zsh 4.0.4 (i686-pc-linux-gnu)

263 :260 :02/01/18 15:12
げ改行されてない‥260
>262
$autoload -U compinit; compinit
てやってから
$zstyle ':completion:*:default' menu select=1
じゃないとダメでした,てかcompinitするとzshが手軽に便利になりますよ!

264 :名無しさん@お腹いっぱい。 :02/01/18 15:17
>>263
navi2ch使ってるなら1.5にageとけ。


265 :名無しさん@お腹いっぱい。 :02/01/18 16:33
$ autoload -U compinit ; compinit
してもうまくいかないなー とずっと思ってたんだけど、
$ compinstall
したらうまくいったという、マニュアル読めという典型。

266 :259=262 :02/01/18 17:24
>260=263
スマソ,.zshrc の中で
unsetopt auto_menu
してた.
お手数をおかけしました.そしてアリガタウ.

267 :名無しさん@お腹いっぱい。 :02/01/18 23:50
なんかいいdiffのSHスクリプトくれ!

268 :名無しさん@お腹いっぱい。 :02/01/19 00:08
>267

#!/bin/sh
diff $*


# 要求してるモノが何なのか不明だYO!

269 :名無しさん@お腹いっぱい。 :02/01/19 02:36
すまそ!ソースの差分だけを取り出したいのだが
変更前 変更後とかいてファイルに書き出したいのだYO


270 :名無しさん@お腹いっぱい。 :02/01/19 02:45
diff -r じゃだめなの?
zsh 使ってないので全然見当違いなこといってたらスマン。

271 :名無しさん@お腹いっぱい。 :02/01/19 03:22
zsh のバージョンを表示させるのはどうすれば良いのでしょうか?
zsh -v してもダメだし、バイナリ単体で入れちゃったから man も無いのです。
Cygwin で使ってます。

autoload -U compinit
compinit

って .zshrc に書いても

zsh: bad option: -U

って言われちゃいます。
で、もしかしてバージョンが古くて対応していないのかと思ったのですが。

あと、補完機能が便利だと言われていますが、皆さんどんな風に使って
いらっしゃるのでしょうか?
こいつは便利だぜっていうのがあったら教えて下さい。

お願いします。


272 :名無しさん@お腹いっぱい。 :02/01/19 03:29
zsh --version
だろ。man zshallで検索でもすれよ。

273 :名無しさん@お腹いっぱい。 :02/01/19 03:34
"'" すると出てくる >quote って何?
いや、検索するから良いですけど。

Cygwin 版だと

list
zsh: correct 'list' to 'ls' [nyae]?

って感じで訂正されますな。

date -> cat にはならなかった。

274 :名無しさん@お腹いっぱい。 :02/01/19 03:38
>>272
出来ませんでした。
何も表示されません。

zsh --version > version.txt
less version.txt

としても ls の結果が入っているだけでした。
何ででしょう?

275 :名無しさん@お腹いっぱい。 :02/01/19 03:44
echo $ZSH_VERSION
はどうだね。

276 :名無しさん@お腹いっぱい。 :02/01/19 03:48
>>275
おお! どうもありがとう。

% echo $ZSH_VERSION
3.0.5-nt-beta-0.75

だそうです。

3.0.5 か〜。最新は 4.1 か何かですよね。
探してコヨッと。

277 :名無しさん@お腹いっぱい。 :02/01/19 03:53
補完ですが、

・man の後にコマンド名を補完する
・ftp でホスト名を補完する

位しかしてません。

何か面白便利な物がありましたら引き続き教えて下さい。



掲示板に戻る 全部 前100 次100 最新50

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