■掲示板に戻る■ 全部 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 の二番目の要素だけコマンドで、しかも二番目のコマンドに合わせた
オプション,ファイル補完ができれば最高なんですが。


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

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