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



278 :名無しさん@お腹いっぱい。 :02/01/19 04:13
こんなの見つけた。まだ全部読んでないけど。

http://www.aquahill.net/forte/zsh/completions

quote は "'" で始まってから "'" で括られるまでのプロンプトでした。


279 :名無しさん@お腹いっぱい。 :02/01/19 04:37
>>278
今時は、zstyle ...で定義するんじゃなかったっけ?
でも、漏れは書き方知らない……。

280 :名無しさん@お腹いっぱい。 :02/01/19 08:51
漏れ的には configure のオプション補完はかなり嬉しい部類なんだが.

281 :名無しさん@お腹いっぱい。 :02/01/19 15:50
最近は
autoload -U compinit
compinit
だけでも、かなりのコマンドの引数の補完をしてくれるからねえ。

そうはいっても compctl で記述したのが 30 ぐらい残っている
んだけど。zsh の現状に付いていけているのは、開発にも関わって
いる田中さんを含めて日本には数人しかいないかも(w zsh のユーザ
自体は増えている感じなんだけど、その割には Web 上で得られる
日本語でのリソースは余り増えませんね。

tcsh での set complete = enhance な環境下の補完に近い状況するには、
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z} r:|[-_./]=* r:|=*'
とすればいいでしょう。tcsh でかなり怠惰になっている人には必要
かと思われます。ちょっとは努力することもある人なら、
zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z} r:|[-_./]=* r:|=*'
の方がいいかも。

実は、さっき info みて今までの設定と少し変えたのは内緒(w

でも、これは自分で compctl で定義したものには有効にならないんですよね。
当たり前だけど。新しいシステムを憶えるのはかなり億劫なんで、誰か
簡単なやり方教えてちょ。


282 :名無しさん@お腹いっぱい。 :02/01/23 14:53
zshの実行ファイルにアイコンがくっついてる事に今気がついた@Cygwin。
でも……ダサ


283 :名無しさん@Emacs :02/01/23 17:42
>>282
えぇぇぇぇぇ!!! カコ(・∀・)イイ!! じゃん!!!

284 :名無しさん@お腹いっぱい。 :02/01/23 17:46
~/mona/Mail/

~/hoge/main
があって
pwd hoge
cd m [TAB]
ってするとMailとmainが補完対象になるのですが
これを止めることはできますか?

zsh4.0.4です。


285 :名無しさん@お腹いっぱい。 :02/01/23 17:47
~/Mail/

~/hoge/main

の間違いだった。

286 :名無しさん@お腹いっぱい。 :02/01/23 19:50
$CDPATH(cdpath) に ~ が入ってるとか

287 :名無しさん@お腹いっぱい。 :02/01/24 21:59
zstyle ':completion:*:cd:*' tag-order local-directories path-directories
としておくと、カレントディレクトリに候補が無い場合のみ
cdpath 上のディレクトリが候補となる。

zstyle ':completion:*:path-directories' hidden true
としてしまえば、cdpath 上のディレクトリは補完候補から外れる。


288 :aeg :02/01/27 05:21
age

289 :名無しさん@お腹いっぱい。 :02/01/27 16:06
Windows(Cygwin) の Z-Shell で日本語表示・入力出来ますか?
自分でコンパイルしたら文字化けするようになってしまった。
zsh 4.0.4 です。

290 :名無しさん@お腹いっぱい。 :02/01/29 16:36
zshでshellにロックをかけてパスワードを入力しないと
使えないようにするにはどうすればいいのでたっけ?


291 :名無しさん@お腹いっぱい。 :02/01/29 23:39
>>290
man zshallをlockやpasswordで検索してみたけど
そういう機能はなさそう。

とりあえずscreen使っとけ。

292 :名無しさん@お腹いっぱい。 :02/01/29 23:43
>>291
> man zshallをlockやpasswordで検索してみたけど
> そういう機能はなさそう。

ですよね。自分も見付からなかったのです。
screenでzshを使っていると時々ロックできる
のでzshの機能かと思ってました。

> とりあえずscreen使っとけ。

screenの方だったのですね。
C-z C-xで出来ました。


293 :名無しさん@Meadow :02/01/31 21:18
あるディレクトリ以下に含まれるファイルサイズの合計をを知りたいときはどう
したらいいですか?


294 :名無しさん@お腹いっぱい。 :02/01/31 21:20
それってzshの機能?
du -h
じゃなくて?

295 :名無しさん@お腹いっぱい。 :02/02/01 00:09
zshとは関係無しまくりだけど
du -sh [path]
で指定したディレクトリ以下の合計サイズ

296 :名無しさん@お腹いっぱい。 :02/02/05 10:21
bindkey "^[h" backward-kill-word
としていて便利なのですが
lsと打っている時に、ESC-hでlsのmanを
見るキーバインドとだぶってしまいました。

どうにかかわすにはどうすればいいのでしょうか?

297 :名無しさん@お腹いっぱい。 :02/02/05 11:43
そりゃあ、だぶってバインドさせてるんだから
仕方がないでしょう。^[^H にバインドするんで
は駄目なんですか?

298 :名無しさん@お腹いっぱい。 :02/02/05 12:06
>>296
Ctrl + w


299 :名無しさん@お腹いっぱい。 :02/02/05 12:26
>>298
最初からC-wに割り当てられていたんですね。
ありがとう。


300 :名無しさん@お腹いっぱい。 :02/02/08 19:05
>>289
できてます。


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
'ほげ' とかにしたら? つーか、ここでの「ほげ」が
日本語だって事が、一瞬考えないと理解できんかった。
# 質問は読み手の事を考えて書こう。



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

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