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



458 :名無しさん@お腹いっぱい。 :02/05/12 00:00
FreeBSD 4.5R zsh 4.0.4でmanの補完が効きません。
~/.zshenvには

export MANPATH=/usr/lib/perl5/man:/usr/X11R6/man:/usr/local/man:/usr/share/man

こうしてあります。
他に設定する場所はあるのでしょうか?

459 :tcsh信者@Vim%Chalice :02/05/12 00:05
>>458
こういうのが要るのかなあ?

compctl -x 'p[1-2]' -c -- man

460 :名無しさん@お腹いっぱい。 :02/05/14 23:57
$HISTFILEに時間も記録してくれる設定って何でしたっけ?

461 :名無しさん@お腹いっぱい。 :02/05/15 01:45
>460
これか?

EXTENDED_HISTORY <C>
Save each command's beginning timestamp (in seconds since the epoch)
and the duration (in seconds) to the history file. The format of this
prefixed data is:

`:<beginning time>:<elapsed seconds>:<command>'.


462 :名無しさん@お腹いっぱい。 :02/05/15 16:27
>>460
$ setopt extendedhistory
してみました。

: 1021447189:0;tail .zhistory

のような書式で書かれていました。
(´-`).。oO(秒で書かれてもなぁ)


463 :名無しさん@お腹いっぱい。 :02/05/15 16:32
>>461

お礼を書き忘れました...。
サンキュ。

464 :名無しさん@お腹いっぱい。 :02/05/15 17:02
EXTENDED_HISTORYってデフォルトでオンになってて
オフにできないのかと思ったらSHARE_HISTORYを
使ってると強制的にオンになってた...。


465 :名無しさん@お腹いっぱい。 :02/05/22 00:07
age ついでに .zhistory の日付を分かりやすくするのを置いてみる。
awk なんてロクに使った事ない……しかも手ぬき。

#--- begin ---
BEGIN {
FS=":"
}

{
stime = strftime("%B %d %H:%M:%S %Y", $2);
print stime " -- " $3
}
#--- end ---


466 :名無しさん@お腹いっぱい。 :02/05/22 00:08
>>465
これを何処に書くの?
.zshrc?

467 :465 :02/05/22 00:14
>466
begin から end までをコピペして、適当なファイル
(例えば histdate.awk)に保存します。
あとはプロンプトで

% awk -f histdate.awk .zhistory

としてください。


468 :466 :02/05/22 00:17
なるほど、見易くなりましたね。

469 :名無しさん@お腹いっぱい。 :02/05/23 01:14
>>465
これは?
$ history -E 1
ttp://namazu.org/~satoru/unimag/3/

470 :名無しさん@お腹いっぱい。 :02/05/23 01:24
function history-all { history -E 1 }
しなくてもhistory-allだけでいいなじゃない?

471 :名無しさん@お腹いっぱい。 :02/05/23 01:33
>>470
ちゃんと定義してあげないといけないと思いますが。

$ where history-all
history-all () {
history -E 1
}

>>470は、すでに~/.zshrcとかに定義しているとか?
ちなみにzshのバージョンは、4.0.2 です。


472 :470 :02/05/23 01:34
>>471
UM見た時に追加したみたい。スマソ

473 :名無しさん@お腹いっぱい。 :02/05/26 23:31
みなさん一般ユーザのプロンプトは
$ですか?%ですか?


474 :名無しさん@お腹いっぱい。 :02/05/26 23:40
C:\Windows>

475 :名無しさん@Emacs :02/05/27 01:02
>>474
ワラタyo

476 :名無しさん@お腹いっぱい。 :02/05/29 03:15
期待age

477 :名無しさん@お腹いっぱい。 :02/05/29 10:28
cygwinに入ったみたいだけどどうよ?

478 :名無しさん@お腹いっぱい。 :02/05/29 10:43
ムァ〜ジっすか?


479 :名無しさん@お腹いっぱい。 :02/05/29 10:56
mergeっすか?

480 :名無しさん@お腹いっぱい。 :02/06/03 22:34
/man ls とかを動くようにしてみたり。

precmd () { (( $? )) && eval ${${"$(fc -l -1)"# [0-9]# }#/} }


481 :名無しさん@お腹いっぱい。 :02/06/08 00:51
本日 UnixUser 発売 age
zsh の連載の報告、お願いします

482 :名無しさん@お腹いっぱい。 :02/06/08 01:30
今回はヒストリ関係がメインか。
次回はキーバインドとメールチェック機能だそうです。
# zsh の連載の為だけに UU 定期購読した俺...。
# さすがに無駄遣いだったか...。

483 :名無しさん@お腹いっぱい。 :02/06/08 01:42
半年もしたらここにその記事うpするつもりですが。ダメか。

484 :名無しさん@お腹いっぱい。 :02/06/08 03:08
UnixMagazineは半年すると、著者さんのサイトにUPされる事もあるけど。

485 :名無しさん@Emacs :02/06/08 05:41
zshプロンプトで日本語入力するとなぜかscreenが固まりやがるのですが。

486 :名無しさん@お腹いっぱい。 :02/06/08 16:00
screenってどうよ
http://pc.2ch.net/test/read.cgi/unix/1001966406/l50

487 :名無しさん@お腹いっぱい。 :02/06/11 23:44
おまえら! shell は何を使っているんですか?
http://pc.2ch.net/test/read.cgi/unix/1012330865/l50

ここでzsh厨が暴れて困っております。
どうかこのスレで引き取ってやって下さいです。。。

488 :名無しさん@お腹いっぱい。 :02/06/12 18:10
その厨房は必ずしもzsh使いではなく、ただ荒らしたいお年頃って可能性もあります。



489 :名無しさん@お腹いっぱい。 :02/06/12 20:24
今月のUUにも載っていたけどhistoryで同じ履歴は残さないように
するsetoptはなんでしたっか?


490 :名無しさん@Emacs :02/06/12 20:32
>>489
setopt hist C-i

491 :名無しさん@お腹いっぱい。 :02/06/12 21:22
>>490
一杯あって分かりませーん。

492 :名無しさん@Emacs :02/06/12 21:25
>>491
> 一杯あって分かりませーん。

だぶるっているのを英語では duplicate と表現する。

493 :名無しさん@お腹いっぱい。 :02/06/12 21:50
一番近そうなこれでいいや。histignoredups

494 :名無しさん@Emacs :02/06/12 22:46
>>493
おしい、histignorealldups

495 :名無しさん@Emacs :02/06/12 22:47
age

496 :名無しさん@お腹いっぱい。 :02/06/12 23:24
histignoredupsとhistignorealldupsの違いがわからん。

497 :名無しさん@お腹いっぱい。 :02/06/12 23:28
前者は直前のだぶりしかけしてくれん

498 :名無しさん@お腹いっぱい。 :02/06/12 23:30
>>497
なるほど。ありがとー。


499 :名無しさん@お腹いっぱい。 :02/06/12 23:47
ちょっと疑問なんだけど、histignorealldups は
ダブりを消すときに古いほうを消すんだよね?
# 試してみろって? 今手元に zsh machine が無いんだよ。


500 :名無しさん@Emacs :02/06/13 00:19
>>499
> ちょっと疑問なんだけど、histignorealldups は
> ダブりを消すときに古いほうを消すんだよね?

同じものを消すんだから、新しい物と古いものは uniq だとおもうけど…

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コマンドからは見えるからです。

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



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

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