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



501 :名無しさん@Emacs :02/06/13 00:22
>>500
あ、履歴番号のことね。古いものが消えちゃいます。
新しく、zsh を起動するとちゃんと番号づめしてくれます。

502 :名無しさん@お腹いっぱい。 :02/06/13 00:24
>>501 だうも

503 :名無しさん@お腹いっぱい。 :02/06/13 01:08
>>501
'history'すると確かに消えているけど、$HISTFILEの中身は消えてないよね?
$HISTFILEの中を見て、消えてないぞ!(゚Д゚)ゴルァと思ってしまいました...。


504 :名無しさん@お腹いっぱい。 :02/06/13 01:42
>>503
デフォルトでは $HISTFILE の同期は zsh プロセスが exit したときだからね。
INC_APPEND_HISTORY や SHARE_HISTORY を有効にしていると、この
タイミングが変わる。

ちなみに、自分は INC_APPEND_HISTORY の動作の方が好み。SHARE_HISTORY
は、直前の履歴を使い回すことが多い時は却って不便だ。マニュアルにあるように、
適当なタイミングで fc -RI する方が使い易い。

505 :503 :02/06/13 02:05
>>504
たしかに SHARE_HISTORYを有効にしてます。
あんた物知りですね。勉強になります。


506 :ディレクトリ :02/06/13 18:25
lsコマンドなどでディレクトリとファイルの色分けをしたいのですが、どうすればいいのかわかりません。どなたか教えてください。


507 :名無しさん@お腹いっぱい。 :02/06/13 18:30
zsh とどう関係があるの? < ls

508 :名無しさん@お腹いっぱい。 :02/06/13 18:32
>>506
export CLICOLOR=''
かな。

(cshの"setenv CLICOLOR"の変換結果なので違うかもしれないけど)

509 :名無しさん@お腹いっぱい。 :02/06/13 18:36
かくて、shellと(virtual) terminalと外部コマンドの区別がつかない人間が
un*xユーザにおいてさえ不可逆的に増えていくのであつた。。。

510 :名無しさん@お腹いっぱい。 :02/06/16 15:37
% ls
foo
% echo 'bar' > foo

がエラーになるのってなんだっけ?
UnixUser立読みしてきたけど忘れた。。

511 :名無しさん@お腹いっぱい。 :02/06/16 17:22
>>510
ちゃんと買えばわかりますよん ъ( ゜ー^)

512 :名無しさん@お腹いっぱい。 :02/06/16 17:33
>>504
> デフォルトでは $HISTFILE の同期は zsh プロセスが exit したときだからね。
> INC_APPEND_HISTORY や SHARE_HISTORY を有効にしていると、この
> タイミングが変わる。

INC_APPEND_HISTORYとSHARE_HISTORYの同期するタイミングの違いが知りたい。
SHARE_HISTORYは即座に、INC_APPEND_HISTORYはfc -RIした時という認識で合ってる?

513 :504 :02/06/16 18:49
>>512
$HISTFILE の同期は両者とも同じで、いずれかの zsh プロセスで
コマンドが発行されたとき、即座に $HISTFILE へと書き込まれる(必要があればの話だが)。

両者の違いは、現プロセスの保持している履歴と $HISTFILE との同期のタイミング。
というよりは、その有無というべきか。

INC_APPEND_HISTORY は、APPEND_HISTORY(これがデフォルト) と同じく、$HISTFILE
との同期は計らない。望むのなら手動で例えば fc -RI などとする必要がある。

SHARE_HISTORY は、コマンドラインから何かのコマンドを実行するか、改行を打った
ときに $HISTFILE と同期する。

自分の理解はこんなところだけど、間違いがあったら訂正してほしい。

514 :名無しさん@お腹いっぱい。 :02/06/19 23:43
zsh感動しますた。
% ./configure
のときや
% cvs
のときの補完はすごいッス。


515 :名無しさん@お腹いっぱい。 :02/06/20 00:52
setoptで設定するできる変数が多すぎる。
4系統のまとまった日本語マニュアルはありませんか

516 :名無しさん@お腹いっぱい。 :02/06/20 00:54
ない。

517 :名無しさん@お腹いっぱい。 :02/06/20 02:08
>>515
ま、楽しみながらやろうや。


518 :名無しさん@お腹いっぱい。 :02/06/20 09:10
オプションの数は、昔からそんなに増えた訳じゃないのだから、
man zshoptions で一通り読めば大体の用は足せるような気が。
昔の広瀬さんの日本語訳も多いに助けになるでしょう。

それよりも補完関係のシステムが大きく変わったのことに難儀する。

519 :名無しさん@お腹いっぱい。 :02/06/20 20:13
新しい補完システムで自分用の設定を入れる
ディレクトリ指定するのには、

FPATH=$FPATH:~/.zfunc
autoload -U compinit; compinit

こんな感じでいいんでしょうか。



520 :名無しさん@Emacs :02/06/25 21:23
履歴の中に、passwd を間違えていれちゃった場合ってどうやって消せばよいで
しょうか?


521 :名無しさん@お腹いっぱい。 :02/06/26 01:48
>>520
rm ~/.zshhistory

522 :名無しさん@お腹いっぱい。 :02/06/26 02:13
>>520
rm $HISTFILE


523 :名無しさん@お腹いっぱい。 :02/06/26 06:51
ls -l hoge ってやるとカラーで表示されるのですが、このファイルを
cp や mv などの コマンドの中で使った時にも色を付ける方法は無いのでしょうか?

524 :名無しさん@Emacs :02/06/26 07:55
>>522
いや…履歴に中野その番号だけ消したいのですが…

525 :名無しさん@お腹いっぱい。 :02/06/26 07:58
grep -v password $HISTFILE > $HISTFILE

526 :名無しさん@Emacs :02/06/26 08:23
>>525
$HISTFILE が空っぽになりましたが何か?

527 :名無しさん@お腹いっぱい。 :02/06/26 08:26
いえ、何も。

528 :名無しさん@お腹いっぱい。 :02/06/26 08:33
setoptしたらこのように表示されました。

autocd
noautoparamslash
autopushd
autoresume
nobgnice
cdablevars
noclobber
correct
correctall
extendedglob
extendedhistory
globdots
histignorealldups
incappendhistory
interactive
longlistjobs
mailwarning
monitor
pushdminus
pushdsilent
pushdtohome
rcquotes
recexact
shinstdin
zle

histignorealldupsがあるのに~/.zhistoryには、同じコマンド履歴が残って
いるのですがなぜでしょうか?


529 :名無しさん@お腹いっぱい。 :02/06/26 08:42
>>528
% exec zsh

530 :名無しさん@お腹いっぱい。 :02/06/26 08:47
>>529
なるほど。

531 :名無しさん@お腹いっぱい。 :02/06/26 09:04
>>525-526
ワラタ

まあ、fc を使うのが筋なのかな

532 :名無しさん@Emacs :02/06/26 09:28
>>531
使い方を教えてください。おながいししましゅ

533 :名無しさん@お腹いっぱい。 :02/06/27 18:22
>>523
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:'
export LS_COLORS
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}


534 :523ではないが :02/06/27 22:10
>533
Thanx!

UnixUserに書いてあった
eval `dircolors`
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
だと駄目だったんだよね.

dircolorsの結果が,
LS_COLORS='';
export LS_COLORS
になってしまう.
dircolors -pの出力をりダイレクトしたファイルを引数に指定しても変わらず.


535 :名無しさん@お腹いっぱい。 :02/06/27 23:26
すいません,質問です
連番の名前がついたディレクトリで次々に処理を行う場合は
どうすればよいのでしょうか?
今は

%cd 1/
%my_script

%cd ../2/
%my_script

のようにして実行しています
因みに,my_scriptはそのディレクトリにA.txtがあれば実行する
ようになっているので
%my_script ~/{1..56}/
のようにしては実行できませんでした




536 :名無しさん@お腹いっぱい。 :02/06/27 23:39
>>534
dircolors は kterm では動かないらしい。


537 :名無しさん@お腹いっぱい。 :02/06/27 23:47
>535 my_scriptを複数の引数に対応させる。

538 :名無しさん@お腹いっぱい。 :02/06/27 23:51
>>535
my_scriptの/bin/shか/bin/zshの次の行に
echo "$@"を書いてみそ。
きちんと引数展開されてるよ。
そのあとは>>537のとおり

539 :名無しさん@お腹いっぱい。 :02/06/28 00:00
for i in {1..56} ...
でゴリゴリ。

540 :535 :02/06/28 01:29
>>537
>>538
>>539

分かりました
勉強して頑張ってみます


541 :!=523 :02/06/28 01:37
>>533
表示される補完対象はcolorになったけど
コマンド に続く部分はcolorになりませんね。

542 :名無しさん@お腹いっぱい。 :02/06/28 03:57
随分前から、色指定のファイル名に正規表現が指定できるように改造した ls を
使っているのだが、本家の方は依然として簡単なパターンしか使えない。
途中で追随するのが面倒になったのと、パッチをなくしてしまったので、
2年前ぐらいのバイナリをずっと使っている。

zsh でのカラー表示も LS_COLORS に準じているので、久し振りに .dir_colors
をいじったよ。しこしことパターンを並べていくのは、かなり虚しかった...

543 :名無しさん@お腹いっぱい。 :02/06/28 18:05
>536
>dircolors は kterm では動かないらしい。
なるほど,TeraTermとcygwinでも動かなかった.
コンソールならちゃんと動いたよ.

544 :名無しさん@Emacs :02/06/28 19:33
>>536
env TERM=xterm dircoloers

545 :名無しさん@お腹いっぱい。 :02/06/28 19:50
>>541
コマンドの引数って色づけできるの?


546 :!=523 :02/06/28 19:52
>>545
いや、出来たら嬉しいなっと思って。


547 :名無しさん@お腹いっぱい。 :02/07/05 18:52
age

548 :名無しさん@お腹いっぱい。 :02/07/05 19:26
今さらだけど >>1 にある setopt nohup は(・∀・)イイ!!ね
今まで意味を知らなかったんだけど。

549 :名無しさん@お腹いっぱい。 :02/07/05 22:33
>>548
どんな機能?


550 :名無しさん@お腹いっぱい。 :02/07/05 23:31
すいません、質問です。
このスレを読んで、.zshrcに141さんの指示を書いてみました。
しかし、multi-gnome-terminalのタブには反映されません。
シェル上で echo $TERM と入力するとxtermと返ってきます。
タブ上でも反映させる方法をご存知ありませんか?

因みに、xtermのタイトルバーにも反映されていません。
疑うべき点はどこでしょうか?

551 :名無しさん@お腹いっぱい。 :02/07/05 23:39
すみません。
Linux と BSD 系 PC-UNIX の違いって、何なんでしょうか?

552 :名無しさん@お腹いっぱい。 :02/07/05 23:44
>>551
zshと関係無い話題は他へ

553 :名無しさん@お腹いっぱい。 :02/07/06 11:19
>>549
終了土器に、小プロセスに HUP を送らない

554 :名無しさん@お腹いっぱい。 :02/07/06 11:48
>>549
% command &
で起動したコマンドはそのターミナルを閉じると道連れに死んでしまいますが、
setopt nohup しておくとターミナルを閉じても生き残ります。

% nohup command & とするのと同じです。
http://www.zdnet.co.jp/help/tips/linux/l0375.html

555 :554 :02/07/06 11:51
>rootでX Windowを使っている場合
ってあるけどこれは何か関係ないような気がする。
一般ぴーぷるでもできるし。。
# そういう意味じゃないのかな?

556 :名無しさん@お腹いっぱい。 :02/07/06 13:43
# ふつーrootでXは使わない。

>550
precmdを直接実行してみるとどうよ?

557 :550 :02/07/06 14:55
>>556
なるほど!!
precmd()
{
TITLE=`print -P $USER@%m on pts/%l: %~`
echo -n "\e]2;$TITLE\a"
}
こんな記述を.zshrcに書き込めば良いのでしょうか?
pts/としたのは、multi-gnome-terminal上で新しい
タブでシェルを生成するとpts0、pts1といった感じで
wコマンドからは見えるからです。

因に未だ解決していないので、もう少し足掻いてみます。


558 :550 :02/07/06 15:13
>>556
連続ですいません
MGT上で以下の様なコマンドを入力したところ、precmd()そのものは
きちんと解釈されているようです

% echo $TERM
xterm
% echo $TITLE
username@hostname on pts/pts/0 : ~

ちょっとMGTそのものの設定を調べてきたいと思います


559 :550 :02/07/06 22:01
ちょっとだけ解決したので報告します
multi-gnome-terminal起動時に--title=$TITLEというオプションをつければ
ウインドウのタイトルだけはusername@hostname on pts0 ~ となります
また、.zshrcには $USER@%m on %l と記述すれば良さそうです
引続き、タブに反映させる方法を探してみます

連続書き込みで板を汚してすいません


560 :550 :02/07/06 22:15
自己解決しましたので、報告します
以下のURLを参考にして下さい

これがきっかけでMGT使ってくれる人が増えると良いなぁ〜

http://www.taiyaki.org/diary/?200205b#200205171
http://www.taiyaki.org/diary/2002/src/dot.zshrc-titlebar



561 :名無しさん@お腹いっぱい。 :02/07/06 22:17
ガ━━(゚Д゚;)━━ソ!
っこ○○さん…。

562 :名無しさん@お腹いっぱい。 :02/07/07 00:35
multi-gnome-terminal 使いたいけど deb パッケージのは日本語通らないんですよねぇ。

563 :550 :02/07/07 15:08
>>562
ええ!!
俺はDebian(sid)ですけどなんの問題もありませんよ
環境は
MGT + zsh + jed-canna + canna
てな感じで、ちゃんと日本語の文章を読み書きしてます


564 :名無しさん@お腹いっぱい。 :02/07/07 15:43
>>562
おいらの環境も sid で、
MGT + zsh + ddskk + xemacs -nw
なんて具合ですけど、問題ないですね。フォントの設定はちゃんとしました?

565 :名無しさん@お腹いっぱい。 :02/07/08 20:06
今月号読んだsage。

566 : :02/07/08 23:55
>>565
どんな内容だったか教えたもう

567 :名無しさん@お腹いっぱい。 :02/07/09 04:00
便利なキーバインドの説明かな。
ESC-h でman表示とか。

568 :562 :02/07/11 08:02
>>563-564
あり?そうなの?自分は woody です。
「設定」で 2byte フォントを選ぶと、画面がびよーんと横長になってしまっ
て、しかも何も表示されなくなってしまいました。

ので日本語だめなのかなぁと勝手に思ってましたけど。sid のやつ入れてみよ
うかな。

569 :名無しさん@お腹いっぱい。 :02/07/11 09:36
# ここは zsh スレなのでちょっとだけ。解決しないようなら、下記スレまで
# Debian GNU/Linux スレッド Ver. 9
# http://pc.2ch.net/test/read.cgi/linux/1024031354/

設定の項目の中に、[ ]Enable multibyte support というのがありますが、
チェックは入れました?
ちなみにバージョンは?sid 版は 1.5.1-2 です。changelog 見ると、マルチ
バイトの対応は 1.4.0-1 の頃にあったみたいすね。それより古いとだめ
なのかも。

570 :562 :02/07/11 09:54
>>569
sid のを入れて、multibyte support にチェックしたら表示できました。

# よく考えたら >>562 の段階でもうスレ違いでしたね。ごめんなさい。

571 :名無しさん@お腹いっぱい。 :02/07/13 04:07
いくつか質問があります。よろしくお願いします。

質問(1)
$ grep -n '日本語
とかの後に間違えて Return Keyを押すと、
$HISTFILEのサイズが 0byteになってしまい、迷惑(?)しています。
何か対処法はありますか?

# RedHat7.2の zsh-4.0.2では起きたことがなくて、
# Solaris2.6の zsh-devel???(zsh-4.0.2より最近のものだと思う)で
# 結構頻繁に起こります。

質問(2)
新着メールが来ると、"You have new mail."と表示してくれます。
これを消すにはどうすれば良いのでしょうか?
$ unsetopt mailwarning
してみましたが、うまくいきません。


572 :名無しさん@お腹いっぱい。 :02/07/15 17:01
>>571
mail check 関係は、
MAILCHECK MAILPATH などの shell 変数が関係するらしいので、MAILCHECK を
0 にするとか、MAILPATH を空にするとかしてみてはどうでしょう?

"^[." insert-last-word で前のコマンドの(最後の)引数を使えることは知ってたが、
C-[ . じゃなくて Alt-. で打てることに今ごろ気づいた。
しかも前のコマンドだけだと勝手に思ってたけど繰り返せばもっと昔の引数ま
で出てくることに今さら気づいた。迂闊だった。

573 :571 :02/07/16 01:21
>>572
> mail check 関係は、
MAILCHECK=0 で解決スマシタ!!

>"^[." insert-last-word で前のコマンドの(最後の)引数を使えることは知ってたが、
こっちは全く知りませんでした。なんかに使えるかな。


574 : :02/07/16 08:00
>>572
> C-[ . じゃなくて Alt-. で打てることに今ごろ気づいた。
これは Alt キーが Meta に割当てられている場合ですね

575 :名無しさん@お腹いっぱい。 :02/07/16 08:12
>>573
> こっちは全く知りませんでした。なんかに使えるかな。

超簡単な例。

% cat hoge.txt
% rm ^[.


576 :名無しさん@お腹いっぱい。 :02/07/16 10:22
今月号のUUなかなかよかったです。

ESC-?でwhichも便利なのですが、locateをやるキーバインドはありませんか?

577 :名無しさん@お腹いっぱい。 :02/07/16 18:44
zshで日本語使えるそうですが、configureや.zshrcで何か設定がいるのでしょうか?
TeraTerm経由で日本語(EUC)を入力すると激しく化けます。

578 :名無しさん@お腹いっぱい。 :02/07/16 21:39
そりゃ zsh の問題じゃなくて teraterm の方の設定じゃないのか?

579 :577 :02/07/16 22:09
>>578
--enable-multibyteなvim、日本語パッチ付きbash等では
正常に入力できてるのでそれはないかと。

580 :名無しさん@お腹いっぱい。 :02/07/16 22:45
>>577
どういう化け方かによる。
ありそうなのは、sttyで8ビット目を落す設定になっているとか、
8ビット目がmetaキーと解釈されているとか。

581 :577 :02/07/16 23:27
# あああ
bash: あああ: command not found
#い△△
・sh: command not found: \M-$\M-"\M-$\M-"\M-$\M-"

上がbash 2.05a、下がzsh 4.0.4。
両方同じホストで「あああ」と入力しています。


582 :577 :02/07/16 23:39
あ、FreeBSDとLinuxで同じ問題が起きてます。

583 :!577 :02/07/17 01:45
>>582
Solaris でも

584 :名無しさん@お腹いっぱい。 :02/07/18 11:59
>>577
FreeBSDのportsに
/usr/ports/shells/zsh+euc_hack
というのがありましたYO。


585 :名無しさん@お腹いっぱい。 :02/07/18 12:31
やるな、FreeBSD。

586 :名無しさん@お腹いっぱい。 :02/07/18 13:37
>>584
> /usr/ports/shells/zsh+euc_hack

使わなくたって、日本語表示出来てる。


587 : :02/07/18 20:03
表示の問題じゃなくて、編集がうまくできるかの話じゃないのか

588 :名無しさん@お腹いっぱい。 :02/07/18 20:06
>>581の件じゃなくて?

589 :名無しさん@お腹いっぱい。 :02/07/18 22:33
ono氏の zsh-euc パッチを当ててますが>>581の問題は出ますね。
ただそれは行の先頭から日本語を入力した場合で(そういうことは殆どない),
% echo あああ
のように引数に日本語を入れた場合は正常に表示されますよ。(TeraTerm)


590 :名無しさん@お腹いっぱい。 :02/07/18 22:37
関係ないけど行に日本語を入れる時は私はたいてい grep の引数なので、
mgrep (Migemo grep)なんかを使った方がいいような気がしてきた。;
直接関係ないので sage.


591 :名無しさん@お腹いっぱい。 :02/07/19 10:41
shellにzshを使ってEmacsで M-x shell すると、
プロンプトの先頭に必ず ^M が表示されてしまう。
bashだと表示されないけど、どうしてでしょう?

592 :working researcher筆者 :02/07/19 14:33
>>591
if [[ -n "$EMACS" || "$TERM" = emacs ]]; then
unsetopt zle
stty -echo nl
export PAGER=/bin/cat
unfunction chpwd
fi
でどうでしょう。
stty -echo nl が効いてるのかな。


593 :名無しさん@お腹いっぱい。 :02/07/19 15:28
違う話かも知れないですが、私の場合は、
bindkey -em で日本語入力が変だったのが、bindkey -e にして直りました。

594 :591 :02/07/19 21:53
>>592
ありがとうございます。その方法で ^M が出なくなりました。
unsetopt zle の効き目があったようです。

595 :名無しさん@お腹いっぱい。 :02/07/21 01:54
4.0.4ではmplayerでの保管の対象は選ばれないみたいんだんだけど
自分で定義を追加するにはどうすればいいのでしょう?

.mp3や.mpg .aviとかを補完対象にするようにしたいのですが。

596 :名無しさん@お腹いっぱい。 :02/07/21 06:49
1. ~/.zfunc というディレクトリをつくる
2.$fpath に ~/.zfunc を加える(.zshrc 等には PATH と同じように書けばOK)
3.以下のファイルを _mplayer という名前で ~/.zfunc 以下にセーブする
4.あとは ~/.zcompdump をいったん消してから zsh を立ち上げなおしてくだちい

== _mplayer ここから===============================================
#compdef mplayer

_arguments -R \
'-h[オプションの一覧]' \
'-V[冗長モード]' \
'*:Movie File:_files -g \*.\(\#i\)\(mp3\|mpeg\|mpg\|avi\|wmv\)'
==ここまで=========================================================
オプションはたいぎいので書いてません。

597 :名無しさん@お腹いっぱい。 :02/07/21 10:24
↑岡山県民ハケーン?

598 :名無しさん@Emacs :02/07/21 10:33
>>597
そんな去らすようなことしなくても(藁

599 :名無しさん@お腹いっぱい。 :02/07/21 10:34
たいぎいって何 (^^;)

600 :名無しさん@お腹いっぱい。 :02/07/21 10:38
めんどくさいとかそういう意味。たぶん「大儀」から来てる。
広島でも使うよ。



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

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