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



301 :名無しさん@お腹いっぱい。 :02/02/10 00:52
>>300
可能ならば、どの端末エミュレータを使っているか、どこから取ってきたソースか、
configure のオプション、Windows のバージョン等教えて貰えないでしょうか。

302 :名無しさん@お腹いっぱい。 :02/02/10 00:53
man

killall
次にくるコマンドが補完が効かないなり。
どうしようなりキテレツ。


303 :名無しさん@お腹いっぱい。 :02/02/10 13:13
manpathは設定してるッスか?
killallは使ってないからわからんッス。
キテレツ君、なんとかしてやってほしいッス。


304 :殺すけ :02/02/10 13:55
>>303
> manpathは設定してるッスか?

~/.zshrcにはこういているなり。

typeset -U path cdpath fpath manpath
manpath=($X11HOME/man /usr/local/man)
export MANPATH

% man a[TAB]
No matches for: `file'

こうなってしまうなり。
これが出来ないとブタゴリラにいじめられるなり。


305 :名無しさん@Emacs :02/02/10 14:05
~/.zshrcに

autoload -U compinit; compinit

って書くのが良いと思うよ.
でも,多機能すぎて嫌なら

compctl -c man

ってのが有るね.

306 :名無しさん@お腹いっぱい。 :02/02/10 17:00
a=aiueo
echo $a[1]
ということも
できるのか


307 :名無しさん@お腹いっぱい。 :02/02/10 17:07
a[2]=a
もできる

308 :トンガ痢 :02/02/10 17:53
>>304
>manpath=($X11HOME/man /usr/local/man)

関係ないけど、
${X11HOME} って書いたほうがいいと思うな。

パパの友達のテレビ局の社長が、
manpath=(/usr/{pkg,local,share,X11R6}/man)
autoload -U compinit; compinit
って感じで
できてるって言ってたよ!


309 :トンガ痢 :02/02/10 17:55
ああっ、
>>305 とかぶった..
ママァ〜〜


310 :名無しさん@お腹いっぱい。 :02/02/10 18:02
w3mの引数の補完させるとhistoryとかまで
読んでくれるくせに-e/-j/-sに対応して
ないんだよね。環境ごとにalias w3m="w3m -s"
とかやっているんでハマった。

311 :ずぃーしぇる :02/02/10 19:15
>>44
いまさらですが…

ずぃーしぇる、って呼んでます。

312 :名無しさん@お腹いっぱい。 :02/02/11 17:09
cygwinで4.0.4使ってます。

補完関係に関しては、
autoload -U compinit; compinit
ぐらいしかやってませんが、ファイル名等を^Iで
補完する時にしょっちゅう

_normal:26: bad math expression: operator expected at `0'

と言われてしまいますが、同じような症状の方、います?

313 :名無しさん@お腹いっぱい。 :02/02/12 08:50
.zshrc:
[[ -r $SSH_AUTH_SOCK ]] || unset SSH_AUTH_SOCK SSH_AGENT_PID
if [[ -z $SSH_AUTH_SOCK ]]; then
set -A a /tmp/ssh-*/*(UN=)
[[ -n $a ]] && export SSH_AUTH_SOCK=${a[-1]}
unset a
fi

.zlogout:
[[ `who | grep "^${LOGNAME[0,8]}" | wc -l` -le 1 ]] && ssh-add -D
echo 'NO CARRIER'


314 :名無しさん@お腹いっぱい。 :02/02/17 14:46
cygwinで

cd /cygdrive/d/^I
(実際にはmountしてるので cd /d/^I だが)

とかやると補完が効かないんですが
何か方法はありますか?

315 :uri complete :02/02/18 13:20
uri を補完させてます。
ネスケのヒストリ、ブックマークと w3m のブックマークから
持って来る。
それで、 zshell では、expand-or-complete を使う。

316 :名無しさん@お腹いっぱい。 :02/02/20 03:33
ネタが無いようなので、質問します

zsh
tcsh
bash

↑これらは一般的には何て読むんですか?


317 :名無しさん@お腹いっぱい。 :02/02/20 09:28
おまえ
アホ
ちゃうんか

318 : :02/02/20 09:53
>>316
ネタが無いようなので、質問します

zsh
tcsh
bash

↑これらをあなたは何て読むんですか?

319 :雑種 :02/02/20 13:50
bash : ばっしゅ
tcsh : てぃっしゅ
zsh : ざっしゅ

320 :名無しさん@お腹いっぱい。 :02/02/20 14:40
bash : ばっしゅ
tcsh : てぃーしーしぇる
zsh : ぜーた

別にヲレはガンダムヲタではないんだがな

321 :名無しさん@お腹いっぱい。 :02/02/20 15:16
>>319
sh
↑これをあなたは「しゅ」ってよんでるの?

322 :名無しさん@お腹いっぱい。 :02/02/20 16:48
zsh : ぜっとしぇ

323 :名無しさん@お腹いっぱい。 :02/02/20 16:57
323ゲットォォォォォ
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      zshーーーーーッ


324 :319 :02/02/20 18:11
> 321
sorry, neta desu.

325 : :02/02/20 23:36
export DISPLAY=[tab]
ってすると .rhost にあるホスト名を元にして
名前を補完してほしいんですが
どうやればいいですか?


326 :名無しさん@お腹いっぱい。 :02/02/20 23:41
>>316
こっちでやれ。
http://pc.2ch.net/test/read.cgi/unix/979465046/

327 :名無しさん@お腹いっぱい。 :02/02/21 14:53
慎重に吟味した結果bash2の方が俺的には価値あり。
さよなら〜

328 :名無しさん@お腹いっぱい。 :02/02/21 23:35
>>327
> 慎重に吟味した結果bash2の方が俺的には価値あり。
もっと詳しく語って欲しいなあ・・


329 :名無しさん@お腹いっぱい。 :02/02/22 01:32
それならbash2スレ立てろよぅ。参考にさせて頂くからさ。

330 :名無しさん@お腹いっぱい。 :02/02/22 02:30
>329 たいへん頭の弱そうなタイトルだが、もうある。
bashで補完スレ
http://pc.2ch.net/test/read.cgi/unix/1013019416/

331 :名無しさん@お腹いっぱい。 :02/02/22 08:55
>>330
ワラタ
たしかに頭の悪そうなタイトルだ。

332 :雑種 :02/02/22 11:41
> 330, 331
他のプログラムの悪口なんか言わなくても
zsh は十分素晴らしいよ. なかよくすれ.

333 :名無しさん@お腹いっぱい。 :02/02/22 12:03
bash2 は right prompt あるんですか?

334 :名無しさん@Emacs :02/02/22 12:17
mona@2ch$ ~/home/mona ←カコ(・∀・)イイ!!

335 :名無しさん@お腹いっぱい。 :02/02/27 18:14
最近の ssh2 はホスト名のあとに IP をくっつけるからこれじゃぁ
取り出せなくなっちゃった・・。カンマで split したいけど、どうしよう?

_sshhosts () {
reply=(` cut -d' ' -f1 ~/.ssh/known_hosts `)
}


336 :名無しさん@お腹いっぱい。 :02/02/27 21:49
cut -d' ' -f1 ~/.ssh/known_hosts | cut -d, -f1
にすればいいだけという話ではない?

ついでに質問。
redhat 6.2用のzsh 4.0.xのrpmがみつからないんだけど
どっかにあったら教えて。

337 :名無しさん@XEmacs :02/02/28 10:16
>>335
hosts=( ${(M)${(@f)"$(< ~/.ssh/known_hosts)"}##[^, ]#} )

のほうが速いかも?


338 :名無しさん@お腹いっぱい。 :02/02/28 16:45
さんくす! >>336
こりゃ便利。

339 :名無しさん@お腹いっぱい。 :02/03/01 02:56
>>337
出来たら解説してくれると嬉しい
正直何やってんのかサパーリ分からぬ(鬱

340 :名無しさん@お腹いっぱい。 :02/03/01 04:17
プロンプトに改行を入れるにはどうすれば良いのでしょうか。
こんな感じにしたいのです。
[user@host] ~
# echo '(・∀・)イイ!!'

今は↓で我慢してるんですが。
PROMPT='[%n@%m] %~ # '
[user@host] ~ # echo 'ヽ(`Д´)ノ ウワーン'

341 :名無しさん@お腹いっぱい。 :02/03/01 04:26
>>340
ここでも参考にしてみればぁ〜

あなたのプロンプトは?
http://pc.2ch.net/test/read.cgi/unix/990146979/l50

342 :名無しさん@XEmacs :02/03/01 05:57
>>339

${(@f)"$(<...)"}
ファイルの内容を読み込んで "\n" で区切った配列を作り、

${(M)...##[^, ]#}
各要素の先頭から ',' と ' ' 以外の文字からなる文字列を取り出す

ような感じですかねぇ。詳しくは man zshexpn を。


343 :339 :02/03/01 10:21
>342
thanx!ガムバッテミマス!!

344 :340 :02/03/02 00:47
単にこうすれば良かったのか〜 (;´Д`)
PROMPT='[%n@%m] %~
%# '

345 :340 :02/03/02 00:50
こうでも良いのか〜 (;´Д`)
PROMPT=$'[%n@%m] %~\n%# '

346 :名無しさん@お腹いっぱい。 :02/03/04 19:13
# bash prompt-howto からのパクリですが

PROMPT="%n@%l'%U%m%u[`jobcount()`]:%5~%# "

jobcount () {
jobs > ~/.jobs_tmp
echo -n `cat ~/.jobs_tmp | wc -l | awk '{print $1}'`
}

ってな感じで、プロンプトに関数の返値を入れたいんだが〜
この例だと裏に回してるプロセスの数だけど。
(同じ GNU 製の)bash ではできるのに、どうやればいいか
知ってるひといます?


347 :良スレ救済 :02/03/10 23:34
age

348 :名無しさん@お腹いっぱい。 :02/03/11 02:24
zsh をある程度設定しちゃうと便利過ぎて、さらに設定していけば
便利になるのはわかるんだがもういいかなと思ってしまう。

349 :nana4 :02/03/11 13:25
> 348

枯れてますな. つか, 概ね同意.

あと, あんまり凝ると違うバージョン/プラットフォームで動かなかったりしてかえって面倒.

350 :名無しさん@お腹いっぱい。 :02/03/11 16:32
最近のはデフォルトでも便利すぎて、設定しなくてもいいかなと思ってしまう。
# 最近の補完システムがわかんないってのもあるけど ;-)


351 :名無しさん@お腹いっぱい。 :02/03/13 23:56
設定ファイルのお披露目会は無し?

352 :名無しさん@Emacs :02/03/14 01:29
zsh を使っています。
/usr/local/bin を PATH の最初に設定したいのですがうまく逝きません。
PATH=/usr/local/bin:$PATH を ~/.zshenv ~/.zlogin ~/.zprofile などに書
いてみたのですが、どの場合も /usr/local/bin:/usr/local/bin:/bin: のよ
うに 2個または 3個含まれてしまいます。何も設定しない場合の PATH は

/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/usr/bin:/usr/X11R6/bin

のようになっているんですが、これを/usr/local/bin が最初にくるようにす
るにはどうしたらよいでしょうか?/etc の下はなるべくいじりたくないので
すが、script を書いたらなんとかなります?


353 :名無しさん@Emacs :02/03/14 01:51
>>352
> PATH=/usr/local/bin:$PATH
これをやめて

PATH=/usr/local/bin:/bin:/usr/bin:/usr/bin/X11:/usr/bin:/usr/X11R6/bin
って書けば良いだけじゃないの?


354 :352 :02/03/14 01:56
>>353
あ、、、そっか(汗
単純なことでしたね(恥

355 :名無しさん@お腹いっぱい。 :02/03/14 02:09
>>352
こんな風にも書けるよ。(.zshenv とかに)
path=($path $HOME/xml-xalan/c/bin)
path=($path /usr/java/jdk1.3.1_01/bin)

356 :名無しさん@お腹いっぱい。 :02/03/14 18:05
perldoc する時の補完が作れればいいなぁとか思うんですけど、どなたか挑戦した
ひといませんか? 一時的にどっかに名前を記録するスクリプトでも可。

357 :名無しさん@お腹いっぱい。 :02/03/14 18:32
functions/_perldoc にあるのじゃダメなの?

358 :名無しさん@お腹いっぱい。 :02/03/14 22:31
ふむふむ。使い方がよくわからんので勉強しときます。thanx!

359 :名無しさん@お腹いっぱい。 :02/03/14 23:59
このスレに触発されて、zshを使うようになりました。
かなり(・∀・)イイ!!ですね。

というわけで、質問です。。。

~/.zshrcで、
export HTTP_HOME=http://www.yahoo.co.jp
を設定していますが、
Emacs上で、M-x w3m [RET] しても、
$HTTP_HOMEが表示されません。
% w3m
では、$HTTP_HOMEが表示されます。
ちなみに、bashの時はこのようなことは起こりませんでした。

どんな原因が考えられるでしょうか?

360 :名無しさん@Emacs :02/03/15 00:58
>359
Emacsをwindowmanagerのメニューから起動させているからとか



361 :名無しさん@お腹いっぱい。 :02/03/15 01:10
>>360
そのとおりでした。
windowmanagerのメニューから起動しても exportを有効にする方法はありますか?
普段はショートカットで Emacsを起動するので。

362 :名無しさん@Emacs :02/03/15 02:16
.xsessionで
. $HOME/.zshrc
しちゃうとか。



363 :名無しさん@お腹いっぱい。 :02/03/15 02:19
HTTP_HOME=http://www.yahoo.co.jp emacs で起動しちゃうとか。

364 :自信はないが :02/03/15 02:21
>>359
~/.zshenv or ~/.zlogin ?

365 :名無しさん@お腹いっぱい。 :02/03/15 04:33
>>361
zsh(つーか"?term"だな)をwindowmanagerにすりゃいいじゃん

366 :名無しさん@お腹いっぱい。 :02/03/15 05:00
僕は .xsession を
#!/usr/bin/zsh にして無理矢理 .zshenv を読み込ませてる。

367 :名無しさん@お腹いっぱい。 :02/03/15 11:43
最近、#!/bin/sh の代わりに #!/usr/bin/zsh することが多くなってきた
もう戻れないかも。。。欝だ

368 :名無しさん@Emacs :02/03/16 00:06
例えば C とかで printf("hello world"); ← こんなふうに
hello world 書いて最後に改行つけない場合に zsh だと表示されないですよ
ね。何でだろ。ちょっとはまった覚えが。

369 :名無しさん@お腹いっぱい。 :02/03/16 00:11
#!/usr/bin/zsh使うって
えらい高機能なシェルスクリプトだな

具体的になんの機能つかってるのかおしえてyo

370 :名無しさん@お腹いっぱい。 :02/03/16 00:16
>>368
http://zsh.sourceforge.net/FAQ/zshfaq03.html#l39

371 :名無しさん@Emacs :02/03/16 00:30
>>370
へーなるほど。ありがとう。RPROMPT の位置がずれちゃうからみたいですね。
でも出た方がいいや。
unsetopt promptcr しときます。

372 :名無しさん@お腹いっぱい。 :02/03/16 00:36
>368
標準出力は改行こないとバッファがフラッシュされないので、それは仕様です。


373 :名無しさん@お腹いっぱい。 :02/03/16 01:35
zshだけ動作が違うってのもどうかと思うんだが。

374 :名無しさん@お腹いっぱい。 :02/03/16 11:06
>>369
シェルスクリプト中でfindを使わなくなってきたということだyo
あと、awkとかも。。。

375 :361 :02/03/17 00:11
遅くなりましたが、
~/.zshenvに `. $HOME/.zshrc'を書いて解決できました。
ありがとうございます。

376 :名無しさん@お腹いっぱい。 :02/03/21 12:31
zsh-4.0.4 on FreeBSD 4.5-STABLEな環境で
% grep ほげ foo.txt
しようと思ったらどうすれば良いのかな?
bashなら何も考えずに出来たんだけどRPROMPTとか補完とかが気に入っている
んでzshでいきたいんだよね


377 :名無しさん@お腹いっぱい。 :02/03/21 12:54
'ほげ' とかにしたら? つーか、ここでの「ほげ」が
日本語だって事が、一瞬考えないと理解できんかった。
# 質問は読み手の事を考えて書こう。


378 :376 :02/03/22 00:14
後から自分でもそう思った。スマン&サンクス



379 :名無しさん@お腹いっぱい。 :02/03/31 04:15
保守age

380 :名無しさん@お腹いっぱい。 :02/04/03 01:45
% unsetopt promptcr
としても
% echo -n foo
%
となってしまうんですけど
何か他にも設定しないといけないんでしょうか

381 :名無しさん@お腹いっぱい。 :02/04/03 11:30
>>380
setopt autolist autoresume
setopt autopushd pushdminus pushdtohome pushdsilent
setopt alwayslastprompt listtypes listambiguous
setopt clobber notify cdablevars numericglobsort
setopt histignoredups histignorespace longlistjobs
setopt extendedglob rcquotes appendhistory

unsetopt bgnice autoparamslash correct promptcr

のオプションでうまくいってます。

382 :名無しさん@お腹いっぱい。 :02/04/03 12:18
シェルプログラミングを勉強したいのですが、zshの本って無いですよね?
bashの本ならあるようなんですが、それで勉強したらzshでもOKですか?


383 :名無しさん@お腹いっぱい。 :02/04/03 13:03
zsh の方言を覚えるには OK じゃありません

384 :名無しさん@お腹いっぱい。 :02/04/03 13:13
そうそう、bashの本でも結構勉強になるけど、それじゃzsh使う
意味がなくなると思われ。

385 :名無しさん@お腹いっぱい。 :02/04/03 13:34
次号のUNIX USER がzsh特集を始めると思ふ


386 :名無しさん@お腹いっぱい。 :02/04/03 13:41
>>385
それマジ?
なか買うぞ。


387 :名無しさん@お腹いっぱい。 :02/04/03 16:51
>>380
プロンプトにcrと同じような処理をするものが
入ってるとかかなあ?

388 :380 :02/04/04 00:01
>>381
そのとおりにしてみましたが、だめでした

>>387
プロンプトは '%n@%m:%~%# ' です

Debian(sid)
% zsh --version
zsh 4.0.4 (i686-pc-linux-gnu)
% cat ~/.zshrc
autoload -U compinit
compinit
unsetopt AUTO_REMOVE_SLASH
setopt HIST_IGNOREALL_DUPS
unsetopt PROMPT_CR
setopt SHARE_HISTORY
PS1='%n@%m:%~%# '
です
~/.zshenv ~/.zshprofile ~/.zshlogin はありません

389 :385 :02/04/04 06:31
>>386
次号予告のところに書いてあったYO

390 :名無しさん@お腹いっぱい。 :02/04/04 07:40
>>389
おー、久しぶりに買って読むか。


391 :名無しさん@お腹いっぱい。 :02/04/04 20:30
.zshrcのサンプルに
alias mv='nocorrect mv' # no spelling correction on mv
alias cp='nocorrect cp' # no spelling correction on cp
alias mkdir='nocorrect mkdir' # no spelling correction on mkdir

こういうのが入っているのでがどういう意味ですか?
typoをaskしないってことですかね?

392 :名無しさん@お腹いっぱい。 :02/04/05 22:39
cygwin で zsh-4.0.4 をソースからコンパイルして使っています。
cygwin のバージョンは 1.3.10 です。

autoload -U compinit; compinit

すると、初めて動かしたとき(.zcompdump がないとき)は
.zcompdump が生成されて期待通りの動作をしますが、
2度目以降はドバーっと compinit のソースらしきものが出てきて
補完が全く出来なくなります。

.zshrc や .zshenv にいけない記述があるのかと思い、ファイルを削除して試してみましたが
やっぱり変わりませんでした。

なにか情報をお持ちの方はいらっしゃいませんか?
>312 の人はとりあえず動いているようですね…


393 :名無しさん@お腹いっぱい。 :02/04/06 13:31
UNIX USER、特集じゃなくて連載なのね。
compctlじゃない最近の補完をやってくれたら買おう。


394 :名無しさん@お腹いっぱい。 :02/04/06 14:15
compctl だったら一気に萎えるな。

395 :名無しさん@お腹いっぱい。 :02/04/06 14:47
書き手は誰なんだろう?

396 :名無しさん@お腹いっぱい。 :02/04/07 04:05
>392
改行コードが怪しいな。text modeになってないか?

397 :名無しさん@お腹いっぱい。 :02/04/07 04:33
日本語ファイル名の補完侯補一覧が
「ふが」 → \M-$\M-U\M-$\M-,
「ほげ」 → \M-$\M-[\M-$\M-2
みたいになるけど、これをちゃんと日本語で出せませんか?

398 :名無しさん@お腹いっぱい。 :02/04/07 12:54
akrさんとか、northeyeさんがいいな。



399 :名無しさん@お腹いっぱい。 :02/04/07 13:05
yuuji さんは?
# UNIX USER だと上の二人よりは可能性高そう。
## あ、zsh ml 入ってないや。


400 :名無しさん@お腹いっぱい。 :02/04/07 13:12
秋葉だと一日前に雑誌入らなかったけ?
どんな内容だかキボーン
amazonで注文するぞ。


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

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