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



2 :名無しさん@お腹いっぱい。 :2001/05/19(土) 23:52
zshを、vi likeなキーバインドで使用することは出来ますか?


3 :名無しさん@お腹いっぱい。 :2001/05/19(土) 23:55
>>1
zshは初めから非英語圏のユーザを考慮して開発されたシェルで、tcshのように
日本語パッチを当てなくても済むと聞いたのですが。

4 :名無しさん@お腹いっぱい。 :2001/05/19(土) 23:57
全部書いたら大変なので compctl の一部だけ。

# compctl.
compctl -c man
compctl -c which
compctl -b bindkey
compctl -o setopt
compctl -s '$(setopt)' unsetopt
compctl -v typeset vared unset export
compctl -P - -k signals kill
compctl -g '*(-/)' cd
compctl -g '*(/)' rmdir
compctl -g '*.java' + -g '*(-/)' javac
compctl -g '*.(tar|tgz|tar.gz|tar.bz2|xtar.gz)' + -g '*(-/)' tar
compctl -g '*.zip' + -g '*(-/)' unzip
compctl -M 'm:{a-z}={A-Z}' 'r:|[.,_-]=* r:|=*' 'l:|=* r:|=*'

# cvs.
cvs_option=(
add
admin
annotate
checkout
commit
diff
edit
editors
export
history
import
init
log
login
logout
rdiff
release
remove
rtag
status
tag
unedit
update
watch
watchers
)
compctl -f -x 'p[1]' -k cvs_option -- cvs

もっとシンプルに書けそうな気もするんだが。。

5 :tar :2001/05/20(日) 00:01
誰かのパクりだけど
compctl -f -x \
's[--]' -k "(atime-preserve remove-files checkpoint \
force-local ignore-failed-read preserve same-owner \
null totals exclude use-compress-program block-compress \
unlink help)" - \
'C[-1,*z*] p[2]' -g "*.tar.(Z|z|gz) *.taz *.tgz (|.)*(-/)" - \
'C[-1,*y*] p[2]' -g "*.tar.bz2 (|.)*(-/)" - \
'C[-1,*f*] p[2]' -g "*.tar (|.)*(-/)" -- tar gtar

6 :名無しさん@お腹いっぱい。 :2001/05/20(日) 00:42
>>2
http://tehanu.hpcl.titech.ac.jp/zsh/waka/intro-CommandLineEditing.html

7 :名無しさん@お腹いっぱい。 :2001/05/20(日) 05:02
autoload -U compinit
compinit


8 :1 :2001/05/20(日) 17:23
みなさまありがとうございます

>>2
bindkeyのオプションでできますね
一応
-v Selects keymap `viins', and also links it to
`main'.

-a Selects keymap `vicmd'.


>>3
大丈夫ですよ。余裕で日本語ファイル使えます
かってにエスケープもしてくれるし

>>7
zstyleわからん…今日は拾ったconfigureの補完を改良してみたんですけど
一行目の--enableの補完がうまくいかない(Cの使い方が違う?
三行目の-qが効いてないっぽい
など解らないところだらけです。誰か解る人教えてください
configre_opts () {
reply=( `./configure --help | awk '/--/{print $1}' |\
sed -e 's/\[*=.*//'` )
}
compctl -x 'C[-1,--enable]' -k '(yes no)' - -- + \
-K configre_opts -S '=' -q \
-x 'n[-1,dir=][-1,prefix=]' -S '=' -q -/ -- \
-x 'n[-1,=]' -f -- configure




9 :名無しさん@お腹いっぱい。 :2001/05/20(日) 23:02
                 / ̄ ̄ ̄ ̄ ̄
                 | はやくこの板が
                 |  あらし厨房だらけになって
     ,__     |    逝ってくれますように
    /  ./\    \_____
  /  ./( ・ ).\       o〇       ヾ!;;;::iii|//"
/_____/ .(´ー`) ,\   ∧∧         |;;;;::iii|/゙
 ̄|| || || ||. |っ¢..|| ̄   (,,  ) ナムナム   |;;;;::iii|
  || || || ||./,,, |ゝ iii~   ⊂  ヾwwwjjrjww!;;;;::iii|jwjjrjww〃
  | ̄ ̄ ̄|~~凸( ̄)凸 .(  ,,)〜 wjwjjrj从jwwjwjjrj从jr

10 :名無しさん@お腹いっぱい。 :2001/05/21(月) 00:17
zzsh age


11 :名無しさん@お腹いっぱい。 :2001/05/21(月) 21:38
参考資料age
http://tehanu.hpcl.titech.ac.jp/zsh/waka/intro.html
http://www.gentei.org/~yuuji/rec/pc/intro-zsh.html
http://cl.aist-nara.ac.jp/~daiti-m/text/zsh-intro.html
http://dengaku.org/~naoki/zsh/FAQ-J/zshfaq-j.html

cygwinでも普通に使えるよ


12 :名無しさん@お腹いっぱい。 :2001/05/24(木) 02:33
なんか盛り上がらないですね。
ここで話題を一つ。

sudo の 補完ってどうしてますか? 僕はどうもうまくいかないので今のところ
コマンドやファイルを補完しおわったあと行頭に戻って sudo と書いています。

なにかうまい方法はないですかね。
sudo の二番目の要素だけコマンドで、しかも二番目のコマンドに合わせた
オプション,ファイル補完ができれば最高なんですが。

13 :名無しさん@お腹いっぱい。 :2001/05/24(木) 03:22
>>12
compctl -l '' nohup exec nice eval time sudo man
こんなんどう?
以前 google で探したらどっかのMLの過去ログに当たってそれパクった。

14 :12 :2001/05/24(木) 20:25
>>13 素晴しい! サンキュサンキュ。完璧でした。
ついでに zshcompctl を man でみたらこんな例があった。

compctl -x 'r[-exec,;]' -l '' -- find

find の -exec の後で普通にコマンドやファイル、オプションを
補完できるやつ。
うーん zsh 奥が深いぜ。

15 :名無しさん@お腹いっぱい。 :2001/05/27(日) 03:47
% age

16 :名無しさん@お腹いっぱい。 :2001/05/27(日) 04:27
Windosユーザーの厨房ぶり爆発スレッドだな。
Linuxユーザーには荒す理由ないもんな(プ
自らで自らの厨房ぶりを記録してるようなもんだな。



17 :age :2001/06/04(月) 01:12
http://www.zsh.org/

18 :名無しさん@お腹いっぱい。 :2001/06/04(月) 06:54
4.01age
http://slashdot.ne.jp/article.pl?sid=01/06/03/0918222&mode=thread&threshold=

19 :名無しさん@お腹いっぱい。 :2001/06/04(月) 16:46
>>1
マジで!?
俺だよ、俺。
吉田だよ!
おまえ、田口だろ!?
いやぁ、久しぶりだなぁ!!
つい昨日おまえの母ちゃんに会ってさー、「重大なことを息子に話す。もしかしたら知障みたいなスレが立つかも知れないから息子をよろしくおねがいします。」って言われたのよ。
まさか本当に立てるとは思わなかったよ。
いくら煽られても元気出せな、俺だけは味方だからな!(プッ


20 :名無しさん@zshいっぱい :2001/06/05(火) 23:54
compctlはすでにobsoleteです。
もう使うのはやめましょう。というか、普通は、compinit
で、たいていは事足ります。

zsh 4からは、基本的に、zsh関数を書いて、それで、
compdefでコマンドと関連付けます。compctlは使いません。

詳細は、/usr/local/share/zsh/4.0.1/functions/以下で定義されている
多数の補完プログラムと、man zshcompwid / zshcompsysを参考に。

各ファイルの最初の
   #compdef <command_name>
が補完対象となるプログラムです。


21 :名無しさん@zshいっぱい :2001/06/06(水) 00:40
>>1 >>8

zstyleは、文脈の様式を定義します。
文脈とは、コマンドライン上のカーソルの位置における状態のことです。

文脈を知るには、普通は、コマンドライン上で、C-x h と入力します。
例えば、compinitした後、

hoge% cvs (後ろに空白を入れる)

と入力して、C-x h と打ち込むと、

tags in context :completion::complete:cvs::
argument-rest options (_arguments _cvs)
tags in context :completion::complete:cvs:argument-rest:
commands (_cvs_command _arguments _cvs)

と出てきます。この :completion:... の2つが、現在の文脈です。
特定の文脈において、可能な動作をどのような様式で行うかを定義するのが
zstyle命令です。より細かく指定したzstyle命令の方が優先します。
(要するに、「*」の少ないzstyleが優先されるわけです。)

ちなみに、括弧で囲まれているのは、この文脈に到達するまでの関数のネスト
状態です。(/usr)/share/zsh/4.0.1/functions/_cvsを読めばわかりますが、
_cvsが呼ばれると、まず、_arguments関数が呼ばれ、そこから更に、
引数の最後で定義されている_cvs_commandが呼ばれます(この場合)。

コンテキストが2つあるのは、この時点で、ユーザーは、cvs addのように、
コマンドも入力できるし、cvs -d ... のようにオプションも入力できる
からです。(ここで<tab>を入力し、さらに、-を打ち込んで<tab>を入力すると
よく分かると思います。)

最初はわけわからないと思いますが、マニュアルを読みながら、これらの
デフォルトで提供されている補完関数を読むと、すぐに慣れるでしょう。
compctlより、よっぽど細かく書けるので、もはや手放せません。自分で
書く場合は、~/.zshrcに書かずに、~/.zfuncディレクトリを造ってそこに
書くのが推奨されているようです。


22 :名無しさん@お腹いっぱい。 :2001/06/06(水) 07:55
補完についての日本語なページ発見。
ありがたや・・・

http://dengaku.org/naoki/zsh/Doc/zsh_19.html

23 :名無しさん@お腹いっぱい。 :2001/06/10(日) 19:59
あげ

24 :名無しさん@お腹いっぱい。 :2001/06/11(月) 04:39
age

25 :名無しさん@お腹いっぱい。 :2001/06/13(水) 03:15
そういえば、Mac OS Xって、標準シェルがzshなんだよね・・・


26 :名無しさん@お腹いっぱい。 :2001/06/13(水) 03:44
こまんどこむをじーえすえいちに

27 :名無しさん@お腹いっぱい。 :2001/06/22(金) 10:19
age

28 :名無しさん@お腹いっぱい。 :2001/06/22(金) 17:38
>>26
まんこ コンドーム 自慰 素エッチ??

29 : :2001/06/26(火) 21:11
皆さんが、お奨めするzsh関連書籍等ございましたらレス下さい。

30 :名無しさん@お腹いっぱい。 :2001/06/26(火) 22:53
>>29
zsh-4.0.1-doc.tar.bz2

31 :名無しさん@お腹いっぱい。 :2001/06/29(金) 17:43
Ctrl-R 押しても bck-i-search ができんぞ。
上矢印キー押したらヒストリが順番に出てくるけど
カーソルが行の頭に来てしまうぞ。
(bash とかは行の最後にカーソルが来る)
zsh つかえねー。

32 :bashユーザだけどさ :2001/06/29(金) 17:56
customizeできるんじゃないの…
何もそんな言いがかりみたいなこと言わなくたって

33 :名無しさん@お腹いっぱい。 :2001/07/05(木) 08:25


34 :名無しさん@お腹いっぱい。 :2001/07/05(木) 18:40
補完についてじゃなくって悪いんだけど,改行の入ってないものを表示しよう
としてもプロンプトが行頭に強制的に来ちゃうらしくって表示されないんだけ
ど,皆さんどうしてます?

echo -n "HEHEHE...."

ってやると何も表示されない.
# もちろんパイプ通して見ると出力はされてるんだけどね.

web 調べたらこの不具合自体は書いてあるサイトあったんだけど解決法は無かっ
た.誰か教えてくださいまし.ちなみに zsh-4.0.1 です.
# とりあえず zsh-4.0.2 に上げてみようとは思うのですが.

んで,質問だけじゃなんなので(友人に教わった)技を一つ

eval `dircolors`
export ZLS_COLORS=$LS_COLORS
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

補完候補にも色が付く.setopt で何か設定しなきゃいけなかったよーな気もするけど.
「んなの知っとるわ」という向きにはご容赦を・・・

35 :名無しさん@お腹いっぱい。 :2001/07/05(木) 21:47
色付かねーぞごるあぁ

36 :34 :2001/07/05(木) 22:23
>>35 eval `dircolors` のところできちんと $LS_COLORS
設定されてる?そこでハマった記憶あり.
なんか dircolors が何も吐かないっつー状況に陥ったんだよね.
どうやったら直ったかは忘れた・・・.

# 4.0.2 に上げてみたけどダメだった・・・ < echo -n "HEHEHE..."

37 :名無しさん :2001/07/06(金) 00:18
「zsh」<何て読んでる?

38 :名無しさん@お腹いっぱい。 :2001/07/06(金) 00:21
ふつう、ぜっとしぇるじゃない?

39 :名無しさん@お腹いっぱい。 :2001/07/06(金) 00:21
「ぜっしゅ」

40 :名無しさん@お腹いっぱい。 :2001/07/06(金) 00:21
入門者です。

下手にtcshの癖がつく前にzshに乗り換えることにしました。
皆さんの.zshrcを参考にしたいのですが、あまりにもカスタマイズ
されているのはいやだし、ゼロから自分で築く力はありません。

ちょうど良いサンプルはないでしょうか?
zsh 4.0.2です。

41 :名無しさん@お腹いっぱい。 :2001/07/06(金) 00:43
zsh スレがあがったり下がったりするのは
書きたくても話題がない zsh fan が結構多いからとみた。

42 :名無しさん@お腹いっぱい。 :2001/07/06(金) 00:45
>>40
あー 俺も見てみたいなぁ。
俺の .zshrc は

bindkey -v

しか書いてない(^^;

43 :40 :2001/07/06(金) 00:59
とりあえずEmacs風にC-aで先頭いったり、C-kで行削除
C-pで履歴なんか見れるとうれしいです。

バリバリにカスタマイズしてあるのを使っても
この便利な機能はどこがどうなっていてこう働いているんだ?
ってわからないと不安なんです。

44 :37 :2001/07/06(金) 02:09
もしかしたら、「ずぃーしぇる」なのかなぁ、なんて思ってたが。

45 :名無しさん@お腹いっぱい。 :2001/07/06(金) 02:09
emacs 風の keybind なら、
# bindkey -e
で出来るよ。

使い勝手を良くするのは、option の設定が命だけど、膨大なので
マニュアルに目を通すか、少々古いけど >>11 にある日本語ガイド
を参考に一つ一つ確かめるのが確実。(面倒だろうけど)

46 :名無しさん@お腹いっぱい。 :2001/07/06(金) 03:19
「ずしぇる」と心の中では読んでいた…

47 :名無しさん@お腹いっぱい。 :2001/07/06(金) 03:58
じーえすえいちじゃないの?

48 :名無しさん@お腹いっぱい。 :2001/07/06(金) 04:19
バッシュ
トクシュ
ゼッシュ

49 :名無しさん@お腹いっぱい。 :2001/07/06(金) 10:33
シュ
シーシェル
アッシュ
ケーシュ
バッシュ
ティーシーシェル
ゼットシェル

50 :名無しさん@お腹いっぱい。 :2001/07/06(金) 11:28
>>34
unsetopt prompt_cr だと思われ。

51 :34 :2001/07/06(金) 18:39
>>50
さんくす!!
でも RPROMPT がズレるんだね.まぁそれはそんなに困らんからいいや.
やっぱ 2ch はいい所だね!!

52 :ずしゅ派 :2001/07/06(金) 19:00
このスレ読んで zsh 使ってみたんだけど、
% ls _
のとき (_ がカーソル) に TAB を押すと、
下に候補がずらっと出て、
% ls _
とカーソル位置がずれてしまう。
で C-u を打っても "ls" が消えなかったり。
どうすればいいんすか?

53 :名無しさん@お腹いっぱい。 :2001/07/06(金) 19:20
zsh は環境変数 EDITOR が vi になっていると標準で
vi 仕様になります。これを emacs 風にするには
bindkey -e をやればいい。初めはここでひっかかる人多いね。

54 :名無しさん@お腹いっぱい。 :2001/07/08(日) 11:55
コマンド入力中に「あれ?、なんだっけ?」ってほかの作業がしたくなったとき
ESC-qで一時適にコマンドプロンプトにもどれるんですね。

便利!

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を置いてあります。


次100 最新50

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