zsh その6at UNIX
zsh その6 - 暇つぶし2ch409:名無しさん@お腹いっぱい。
09/09/28 00:39:33
>>408
マジで?うちの環境ではbashは3.2だが古すぎるのか
bash使ってた頃はいちいちprint文とか使って桁を整えてたわ

410:名無しさん@お腹いっぱい。
09/09/28 01:30:12
ぶっちゃけbashは4でzshに近づくことができたのか?

411:名無しさん@お腹いっぱい。
09/09/28 09:10:22
>407
エロ画像連番スレの基本技5ヶ条の1だね

412:名無しさん@お腹いっぱい。
09/09/28 11:13:26
>>409
CHANGES によると { .. } は bash-3.0-alpha で実装された模様。
でもうちの 3.1.17 だとこうなってしまう。
$ echo {01..10}
1 2 3 4 5 6 7 8 9 10

413:名無しさん@お腹いっぱい。
09/09/28 11:38:24
$ bash -c 'echo {01..10}'
01 02 03 04 05 06 07 08 09 10

bash-4.0.33

414:名無しさん@お腹いっぱい。
09/09/28 12:08:23
>>413
bash-4.0-alpha からそうなったみたいね。TNX

415:名無しさん@お腹いっぱい。
09/09/28 13:50:22
ksh93なら
$ echo {01..010}
1 2 3 4 5 6 7 8
$ echo {0x0..0x10}
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

416:名無しさん@お腹いっぱい。
09/09/28 19:09:57
>>413
すげー、bashも進化してんだなw
他シェルの便利機能を取り込む姿勢はたいへん宜しい
ただ、3→4へのメジャーバージョンアップはgccのそれを思い出して
ついまともな出来なのかと疑ってしまうw

>>415
そんなことできるのかksh

417:名無しさん@お腹いっぱい。
09/09/30 00:02:28
bashもtcshもいつの間にか機能増えてたりするんで
なかなか機能差異を説明するのも難しい
まだ鍛錬が足らぬだけか

418:名無しさん@お腹いっぱい。
09/09/30 20:59:00
でもよく調べると、やっぱzshに及ばないジャンwって結論に至る

419:名無しさん@お腹いっぱい。
09/10/02 21:42:40
URLリンク(acapulco.dyndns.org)

420:名無しさん@お腹いっぱい。
09/10/03 00:41:39
fish!!

421:名無しさん@お腹いっぱい。
09/10/03 00:46:11
x68000にfishというシェルがありました。
Cシェル系だったけどナー。


422:名無しさん@お腹いっぱい。
09/10/03 00:57:07
いや fishshell.org のことでしょ。

423:名無しさん@お腹いっぱい。
09/10/09 16:51:28
zshの配列のインデックスって1からなのかよ!
小半時悩んじまったじゃねーかハゲ

$ bash -c 'foo=("bar" "baz"); echo ${foo[1]}'
baz

$ zsh -c 'foo=("bar" "baz"); echo ${foo[1]}'
bar

424:名無しさん@お腹いっぱい。
09/10/11 20:56:55
zsh金玉

425:名無しさん@お腹いっぱい。
09/10/11 20:58:17
ズィーエスエイチ袋

426:名無しさん@お腹いっぱい。
09/10/18 20:56:20
_7z _convmv 誰か持ってる?くれ。

427:名無しさん@お腹いっぱい。
09/10/27 14:04:29
zftpの使い方がいまいち分からない
これ便利なの?

428:名無しさん@お腹いっぱい。
09/10/27 20:49:02
これ見て便利だと思たら便利なんじゃね?
URLリンク(ttyshare.com)

429:名無しさん@お腹いっぱい。
09/10/29 21:39:15
>>428
感動した
よく作るなこんなの・・・

430:名無しさん@お腹いっぱい。
09/10/30 14:05:44
cd - [TAB]で表示されるディレクトリ一覧の、降順・昇順を切り替えるオプションってありますか?

431:名無しさん@お腹いっぱい。
09/11/06 04:42:36
やっと規制解除きた
>>430
cd +[TAB]
とすれば良いのでは?
+ と - の意味を切り替えるのは
setopt pushd_minus


432:名無しさん@お腹いっぱい。
09/11/06 04:48:20
コマンドを実行せずにヒストリに登録する方法は無いのかな?
zle accept-line のコマンドを実行しない版が欲しいんだが。
# HISTFILE を編集するのは無しの方向で。

433:名無しさん@お腹いっぱい。
09/11/06 07:06:51
過去の話題から。適当なキーに割り当てる。
history-register-line () { fc -R <(<<<$BUFFER); zle send-break }
zle -N history-register-line

434:432
09/11/07 09:44:36
>>433
thx, うまくいきました。

# history-register-line でググったら >>20 がヒットした orz
# FAQ だったか。スマソ


435:名無しさん@お腹いっぱい。
09/11/10 12:14:44
ディレクトリの移動履歴だけを対象にして C-r みたいなことがしたいのですが、
どうやったらいいですか?

436:430
09/11/10 14:39:29
>>431
ありがとうございました!

437:名無しさん@お腹いっぱい。
09/11/14 17:38:35
cd aaa/bbb/ccc
と入力した後に、backward-delete-word で aaa/bbb/ccc をすべて消すのではなく、
最後のスラッシュまで (cccのみ ) 消すことはできるでしょうか。

たしか何かのシェルではできていたのですが、調べてみましたが、zshでのやり方がわかりません。
よろしくお願いします。

438:名無しさん@お腹いっぱい。
09/11/14 17:46:00
全く同じ質問を2ちゃんねるのzshスレで見た記憶があるんだが

439:名無しさん@お腹いっぱい。
09/11/14 17:49:14

/'⌒`ヽ、この質問定期的に来るNE!
ヽ、┗ ノ
  `ーー'        γ⌒`ヽ           /'⌒⌒ヽ、
  ,-ーー-、      .|| ̄ ̄             (     ┃  ⌒ヽ
 /  ┃  )    ||    /⌒ヽ       \ ━┛    )
.(.   ┃   )   ||.   ( ^ω^ )
 ヽ、__,ノ     ||  _(つ¶¶と)__
           /||'''''|  三  |    |'(⌒)
        /    '―――`  ̄ \
        `============'

>>330

440:437
09/11/14 17:57:05
ありがとうございます。
それなりにzshのまとめブログを内外、見て回って使っていたんですが、ここを利用させていただくのは初で。。
これからは過去ログをチェックします。

これは需要があるとおもうんですが、意外と共有されていないのが不思議です。

441:sage
09/11/14 18:14:40
tab で補完完了時に, もう一度 tabを押すのがいやなのですが、自動的に補完内容を表示する事は可能でしょうか。

例)
aaa code/ru
-> [tab]
aaa code/ruby/  # 補完完了
-> [tab]
( やっと一覧表示 )

を、

aaa code/ru
-> [tab]
aaa code/ruby/ # 補完完了
( ここで自動的に一覧表示。)


zstyleを調べていたのですが、よくわからす、よろしくお願いします。

442:名無しさん@お腹いっぱい。
09/11/14 18:25:08
>>437
echo $WORDCHARS


443:441
09/11/15 13:46:37
補完完了時に何かトリガーするってできないのかな、、、

444:名無しさん@お腹いっぱい。
09/11/18 21:48:21
zshの補完にmigemo使えるようにならない?

445:名無しさん@お腹いっぱい。
09/11/18 23:33:46
そりゃmuripo

446:名無しさん@お腹いっぱい。
09/11/19 07:40:07
C-wで削除するときに直前の文字が日本語だと空白区切りまでじゃなく
その一つ前の単語も一緒に削除されちゃうんだけど、これってどうなのよ。
なんか設定で変更できない?

echo だよもん[C-w] → 行頭まで削除されちゃう
echo hoge だよもん[C-w] → echo になる(hogeも削除される)

447:名無しさん@お腹いっぱい。
09/11/29 00:09:09
俺が >>444 書いたんじゃないよな…
migemo補完しようとは思ったけど…

これ[ URLリンク(ja.pastebin.ca) ]を fpath に入れて

zstyle ':completion:*::::' completer _complete _migemo

とかするとなんとなく migemo補完するかも。
migemo展開パターンに記号が入ってたり、なんかすると
動かなかったりして、補完しようとするケースの半分くらいで
使えないという残念仕様だけど。
# 補完に利用している globcomplete が上記ケースで何故か動かない。

一応、PWD直下のファイル名補完なら、migemo入力を3文字程度以上
打ち込んどけば補完したはず。
後、completer 指定から分かる通り、通常補完が優先なので
それにヒットするとmigemoは動かない。
# _complete は外せるけど。

ちなみに俺は使ってない。使えないので。

もっと汚くて使えるものを今書いてるので、
また上げるかもしれない。

# 使えるといっても、対象をファイル名補完に絞った
# 個人的には使用に耐える程度のものだけど。

そういえば、_migemo って名前は compdef migemo で使いそうな名前なので、
_migemo_complete とかにした方がいいかも。

448:名無しさん@お腹いっぱい。
09/11/29 00:13:00
>>441
よくわかってないけど、こんなん?

complete-and-list () { zle complete-word ; (( _lastcomp[nmatches] == 1 )) && zle list-choices }
zle -N complete-and-list
bindkey "^I" complete-and-list

>>446
ならないよ

449:名無しさん@お腹いっぱい。
09/11/29 00:28:11
>>448
ならない人もいるのか。
バージョン・環境・ロケールなど教えてもらえる?

450:名無しさん@お腹いっぱい。
09/11/29 03:06:05
わり、 ~/.zfunc/ の widget を bind してたわ
でも ↓ でも同じだった

bindkey "^W" backward-kill-word
bindkey "^W" .backward-kill-word

% echo $ZSH_VERSION
4.3.9
% uname -rs
Linux 2.6.30-gentoo-r6
% printenv LANG LC_ALL
ja_JP.UTF-8
ja_JP.UTF-8

ちなみに、消した後、"^[r" (redisplay) するとどうなる?

451:名無しさん@お腹いっぱい。
09/11/29 12:06:11
変化なし。表示だけおかしいというわけでもない。
バージョン等は4.3.10、FreeBSD 8.0/amd64、ja_JP.UTF-8。
ebuildを見たけど、別段portsと変わっているようにも見えないしなあ。

452:名無しさん@お腹いっぱい。
09/11/30 01:16:48
この件、450と451の違い通り、原因はOSのロケール情報だった。450さんありがとう。
ざっくり言うとzshではiswalnum(3)で単語文字を識別していてLinuxでは
これが漢字かなに対して真になるけどFreeBSDではならないことによる。
glibcのロケール定義をみると、Linuxではctypeのalphaクラスに各言語の文字がずらずら入っている。
これに比べてFreeBSDのshare/mklocale/UTF-8.srcの方はヨーロッパ文字以外はお寒い。
ロケール周りはそのほか比べてみると全体的にFreeBSDは見劣りするね。

453:名無しさん@お腹いっぱい。
09/11/30 03:55:40
おつかれ

454:名無しさん@お腹いっぱい。
09/11/30 04:19:22
svn a[TAB] b
すると
unknown svn command: a
ってなる。どうにかならんかな?

svn a[TAB]
だとちゃんと補完するけど。

455:名無しさん@お腹いっぱい。
09/11/30 05:28:30
_subversion の _svn() 内の最初の

_arguments -C \
'(-)--help[print help information]' \
'(- *)--version[print client version information]' \
'1: :->cmds' \
'*:: :->args' && ret=0

で '1: :->cmds' に当たらず '*:: :->args' が効いてるみたい。
_arguments って 1: と *:: を同時に使っちゃいけないんかな?
よくわからん。

456:名無しさん@お腹いっぱい。
09/11/30 23:18:33
452だけど、glibcのロケールデータを借用してLC_CTYPEを増強した。
これでFreeBSDでもzshで日本語の文字が単語文字になって満足。

FreeBSDでも URLリンク(wiki.freebsd.org) という
動きがあるらしいのでそのうちよくなるのかな。

457:名無しさん@お腹いっぱい。
09/12/05 02:00:34
TABで補完したときに、ファイル名が一意に定まらない時は
必ずリスト表示してほしいんだけど、いい設定とかないかな?

ls .zs[TAB] → ls .zsh

ここで[^d]すると

.zshenv .zshrc

と出てくるけれど、それなら最初から出してほしい。

458:名無しさん@お腹いっぱい。
09/12/05 15:24:29
autoload predict-on
predict-on
で、先方予測を有効にしているのですが、しばらくログインシェル
として使っていると、何かの拍子に先方予測が利かなくなっている
ことがあります。(source ~/.zshrc するとまた効き始める)
何か、ショートカットで有効になったり無効になったりするもの
なのでしょうか?

459:名無しさん@お腹いっぱい。
09/12/05 15:26:40
あと、先方予測を有効にしていると
apt-get install hoge
と入力したとして、あ、sudo しなきゃ…と思って戦闘に戻って
sudo と打ち込んだ瞬間、今までの apt-get... がそっくり消える
のですが、これは何か回避のしようがないものでしょうか?

zsh使い始めたばかりですが、余りの素晴らしさに感動しきりです
この点のみ未熟なばかりに不便に感じているのでご教示いただければ

460:名無しさん@お腹いっぱい。
09/12/05 16:12:41
>>457
setopt autolist ?
デフォルトで利いてるはずだけど。




461:名無しさん@お腹いっぱい。
09/12/05 17:22:54
>>460
レスありがとう。
autolistがデフォで利いてること、
noautolistでリスト表示は^Dで明示的に指示した時のみとなることを確認しました。

457 に示した用に、autolistが設定されている場合でも、
一意に定まらない場合にリスト表示がされないことがある、のが個人的な不満というか…。
それとも、上記の例の場合でも、常にリスト表示されているということでしょうか?

462:名無しさん@お腹いっぱい。
09/12/05 22:08:48
>>461
unsetopt listambiguous

463:名無しさん@お腹いっぱい。
09/12/05 22:37:38
これは良いことを聞いた

464:名無しさん@お腹いっぱい。
09/12/05 22:51:53
>>462
ありがとう。本当にありがたい。

465:名無しさん@お腹いっぱい。
09/12/06 00:09:09
>>458
predict-off とか bindkey してない?
じゃなきゃ zstyle :predict toggle yes してるとか。
それか BUFFER 末尾以外で ^D すると predict-off するかも。
# predict-on 使ってないからよく判らんけど。
# なんか重そう(でもないかな?)なのと、
# 動きを把握できない(仕様がよく解っていない)ので避けてたんだよね。

あと、source ~/.zshrc するより

zle -N predict-on
bindkey '^X^Z' predict-on

とかしといた方がいいような。まあ個人のスタイルかも知れないけど。
いや、predict-off はしないはずという前提で不要な bindkey をしてないだけか。

あと >>459 は predict-on が LBUFFER(カーソルより左の部分)しか見てない気がするので
多分、そういうもんじゃないかな。(んなこた解ってるって?)
多少面倒でもいいなら predict-off → type sudo → predict-on って感じかな。
無論 predict-off/predict-on は bindkey した上で。

466:名無しさん@お腹いっぱい。
09/12/06 12:15:22
>>463
俺もw

このスレって常駐してるだけで色々勉強になるから助かるわ

467:名無しさん@お腹いっぱい。
09/12/08 00:16:06
深いパスで、ないファイルを補完しようとすると _approximate あたりで
暴走してたんだけど、サンプル zshrc の

zstyle -e ':completion:*:approximate:*' max-errors \
'reply=( $(( ($#PREFIX+$#SUFFIX)/3 )) numeric )'

の指定が重かったんだ。結構、サンプルから取り込んで未検討のままに
なっているものがあるけど、これもその一部。
_approximate 自体、不要という気もするけど。

468:名無しさん@お腹いっぱい。
09/12/10 00:01:36
zsh/regex
zsh/pcre
って multibyte 対応してないのかな。そんな感じだけど。
zsh/regex は setopt multibyte しても日本語文字が singlebyte として扱われてるような感じ。
zsh/pcre は setopt multibyte すると LANG=ja_JP.UTF-8 LC_ALL=ja_JP.UTF-8 で

% [[ い -pcre-match い ]]
zsh: failed to compile regexp /い/: invalid UTF-8 string
% pcre_compile い
pcre_compile: error in regex: invalid UTF-8 string

みたいに怒られる。 [[ あ -pcre-match あ ]] は何故か成功するけど。
# ja_JP.UTF-8 以外の場合は singlebyte として扱われてる気がする。
# これは pcre が UTF-8 のみ対応してるってことかな?

「使えてるよ」って方いらっしゃいます?

469:名無しさん@お腹いっぱい。
09/12/10 01:32:38
正規表現に関してはzshは他のライブラリ(OS標準のregexなりPCREなり)を呼んで
るだけだから、そちら側の都合。

470:名無しさん@お腹いっぱい。
09/12/11 18:00:18
egrep は multibyte 認識してるっぽいけど…自前ってことか。
pcretest は UTF-8 で一応動いてるっぽいけど…pcre の UTF-8 support が実験レベルってことで、色々あるんだろうなあ。
まあとにかく動かないってことでいいか。

471:名無しさん@お腹いっぱい。
09/12/12 06:02:44
>>444
もう居ないか知らんけど…
>>447 の代わりのmigemo補完。
これ[ URLリンク(ja.pastebin.ca) ]を fpath に入れて

zstyle ':completion:*::::' completer _complete _migemo_complete

とかすると動く。あー、* 要らんかな?いつ * の位置が空じゃなくなるのか分からん。
対象はファイル名補完。他も動く可能性はある。
migemo と関係ない動作としては、入力文字列中の : が regex 的に .* になるってとこかな。

まずい点とかはコメントに色々書いてあるけど…
まあとりあえずいいか、というところ。個人的には特に問題ない。
人によっては ↓ あたりが問題かも。

- 入力中のメタ文字は多分うまく扱えない。
- coproc 使う人は直さないと coproc がまともに使えない。
- menucomplete でしか動かしてない。他はまともに動くか判らない。
- LANG=ja_JP.UTF-8 用なので、nkf のとこ直さないと他は無論動かない。

候補が大量にあると遅いんだけど、日本語文字がない
(というか asciiのみの)候補を対象外にすると
もうちと速くなるかも。と今思った。

てか、候補1つで補完前のカーソルの位置が補完後の全角文字の中にあると
カーソルより後の部分が補完後に表示されないなあ。redisplay で出るけど。
zsh が出力してないみたいだけど、なんでだ…

いやー、pastebin って CRLF noeol になるんだなー。

472:名無しさん@お腹いっぱい。
10/01/01 10:19:12
あけおめ

473: 【大吉】 【1999円】
10/01/01 12:09:22
おめ

474:名無しさん@お腹いっぱい。
10/01/01 12:24:05
↑テラトイザラスwww

475: 【豚】 【1829円】
10/01/01 12:26:03
ハア?('A`)

476:名無しさん@お腹いっぱい。
10/01/05 11:18:56
man すると multios では > word 2>&1 と &> word は違うよ、って書いてあるんだけど、
良く分かりません。ありがちな hoge > /dev/null 2>&1 と hoge &> /dev/null だと、
具体的にどう違うのでしょうか?

477:名無しさん@お腹いっぱい。
10/01/05 12:19:50
例が悪すぎ。/dev/nullに捨てるんじゃ一緒だろ。

478:名無しさん@お腹いっぱい。
10/01/09 22:49:00
$ a=`jobs`
$ echo $a
で jobs の結果が a に入らないのはどうしてですか? jobsの結果を直接 tty?に流してる?

479:名無しさん@お腹いっぱい。
10/01/09 23:15:19
入るけど

480:名無しさん@お腹いっぱい。
10/01/10 06:06:17
>>478
jobs の結果が空なだけでは

481:名無しさん@お腹いっぱい。
10/01/10 13:40:00
$ jobs で結果が見れるので、空ってことはないのですが、
>> 479 本当ですか?

結局僕はこれで取れました。
$ jobs | read a
$ echo $a

482:名無しさん@お腹いっぱい。
10/01/10 13:55:01
>>481
zsh 4.3.10で試したけど
普通に入ってる

483:名無しさん@お腹いっぱい。
10/01/10 14:18:37
zsh-4.2.x のバグだ。

484:名無しさん@お腹いっぱい。
10/01/10 16:08:26
$ zsh --version
zsh 4.3.4 (powerpc-apple-darwin9.0)
でした。macだからかなぁ。

485:名無しさん@お腹いっぱい。
10/01/10 16:38:01
MacOS X Snow Leopard

$ echo $SHELL
/bin/zsh
$ which zsh
/bin/zsh
$ zsh --version
zsh 4.3.9 (i386-apple-darwin10.0)
$ sleep 10000 &
$ x=`jobs`
$ echo @$x@
@[1] + running sleep 10000@


486:名無しさん@お腹いっぱい。
10/01/10 17:13:08
MacOS X Leopard 10.5.8

$ uname -a
Darwin MacBook.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386
$ echo $SHELL
/bin/zsh
$ which zsh
/bin/zsh
$ zsh --version
zsh 4.3.4 (powerpc-apple-darwin9.0)
$ sleep 10000 &
[2] 4081
$ a=`jobs`
$ echo @$a@
@@
$ jobs
[2] + running sleep 10000

487:名無しさん@お腹いっぱい。
10/01/18 08:02:43
Ctrl+Rコマンドヒストリ検索で日本語入力が出来なくなってるよ

488:名無しさん@お腹いっぱい。
10/01/18 08:09:03
zsh 4.3.10ではCtrl+Rコマンドヒストリ検索で日本語入力が出来ないよ
ヒストリ検索がちゃんと出来ないzsh使うなんてありえないよな
ここの連中は一体どんな環境でzsh使ってんの?

489:名無しさん@お腹いっぱい。
10/01/18 08:53:08
そもそも、インクリメンタルサーチで日本語を入力したことが無い。

490:名無しさん@お腹いっぱい。
10/01/18 09:54:36
そもそも、日本語名のファイルが無い。

491:名無しさん@お腹いっぱい。
10/01/18 20:53:25
そもそも、インクリメンタル検索で日本語入力という発想が無い。

492:名無しさん@お腹いっぱい。
10/01/18 21:00:12
In the first place, I don't use Japanese.

493:名無しさん@お腹いっぱい。
10/01/19 10:05:28
setopt hist_ignore_space
していると、確かに履歴ファイルには記録されないのですが、
<C-p>で履歴を戻ったとき、出てきてしまいます。
ここでも出てこないようにするにはどうすればいいでしょうか?

494:名無しさん@お腹いっぱい。
10/01/19 12:15:23
vi [tab] とかってやったときにドットファイルも補完候補に表示してほしいんですが、
どうやったらいいですか?

495:名無しさん@お腹いっぱい。
10/01/21 16:21:42
ハローは日本語?
kon'nichiwa は日本語?
ニーハオは?

496:名無しさん@お腹いっぱい。
10/01/21 16:43:42
中間言語

497:名無しさん@お腹いっぱい。
10/01/21 17:00:13
餃子屋

498:名無しさん@お腹いっぱい。
10/01/22 10:16:09
結局 kikaku.doc とかは日本語ファイル名ってことでいいんだよね?


499:名無しさん@お腹いっぱい。
10/01/22 11:54:36
あなたしだいです!

500:名無しさん@お腹いっぱい。
10/01/22 19:44:06
用字と言語は別。

501:名無しさん@お腹いっぱい。
10/01/25 05:39:08
あなただいなしです!に見えた

502:名無しさん@お腹いっぱい。
10/01/25 12:24:41
>>494
vi .[tab]

503:名無しさん@お腹いっぱい。
10/01/27 22:40:16
>>471
condition expected: $words[i]とかいうエラーがでるんだけど何が原因かわかりますか?

504:名無しさん@お腹いっぱい。
10/02/15 02:31:52
Ctrl-. (ピリオド)を
bindkey ”^.” redo
とかに割り当てたいんですけど、
Ctrl-.を入力しても、そのまま.がターミナルに表示されます。
sttyで何か設定すればC-.が有効になるのでしょうか?

505:名無しさん@お腹いっぱい。
10/02/15 07:38:48
Ctrl-.なんて文字は存在しないから受け取りようがないのです。

506:名無しさん@お腹いっぱい。
10/02/15 11:46:12
emacsだと以下で行けるけど、ターミナルだと無理なんかも
(define-key global-map [?\C-.] 'redo)

507:名無しさん@お腹いっぱい。
10/02/15 12:53:11
ターミナルのなかで文字として受け取るか
X-client がイベントとして受け取るかの
違いが理解できていないのか?

508:名無しさん@お腹いっぱい。
10/02/15 13:26:35
emacsのxterm.elでは(define-key map "\e[27;5;46~" [?\C-.])と定義してある。
ターミナルソフト側でC-.を押したら\e[27;5;46~を送出するよう設定すればおk

509:504
10/02/15 23:37:58
ありがとうございます。
設定してxterm上ではC-.キーつかえました
でも、いつも使ってるgnome-terminal上では送出設定できなさげでorz

510:名無しさん@お腹いっぱい。
10/02/15 23:50:34
gnome-terminalは.Xdefaultsが効かないんだっけ

511:名無しさん@お腹いっぱい。
10/02/15 23:53:37
.XdefaultsはAthenaWidgetのもんじゃねーの?


512:名無しさん@お腹いっぱい。
10/02/16 13:48:12
.Xdefaults(.Xresources etc.)については
xrdb の仕組み・罠とかいろいろ知らないといけない

513:名無しさん@お腹いっぱい。
10/02/18 01:37:34
cygwin上ででzshを触り始めたんですが、
.zshrc に
「windows上で動いてるなら "c:\Program files\" の
配下のファルダ全て(もしくは一つ下のサブフォルダまで)をPATHに追加」
(新しくアプリが追加されたら、次回のzsh起動時に自動的に読み込みたい)

このような処理は出来ますか?
もしできるなら、何をどう使って書けば良いでしょうか?

514:名無しさん@お腹いっぱい。
10/02/18 02:38:33
そう書けばいいんじゃないの?

515:名無しさん@お腹いっぱい。
10/02/18 02:43:26
>>514
書く方法がまったくわからないので、何かキーワードを頂けませんか?

516:名無しさん@お腹いっぱい。
10/02/18 03:16:03
>>514

ヒント:
path=($path(N-/) /*/bin(N-/) $HOME/bin(N-/))
typeset -U path

517:名無しさん@お腹いっぱい。
10/02/18 03:18:08
すまん
ミスった
>>515

518:名無しさん@お腹いっぱい。
10/02/18 05:25:02
>>516
回答ありがとうございます。
typeset をキーワードに検索したら、それらしいページがみつかったのですが
URLリンク(en.allexperts.com)

これをやりたい事に書き直すのは自分には無理そうなので
毎回パスを手書きで追加することにします。

519:名無しさん@お腹いっぱい。
10/02/18 05:39:12
ここの説明で >>516 さんのヒントの意味がわかりましたので解決しました。
URLリンク(technique.sonots.com)

520:名無しさん@お腹いっぱい。
10/02/18 23:36:31
>>518
一瞬ジョークのように読めてちょっと笑った。

521:名無しさん@お腹いっぱい。
10/02/18 23:48:56
>>503

前に何か直したんだけど、error message がどんなんだったか忘れた。
↓ の patch で直る? error 内容が違う気がするので、直らない感があるけど。

% diff -u 1711428 _migemo_complete | gzip | base64
H4sIAPhRfUsAA62Sy07CQBSG1+1THKEh4DBmppAANY1d8BaFTAoMpdpbSo0hokldmLh14xsYtz5T
E5/DaQdE5BIWzmY6M9//n1sxxkA7lLb1rqITSjDRMe2C3jL0jtHqXZD1AkR6hKgIIWCB5/IgYuMo
iH2e8j/CNjFod0doWYAp0ZsdQHKzLBXkmkQhX3/HTmpWtPv6tXFuNMThoaJUgbsJj4unlCch5E+v
4PrRaOSF7uYy+8iztzx7/3r5zLNnFVQsDet10FDgpOOZwFnC57d+yoSKeRNbE/sQGg1YLgvuKGWC
Vt0PCAMV/VewwSnRVr3yo7Hjg7w2tWNhtxUr4IYvRJvKuVC92RNzKbdiLsoGMTVpZGh3UTKZ254w
U7xpUcLZbrG2tlEWxV5COuOhUADYNvxYgCkKfBTGMByqWIE9Ddl2MotgV2Wn99ODAzgoU09EkAmf
liw6QA8O11aifI7M302Sv0M1ilPWL+Zeq0GfOUniLFgaxIJdnSQt0vwGAasJiowDAAA=

522:名無しさん@お腹いっぱい。
10/02/21 01:14:10
打ち間違いで command not found になった場合は
ヒストリファイルに残してほしくないんだけど
何かいい設定とかないでしょうか?

523:名無しさん@お腹いっぱい。
10/02/21 09:38:43
preexecかzshaddhistoryでなんとかするのかな?

524:名無しさん@お腹いっぱい。
10/03/12 00:31:50
$PWD の長さを取得したいんですが、ホームにいるときは ~/ の2文字ではなく /home/username が返ってきます。ホームのときも考慮した$PWDの長さはどうやって取得できますか?

525:名無しさん@お腹いっぱい。
10/03/12 01:16:02
代わりに print -P '%~' の出力をみればいいと思う。


526:名無しさん@お腹いっぱい。
10/03/12 13:06:45
>>524
${#PWD/${HOME}/\~}

何がしたいのかさっぱり分からないが…

527:名無しさん@お腹いっぱい。
10/03/13 23:58:52
autoload run-help って結構微妙な動作すんだな

528:名無しさん@お腹いっぱい。
10/03/14 12:51:25
zsh -c "do something"
で呼び出したときに .zshenv だけじゃなく
.zshrc も実行前に呼びたいのですが、どうすればできるでしょうか?

オプションを下記サイトで探して
URLリンク(zsh.sourceforge.net)
RCS を使い .zshenvを読み込まない設定はできましたが
.zshrc を読み込む設定は見つかりませんでした。

529:名無しさん@お腹いっぱい。
10/03/14 13:02:11
rcは対話シェル用の設定を書くところだから、
正しいアプローチは.zshenvに該当の設定を移すことではないの?


530:名無しさん@お腹いっぱい。
10/03/14 13:15:27
>>528
一応 zsh -i +f -c 'do sth' で、無理矢理インタラクティブにしてしまえば .zshrc を読んでくれる
何のための .zshenv だよって言いたくなるが


531:名無しさん@お腹いっぱい。
10/03/14 20:56:06
>>529-530
返信ありがとうございます。
そうですね。 .zshenvに設定を移すことにしました。

532:名無しさん@お腹いっぱい。
10/03/17 01:20:42
findしまくりのbashスクリプトと、zshだけで完結しているスクリプトだったら
どっちが早いんだろ?

533:名無しさん@お腹いっぱい。
10/03/17 01:42:54
zsh で ** だとリストが長すぎてダメってことは稀によくある。


534:名無しさん@お腹いっぱい。
10/03/17 03:08:30
俺もよく稀にある。**/** 便利だから取り敢えず使っちゃう。

535:名無しさん@お腹いっぱい。
10/03/17 05:33:53
>>532
zshのほうが速いので比較するまでもない

536:名無しさん@お腹いっぱい。
10/03/17 11:35:22
zsh 使いなら当然 zargs も使うだろう

537:名無しさん@お腹いっぱい。
10/03/26 12:55:03
>>2
それをその速さで貼れるってことは
お前それをコピってずっと待機してたんだろ?
リロードしまくって。誰かスレ立てるの待って。
まじきめーな。氏ねよハゲ。

538:537
10/03/26 12:55:45
ごめんなさい
誤爆しました

539:名無しさん@お腹いっぱい。
10/03/28 14:29:24
ワロタ

540:名無しさん@お腹いっぱい。
10/04/04 15:54:16
>>533
いくつまでなんだっけ?いちいちfind使うのが面倒なんだよなぁ。
自分でソースからコンパイルすれば上限変えれるのかもしれんが・・・

541:名無しさん@お腹いっぱい。
10/04/08 16:31:18
>>540
きょうび自分でカーネルリコンパイルなんてFreeBSDくらいじゃないかね。

542:名無しさん@お腹いっぱい。
10/04/08 16:32:42
そういう話じゃなくて。

543:名無しさん@お腹いっぱい。
10/04/08 16:50:59
exec(2)に渡せる長さの上限は、FreeBSDだと sysctl kern.argmax かな。


544:名無しさん@お腹いっぱい。
10/04/09 08:41:54
だからfind + xargs -> zargs でFA

545:名無しさん@お腹いっぱい。
10/04/09 08:46:43
>>542
いやでも、自分でソースからコンパイルすれば上限は変えられるけど
カーネルリコンパイルってなかなか手を出さないと思うけどな。

カーネルアップデートがある度にやり直しなわけだし。

546:名無しさん@お腹いっぱい。
10/04/10 14:40:25
zargsシランカッタ…こんな便利なものが

547:名無しさん@お腹いっぱい。
10/04/10 19:33:33
zsh% zargs
zsh: command not found: zargs
って言われちゃうけどどう使うの?

548:名無しさん@お腹いっぱい。
10/04/10 19:34:42
autoload zargs


549:名無しさん@お腹いっぱい。
10/04/11 09:21:00
zfags

550:名無しさん@お腹いっぱい。
10/04/15 22:05:43
for n in {01..99};do で01,02,…と桁数一定の連番にできるのが凄い便利なんですが、
これのインクリメンタルを1でなく任意にする方法はありませんか?

for ((n=1;n<100;n=n+m));do の形式だとbashと同様、1,2,…となってしまい
n=01とやっても同じで不便ですね。

551:名無しさん@お腹いっぱい。
10/04/15 22:09:12
for n in `seq -w 1 2 99`; do

552:名無しさん@お腹いっぱい。
10/04/15 22:18:45
seqはGNU coreutils以外にもあるの?


553:名無しさん@お腹いっぱい。
10/04/15 22:39:52
>>550
for ((i=1;i<100;i=i+2)); do echo ${(l:2::0:)i}; done で出来るけどなんか不細工
bash なら {01..99..2} で大丈夫


554:名無しさん@お腹いっぱい。
10/04/15 23:23:38
>>552
じゃあ、jotで

jot -w %02d - 1 100 2

555:名無しさん@お腹いっぱい。
10/04/16 02:30:10
内部コマンドだけだと
for ((i=1; i<100; i+=2)); do print -f "%02d\n" $i; done

スマートにはいかんな

556:名無しさん@お腹いっぱい。
10/04/16 05:40:33
typeset -Z2 i

557:名無しさん@お腹いっぱい。
10/04/16 11:43:29
自分だったらこんな感じかな
for i in {1..10}
echo $(printf "%02d" $[i*2] )

>556 辺りが一番すっきりなんだろうけど
たぶん必要なときにこれを思い出さない気がする…

558:550
10/04/16 15:00:37
皆さんありがとうございます。色々ありますね。
自分は今のところprintfで桁数を整えています。

>>553
>bash なら {01..99..2} で大丈夫
こちらのbash 3.2では解釈してくれず、{01..99..2}がそのまま i に入ってしまいました。
4.xでの機能でしょうか?

559:名無しさん@お腹いっぱい。
10/04/19 13:52:32
上でzargsが挙がってましたが、zsh/filesを使うほうがもっと簡単なんじゃない?
と思ってやってみたら、↓のように変なところで怒られたんですが、何でですかね?

ディレクトリをmv (/の有無)
mkdir hoge fuga
$ mv hoge/ fuga/
mv: fuga//: cannot overwrite directory
$ mv hoge fuga/

異なるファイルシステム間でmv
$ touch /tmp/hoge
$ mv /tmp/hoge .
mv: /tmp/hoge: invalid cross-device link

560:名無しさん@お腹いっぱい。
10/04/19 21:53:25
上はバグかな。
下はそういうもん。

561:名無しさん@お腹いっぱい。
10/04/20 18:21:48
>>560
>上はバグかな。
まじすか・・・4.2.6なんですが、新しいのだと直ってるんですかね?

>下はそういうもん。
まじすか・・・ファイルシステムが異なる場合はrename関数でinodeを書き換えるのではなく、
新規に作って元のを消すという仕様だったと思いますが、それがきちんと実装されていない
ということですかね?だとするとこれもバグのような気が・・・

562:名無しさん@お腹いっぱい。
10/04/20 19:07:40
バカかお前。manくらい読めよ。

563:559
10/04/20 19:50:05
>>560の「そういうもん」の意味を、変な風に捉えていました
manにThis may change in a future version.書いてありますね
ついでに本家サイトに行ってmanを見てきましたが同じでした

引数の最大値の制限を受けないのは魅力的だったけど、やっぱりやめとこう・・・

564:名無しさん@お腹いっぱい。
10/04/25 17:31:00
bash の set +h に相当するオプションありますか?

565:名無しさん@お腹いっぱい。
10/04/25 18:47:04
どういう機能か書いてくれないからbashのマニュアルを調べてしまった。
hash_cmds かな?


566:名無しさん@お腹いっぱい。
10/04/29 00:33:11
>565
ごめん, Z な漢たちに bash の説明なんて余計なお世話だったらどうしようかと,

そして, ありがとう. man zshoptions ですね.

567:名無しさん@お腹いっぱい。
10/04/29 20:57:24
hash_cmdsってハッシュテーブル使うって意味だよね
利点がいまいち分からないんだが・・・
体感するほど速くなる?

568:名無しさん@お腹いっぱい。
10/04/29 21:01:16
利点がないからこそ hash_cmdsを無効にしたい、って話だろ

569:名無しさん@お腹いっぱい。
10/04/29 21:11:58
>>564 は (bashの) set +h (ハッシングをしない)相当をやりたいの
だから、zshで実際に設定するのは nohashcmds のほうになるはず。


570:名無しさん@お腹いっぱい。
10/04/29 21:14:21
>>569
それでもいいけど、set +o hash_cmds で無効に設定できるよ

571:名無しさん@お腹いっぱい。
10/04/29 22:59:52
hash_cmds って知らなかったからちょっと調べてみたけど、これがオンの場合

PATH=/usr/local/bin:/usr/bin だとして
/usr/bin/hoge を実行した後、/usr/local/bin/hoge を作成しても
その後 hoge と打ったときに実行されるのは /usr/bin/hoge

というふうに理解したのだけど、これで合ってる?

572:名無しさん@お腹いっぱい。
10/04/29 23:01:50
実行可能なファイルをパスの通ったところに放り込むと直後にそのファイルがタブ補完で呼べる、
という挙動が hash_cmds と no_hash_cmds の両方で同じだった。

もしかして、コマンド補完が効くというのはハッシュとは関係ないの?

573:572
10/04/29 23:03:38
お、>>571と似た話かな?
この辺誰か解説してくだしあ。

574:名無しさん@お腹いっぱい。
10/04/29 23:23:21
>>572
一度補完させた後に新規に作成したファイルは補完されない

575:名無しさん@お腹いっぱい。
10/04/30 18:17:41
bindkey -v使いたいんだが...
どっかにvimのヴィジュアルモード再現してくれる猛者いねーかな。
アレが無いと、削除もヤンクも使えたもんじゃない。
おかげでbindkey -e使うハメに。くつじょく
チラウラスマソ

576:572
10/05/01 00:59:09
いまいち分からなくて色々調べてたんだけど、no_hash_cmds だとハッシュが
一切関係なくなるかと思ったら、タブ押した瞬間にハッシュに登録されるようで、
以降PATHのより上位に同じのをコピーしても最初のやつが参照される。

PATHを探索するタイミングとハッシュが登録されるタイミングというのは
どうやら同じではないらしい・・・。

うーん、なんか腑に落ちないけどまぁいいや。いずれにしろ、名前がカブってるのを
異なるパスに置くなんてことをしない限り(普通しないよね?)関係ない話だし。

577:名無しさん@お腹いっぱい。
10/05/06 15:58:29
bashのhistory -d offset みたいに指定した履歴行を削除する方法はありますか?

578:名無しさん@お腹いっぱい。
10/05/07 14:16:53
なさそう。fc -R/-Wで作業ファイル経由かなあ。

579:名無しさん@お腹いっぱい。
10/05/08 00:04:43
>>575
bindkey -M vicmd v set-mark-command
とかなんかして適当に
foo-delete/foo-yank 作ればいけるんじゃない?

580:名無しさん@お腹いっぱい。
10/05/08 04:00:03
>>579
ありがとう。感謝感謝

zshall 読む気にならないのは俺だけではないはず。
いや、このスレ的には読んでないと駄目なのか

581:名無しさん@お腹いっぱい。
10/05/08 05:18:46
#ビジュアルモードを実装
function _vi-visualmode-delete() {
zle set-mark-command
...
...
}
zle -N _vi-visualmode-delete
bindkey -M vicmd 'v' _vi-visualmode-delete

根本的に方針を変えるべきか

582:名無しさん@お腹いっぱい。
10/05/08 23:47:48
bindkey -a v set-mark-command
bindkey -a d foo-delete

foo-delete() {
zle vi-delete
if (( REGION_ACTIVE )); then
zle exchange-point-and-mark
fi
}

(これ動くんかな…)
な感じでいくか、あるいは

bindkey -N vivis vicmd

bindkey -a v vi-vis-mode
bindkey -a d vi-vis-delete

とか?
てか set-mark-command だと多分、範囲末尾が1文字分期待と違うな。
しかも characterwise でしか動かない気がするけど、
まあ linewise とか要らないよね。

583:575=581
10/05/09 05:34:04
linewiseとかいうレベルじゃない…
一応visualmodeのdeleteを実装してみた。
但し、dを二回押す必要アリ+押した後にESC押す必要アリ。もっさい
有識者の方の降臨を待つとしよう。

bindkey -a v vi-vis-mode
zle -N vi-vis-mode
function vi-vis-mode() {
MARK=CURSOR
zle exchange-point-and-mark
bindkey -a 'd' vi-vis-delete
}

zle -N vi-vis-delete
function vi-vis-delete() {
CURSOR=$((CURSOR + 1))
bindkey -M vicmd 'd' kill-region
}

bindkey -a "^[" _escaping
zle -N _escaping
function _escaping() {
bindkey -M vicmd 'd' vi-delete
}


584:名無しさん@お腹いっぱい。
10/05/09 12:39:45
screen みたいに画面をキーボードで移動して必要な範囲をコピーとかって出来る?
screen 入れないと駄目?


585:名無しさん@お腹いっぱい。
10/05/09 23:45:54
うーん。だめじゃない?
表示内容を取るエスケープシーケンス(じゃなくて制御シーケンスか?)
とかあれば、それ使うか、screen と同じことをするか。
あんまり zsh でやることでもないような。

>>583
bindkey してるんを直接実行するんじゃだめなん?

586:575
10/05/10 08:15:53
>>584にヒントを得た。多分完璧。lineとかしらん
cってchangeの略なんだな。初めて知った。
bindkey -a v vi-vis-mode
zle -N vi-vis-mode
function vi-vis-mode() {
MARK=CURSOR
zle exchange-point-and-mark
bindkey -a 'd' vi-vis-delete
bindkey -a 'y' vi-vis-yank
bindkey -a 'c' vi-vis-change
}
zle -N vi-vis-delete
function vi-vis-delete() {
bindkey -M vicmd 'd' vi-delete
bindkey -M vicmd 'y' vi-yank
bindkey -M vicmd 'c' vi-change
CURSOR=$((CURSOR + 1))
zle kill-region
}

587:575
10/05/10 08:17:03
>>586の続き
zle -N vi-vis-yank
function vi-vis-yank() {
bindkey -M vicmd 'd' vi-delete
bindkey -M vicmd 'y' vi-yank
bindkey -M vicmd 'c' vi-change
CURSOR=$((CURSOR + 1))
zle kill-region
zle vi-put-before
}
zle -N vi-vis-change
function vi-vis-change() {
bindkey -M vicmd 'd' vi-delete
bindkey -M vicmd 'y' vi-yank
bindkey -M vicmd 'c' vi-change
CURSOR=$((CURSOR + 1))
zle kill-region
zle vi-insert
}


588:575
10/05/10 08:19:40
連投すまぬ
当たり前だけど、使う時はbindkey -vしてちょ
このスレの人なら、こんなこと言う必要ないな…

589:575
10/05/11 08:22:00
マジで連投申し訳ない。今回以降は書き込まない。
URLリンク(zshscreenvimvimpwget.blog27.fc2.com)作ったので、こっちでやる。
スレ汚しごぬんなさい…

とりあえず、Vモードを追加して、無駄に昨日を増やしてみた。oとか。
大体vimのビジュアルモードに準拠してるけど、vで設定した位置より右にいくと、
感覚からちょっとズレる。ここを改良するのが今後の課題だが難しいな。

590:名無しさん@お腹いっぱい。
10/05/13 18:45:07
$PREFIX/share/zsh/4.3.*/functions/ にある特定のファイルだけ読み込まないようにする方法ってありますか?

591:名無しさん@お腹いっぱい。
10/05/16 00:16:26
functions/Completion の話?

>>575
いいんじゃないっすか?過疎ってるし。
過疎ってなくてもいいと思うけど。

592:名無しさん@お腹いっぱい。
10/05/16 00:26:50
svn [TAB]で補完が効く状態(=関数 _svn が実行できる)で
unfunction _svn
としたら
svn [TAB]で command not found: _svn が出るようになったから、
unfunctionでいいんじゃないだろうか。


593:575
10/05/18 20:19:19
vim-ビジュアルモードが、ほぼ再現できたのでスクリプトを貼っておく。
意見をくれた人サンクス
詳しくはURLリンク(zshscreenvimvimpwget.blog27.fc2.com)
ヘルプURLリンク(zshscreenvimvimpwget.blog27.fc2.com)

以下のファイルの拡張子txtを省いて、~/hoge/ファイル名
みたいに保存して、
~/.zshrcにsource ~/hoge/ファイル名
と書き込むべし。

linux_fedora12のzsh4.3.10で動作確認済
URLリンク(blog-imgs-44.fc2.com)

MAC-OSXのzsh4.3.9で動作確認済
URLリンク(blog-imgs-44.fc2.com)


使い方:vかVか^vを押せ。さすれば道は開かれる

問題点:
カーソルが行頭の一歩手前までしかいけない
5hがhに。でも3foは3fo
Vで下行から上行に向かって行選択すると、挙動がちょっと変
vda'しても、テキストオブジェクト的には働いてくれない。vaの時点でインサートモードに入る。

↑のバグは、まあ微々たるもんだろう。直す気はない。
Vの挙動は、気が向いたら直すかもしれん。

今度はテキストオブジェクトを再現するつもり

594:名無しさん@お腹いっぱい。
10/05/20 23:02:47
ls --color=autoでTABの補完候補を表示させると、
hoge.bmpなどのディレクトリが.bmpファイルの色になります。
補完候補ではなく、普通にlsで見たときはディレクトリ色なんですが。

どなたか分かる方いますか?もしzshのせいでなかったらすいません。

595:名無しさん@お腹いっぱい。
10/05/20 23:27:41
手元の環境ではhoge.bmpでもディレクトリとして色付けされる
関係する設定といったら
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
ぐらいしか無いような気がするけど

596:594
10/05/21 12:19:50
>>595
そうですよね。

completionもlsも、どちらもzsh内の機能だから色付けも統一されるはずと思ったけど、そうじゃないってことかな。
ディレクトリ名に.bmpって付ける癖を直すしかないか・・・

597:名無しさん@お腹いっぱい。
10/05/21 20:40:55
う~ん、ZLS_COLORSとか?

598:名無しさん@お腹いっぱい。
10/05/29 15:54:23
>>593
おつー。

599:名無しさん@お腹いっぱい。
10/05/29 20:09:15
1行目を #!/bin/zsh としたzshスクリプトの、syntaxの色が
bashのときより素っ気ないのでカスタマイズしたいのですが、
どこの辺をいじればいいでしょうか?
/usr/share/vim/ 以下のファイルでしょうか?

600:名無しさん@お腹いっぱい。
10/05/30 01:10:28
普通は .vim/syntax/zsh.vim
俺は .vim/after/syntax/zsh.vim

601:名無しさん@お腹いっぱい。
10/06/01 07:22:37
>>594
同じような状況になった事があった気がするんだけど、
ディストリビューションは何使ってるの?
その ls はBSD系じゃなくてGNU fileutilsのコマンドになってる?

602:名無しさん@お腹いっぱい。
10/06/01 22:00:36
fileutils って何年前の話だよw

603:名無しさん@お腹いっぱい。
10/06/01 22:59:04
2002年9月1日からcoreutilsに統合だそうな。


604:594
10/06/02 11:48:46
>>601
CentOS 5.2、zshのバージョンは4.2.6です。

605:名無しさん@お腹いっぱい。
10/06/13 03:41:31
>>594
print -l $LS_COLORS $ZLS_COLORS
zstyle -L |grep list-colors

をはった方が話が早いのではなかろうか

606:594
10/06/15 18:07:45
>>605
見苦しくて恐縮ですが貼らせて頂きます。(適宜改行してます)

$ echo $LS_COLORS
no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:
mi=01;05;37;41:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:
*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:
*.cpio=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:
*.png=01;35:*.tif=01;35:*.avi=01;33:*.mpg=01;33:*.mpeg=01;33:*.wmv=01;33:*.o=00;38;05;216:

$ echo $ZLS_COLORS
no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:
mi=01;05;37;41:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:
*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:
*.cpio=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:
*.png=01;35:*.tif=01;35:*.avi=01;33:*.mpg=01;33:*.mpeg=01;33:*.wmv=01;33:*.o=00;38;05;216:
(-default-)no=00:(-default-)fi=00:(-default-)di=01;34:(-default-)ln=01;36:(-default-)pi=40;33:
(-default-)so=01;35:(-default-)bd=40;33;01:(-default-)cd=40;33;01:(-default-)or=01;05;37;41:
(-default-)mi=01;05;37;41:(-default-)ex=01;32:(-default-)*.tar=01;31:(-default-)*.tgz=01;31:
(-default-)*.arj=01;31:(-default-)*.taz=01;31:(-default-)*.lzh=01;31:(-default-)*.zip=01;31:
(-default-)*.z=01;31:(-default-)*.Z=01;31:(-default-)*.gz=01;31:(-default-)*.bz2=01;31:
(-default-)*.bz=01;31:(-default-)*.tz=01;31:(-default-)*.rpm=01;31:(-default-)*.cpio=01;31:
(-default-)*.jpg=01;35:(-default-)*.jpeg=01;35:(-default-)*.gif=01;35:(-default-)*.bmp=01;35:
(-default-)*.xbm=01;35:(-default-)*.xpm=01;35:(-default-)*.png=01;35:(-default-)*.tif=01;35:
(-default-)*.avi=01;33:(-default-)*.mpg=01;33:(-default-)*.mpeg=01;33:(-default-)*.wmv=01;33:
(-default-)*.o=00;38;05;216






607:594
10/06/15 18:08:34
続き

$ zstyle -L |grep list-colors
zstyle ':completion:*' list-colors 'no=00' 'fi=00' 'di=01;34' 'ln=01;36' 'pi=40;33' 'so=01;35'
'bd=40;33;01' 'cd=40;33;01' 'or=01;05;37;41' 'mi=01;05;37;41' 'ex=01;32' '*.tar=01;31'
'*.tgz=01;31' '*.arj=01;31' '*.taz=01;31' '*.lzh=01;31' '*.zip=01;31' '*.z=01;31' '*.Z=01;31'
'*.gz=01;31' '*.bz2=01;31' '*.bz=01;31' '*.tz=01;31' '*.rpm=01;31' '*.cpio=01;31' '*.jpg=01;35'
'*.jpeg=01;35' '*.gif=01;35' '*.bmp=01;35' '*.xbm=01;35' '*.xpm=01;35' '*.png=01;35'
'*.tif=01;35' '*.avi=01;33' '*.mpg=01;33' '*.mpeg=01;33' '*.wmv=01;33' '*.o=00;38;05;216'


608:名無しさん@お腹いっぱい。
10/06/16 08:10:12
グローバルエイリアスって
% alias -g hoge="|ls"
% touch hoge
touch: missing file operand
詳しくは `touch --help' を実行して下さい.
zsh: exit 1 touch |
zsh: done ls -F --color=auto
%

ありがちなのをつけるとマズいんだな・・・

609:名無しさん@お腹いっぱい。
10/06/16 09:15:28
大文字1 or 2文字くらいにしとくとよいかも。


610:名無しさん@お腹いっぱい。
10/06/16 14:48:21
グローバルエイリアスにした文字を普通の文字にエスケープするのって不可能?

611:名無しさん@お腹いっぱい。
10/06/16 15:09:10
$ touch 'hoge'
$ touch "hoge"
$ touch ¥hoge
お好きなのをどうぞ

612:名無しさん@お腹いっぱい。
10/06/16 18:25:24
普通にできるのね、失礼w

613:名無しさん@お腹いっぱい。
10/06/24 16:26:39
$ cp /foo /bar  まで打ってからCtrl+wを押すと、1ワード消えて
$ cp /foo /  になりますが、もう1回押すと
$ cp /  になります。これを
$ cp /foo  で止める方法はありませんか?

614:名無しさん@お腹いっぱい。
10/06/24 23:13:19
ある。

615:名無しさん@お腹いっぱい。
10/06/24 23:25:17
普通にできるのね、失礼w

616:613
10/06/25 11:43:43
>>614


かなりググりましたが、分かりませんでした。すいません教えてください。
ちなみに WORDCHARS='*?_-.[]~=&;!#$%^(){}<>' にしています。
空白も単語の区切りに設定できれば出来そうな気がしますが・・・

617:名無しさん@お腹いっぱい。
10/07/04 04:34:19
>>606
その設定だと aaaaa.bmp/ が青boldで出るけど。
baaaa.bmp はマゼンダboldで出る。

% echo $ZSH_VERSION
4.3.9

618:名無しさん@お腹いっぱい。
10/07/10 01:44:41
>>616
backward-kill-word-match とか使えばなるんじゃない?
とか適当いってみる。

619:名無しさん@お腹いっぱい。
10/07/25 00:07:51
二段プロンプトなんてログ見づらくなるだけじゃね、と思ってたけど、
PROMPT="┌[${USER}@${HOST}][%~]
└ "
こんな設定を見て目から鱗が落ちた。かなり良い。

620:名無しさん@お腹いっぱい。
10/07/25 01:05:08
プロンプトに全角使うのはちょっと・・・

621:名無しさん@お腹いっぱい。
10/07/25 01:11:01
俺はプロンプトと入力行が別だとすげー落ち着かない
余所の家のトイレぐらい落ち着かない

622:名無しさん@お腹いっぱい。
10/07/25 01:36:59
漢は黙ってPROMPT=$

623:名無しさん@お腹いっぱい。
10/07/25 15:32:27
一行に色々つめ込むと見にくいんで
多段プロンプトにしてPROMPT=$派かな

624:名無しさん@お腹いっぱい。
10/07/25 16:38:07
俺はさらに頭に空行入れて、色付きにしてる

625:名無しさん@お腹いっぱい。
10/07/28 20:53:00
1行目にユーザ、ホスト、PWD、現在時刻表示させて、
2行目に$ だけ

626:名無しさん@お腹いっぱい。
10/07/28 21:22:23
俺もそんな感じ
時刻は2行目のRPROMPTでやってるけど

627:名無しさん@お腹いっぱい。
10/07/29 13:11:09
時間は何気に役に立つんだよね。
そういえば、スクリプトの完了通知が欲しい時ってどうしてる?
終わったらgnomeのnotifier呼ぶとかかな

628:名無しさん@お腹いっぱい。
10/07/30 02:53:46
時刻は、端末の右下にscreenの機能で表示させる

そうか。プロンプトに時刻出しておくと、コマンドの実行時刻が分かるのか。
たしかに便利そうだ。

629:名無しさん@お腹いっぱい。
10/07/30 08:34:40
実行した時刻でよければ extended_history にも載ってるよ。


630:名無しさん@お腹いっぱい。
10/08/03 20:27:33
i-searchでCtrl-rで遡っているときにバックスペースを押すと
逆方向に降りる(つまりCtrl-s)動作になるのですが、
これを普通に検索ワードの後方削除にする方法を教えてください。

631:名無しさん@お腹いっぱい。
10/08/12 13:55:03
2つ下にcdする用に alias -g ....='../..' とやってるけど、なんか一抹の不安が・・・
同じことしてる人いますかね?大丈夫だよね?

昔どっかで rm -rf .* で全て消えたってスレがあったのを思い出した

632:名無しさん@お腹いっぱい。
10/08/13 02:43:27
rm .... したらって話? rm ../.. とそう変わらない気がするけど。
alias ....='cd ../..' じゃだめなの?
まあ俺は c () { cd ../${*:gs@.@../@} } で c . ってしてるけど。

>>630
こんなことは知っているかもしれないが、
backward-delete-char とかのkeyを押すとそうなる。
backward-delete-word とかのkeyを押すと削除される。

633:名無しさん@お腹いっぱい。
10/08/16 20:29:00
>>631
下?

634:名無しさん@お腹いっぱい。
10/08/30 18:01:59
>=とかの算術演算子って使えるはずだよね?
[ 1 <= 2 ] && echo "true" ってやったらエラーになるんだけど

635:名無しさん@お腹いっぱい。
10/08/30 18:14:37
(( 1 <= 2 )) && echo true

636:名無しさん@お腹いっぱい。
10/08/30 20:14:24
>>635
どうもです。(( ))って条件文でも使えるんだ

てか、[[ と (( って機能が被ってないですかね?
<は両方とも使えるけど、<=は((だけ、-eなどの条件文は[[だけみたい

637:名無しさん@お腹いっぱい。
10/08/31 15:37:27
[ ] [[ ]] (( )) の使い分けはzshの難関の一つだねぇ
zshall読んでもなかなか覚えられん

638:名無しさん@お腹いっぱい。
10/08/31 19:19:58
compdef書けるようになるとかなり幅が広がるな
つーかラッパーにもってこいだな

639:名無しさん@お腹いっぱい。
10/08/31 19:29:36
>>636
[[ の中の < と、
(( の中の < は意味が違うんだよ。

[[ 12 < 3 ]] && echo TRUE
と、
(( 12 < 3 )) && echo TRUE

を試せばわかる。

640:636
10/08/31 22:15:17
>>639
[[ の<は文字列比較でしたか・・・Σ(゚д゚;;)
やばいミスをしでかす前に気づいてよかった

つまり[[と((はちゃんと使い分けろってことね

641:名無しさん@お腹いっぱい。
10/09/01 18:34:41
zkbdをautoloadしてから実行したら zkbd: must be run as a function or shell script, not sourced ってなった。
直接 zsh -f /usr/local/share/zsh/4.3.10/functions/zkbd ってすれば動くけど。なんだこれ

642:641
10/09/01 20:30:30
zsh 4.3.5から冒頭の部分が変わったのが原因みたいだけど、
そもそもこの部分に何の意味があるのかが分からない。

$ diff zsh-4.3.10/Functions/Misc/zkbd zsh-4.3.5/Functions/Misc/zkbd | head -n 6
4,5c4,5
< local -hi ARGC # local is a no-op outside of a function
< (ARGC=0) 2>/dev/null || { # so ARGC remains read-only for "source"
---
> local -i ARGC
> (ARGC=0) 2>/dev/null || {

643:名無しさん@お腹いっぱい。
10/09/01 21:12:51
それ、コメントの書き方間違ってないか?

644:名無しさん@お腹いっぱい。
10/09/02 04:39:19
diffの引数逆にするだろ普通。

645:名無しさん@お腹いっぱい。
10/09/02 23:02:14
>>644
普通?ってwwww
いいだろ、どうだろうと、カチカチあたまくん

646:名無しさん@お腹いっぱい。
10/09/03 00:17:10
>>645
diff使い慣れないから普通が分からないだけだろ。


647:名無しさん@お腹いっぱい。
10/09/03 08:48:01
古い方を前にするのが普通だよ。
でないと -u の -,+ とあわない。

648:名無しさん@お腹いっぱい。
10/09/03 11:22:46
lnだって ln -s 古くからあるファイル 新しい名前 みたいな順だしなあ


649:名無しさん@お腹いっぱい。
10/09/03 11:25:34
>645 みたいなのは徹底して叩いておかないと、
いずれ凡ミスが原因で他人の足を引っ張った挙げ句逆ギレするタイプ。


650:641
10/09/03 12:08:57
なんか変な流れになってるが俺のせいなのか・・・
>>641は新・旧という意識でdiffしたわけじゃなかったのでこうしただけだが。
別にいいじゃないすかパッチ作るわけじゃないし(駄目?

ググったら極わずかだけど同じこと言ってる人いた。だいぶ前だが

651:名無しさん@お腹いっぱい。
10/09/03 13:36:07
>>649
その通り。
無能な働き者はあらかじめ粛清しておくに限る。

652:名無しさん@お腹いっぱい。
10/09/03 13:41:23
>>650
駄目ではないけど、普通ではない。

653:名無しさん@お腹いっぱい。
10/09/03 14:33:30
>>648
ln の仕様は確かに糞だな

654:名無しさん@お腹いっぱい。
10/09/03 14:56:41
それはlsとかで 古い -> 新しい みたいな表示をするせいだろ。

655:名無しさん@お腹いっぱい。
10/09/03 15:22:53
lnの順序はcpやmvと同じ。


656:名無しさん@お腹いっぱい。
10/09/04 22:56:55
関数のexportってexport -fですよね?以下が駄目なのは何故ですか?

$ zsh --version
zsh 4.3.10 (x86_64-redhat-linux-gnu)
$ a () {
echo "calling a"
}
$ export -f a
a () {
echo "calling a"
}
$ a
calling a
$ zsh
$ a
zsh: command not found: a

657:名無しさん@お腹いっぱい。
10/09/05 07:13:06
>>656
> 関数のexportってexport -fですよね?
は?

658:656
10/09/05 21:03:37
>関数のexportってexport -fですよね?
bashだとそうですが、zshだと違うみたいですね
というか単に出力するだけ?

659:名無しさん@お腹いっぱい。
10/09/17 17:59:14
Windows7上のCygwin on rxvt SJIS環境 zsh 4.3.9で
printf()による出力がある自作CUIプログラムを実行すると
出力の末尾に%記号が反転されて表示されるのですが、原因としては何が考えられるでしょうか?

同様にbashでもプログラムを実行しましたがこちらでは問題ありませんでした
通常のCygwin上で実行したzshだとコマンドラインを空の状態で
Enterキーを押しても反転された%が表示されます
コマンドを実行した際は末尾に表示されます

プログラムは以下でgccとVSのclコマンドでコンパイルして試しました
---------------
#include <stdio.h>
int main(void) {
printf("hoge");
}
---------------
出力
$ gcc -o main.exe main.c
$ ./main.exe
hoge%
---------------
.zshrcの設定
export TERM=vt100
export TERM=xterm
export LANG=ja_JP.SJIS
export LESSCHARSET=japanese-sjis


660:名無しさん@お腹いっぱい。
10/09/17 18:38:37
>>659
printf()の文字列に改行を入れてないのが間違い。
bashではたまたま設定で頭に改行コードが付いたプロンプトを使っていたので
うまくいってるように見えただけ。
zshでは、設定で反転文字の%のプロンプトが設定されていたというだけ。

で、zshの話題とは全然関係ない。

661:名無しさん@お腹いっぱい。
10/09/17 18:41:24
>>660
どうどうと、嘘つくな

662:659
10/09/17 18:56:35
PROMPT変数にWindowsが$P$Gを入れてたので
prompt elite2 greenなどでプロンプトを設定していましたが
PROMPT=''で表示を変えても%が表示されるのは確認しました
Windows標準のコマンドプロンプト上でzshを起動しても同様です

663:名無しさん@お腹いっぱい。
10/09/17 19:06:53
だから printf()に改行コードを入れろよ。それですべて解決。

664:名無しさん@お腹いっぱい。
10/09/17 19:10:06
zshもCも関係なくUNIXのお約束として特別な事情がないかぎり入出力とかファイルの末尾は改行じゃなきゃいけないの
本来末尾にあるべき改行がねえぞって注意してくれてんの

% echo "hoge"
hoge
% echo -n "hoge"
hoge%
% echo -n "hoge\n"
hoge

665:名無しさん@お腹いっぱい。
10/09/17 19:59:09
>>664
偉そうに、デタラメ言うな

666:659
10/09/17 23:00:07
>>664
お約束事でしたか。詳しく書いてくださってありがとうございます。
CUIプログラムに改行を付け加えたら無事に動作しました。

667:名無しさん@お腹いっぱい。
10/09/17 23:20:39
>>661 = >>665 の立場がなくなったなww

668:名無しさん@お腹いっぱい。
10/09/18 08:51:36
cddってtmuxでも動くのか

669:名無しさん@お腹いっぱい。
10/10/08 15:12:52
historyって宝ですよねー
何度か消えてしまって泣いたことがある
setopt share_historyしてるからかな

670:名無しさん@お腹いっぱい。
10/10/15 12:25:21
みんなHISTSIZE はどのくらいにしてるのかな?
自分は↓
% echo $HISTSIZE
10000

671:名無しさん@お腹いっぱい。
10/10/15 13:15:10
$ echo $HISTSIZE
10000000

672:名無しさん@お腹いっぱい。
10/10/15 15:06:42
俺も HISTSIZE=10000 だった

ついでに、何故か LISTMAX=10000000000 とかしてた
あまり考えずに大きい値にしたから 32ビット超えてるけど動いてるからいいか

673:名無しさん@お腹いっぱい。
10/10/15 19:58:14
>>671
すげえなw
でもある意味プライバシーの塊だな

674:名無しさん@お腹いっぱい。
10/10/15 20:57:00
>>669
ディスクが100%になって端末がおかしくなってログアウトしたら
historyの書き込み失敗したのかhistoryファイル自体があぼーんしたわ
それ以来historyもバックアップとるようになった

675:名無しさん@お腹いっぱい。
10/10/16 00:14:59
>>673
今見たら.zsh_historyが1.2MBもあったw

676:名無しさん@お腹いっぱい。
10/10/16 18:07:21
昔はwgetとかでエロ画像をシコシコ落としてたらしいし、historyは絶対人に見せられないだろうな

677:名無しさん@お腹いっぱい。
10/10/16 18:44:41
俺は今でもエロ画像落とすのにwget使ってるというのに…
まあ滅多にないけどさ

678:名無しさん@お腹いっぱい。
10/10/16 19:13:37
ファイル名が連番のエロ画像はcurlで落とす

679:名無しさん@お腹いっぱい。
10/10/17 00:27:21
>678
敢えて zsh スレでそんなこと書くって釣り宣言?

680:名無しさん@お腹いっぱい。
10/10/17 18:25:06
つかcurlなんてあったんだ

681:名無しさん@お腹いっぱい。
10/10/17 18:33:20
えっ

682:名無しさん@お腹いっぱい。
10/10/30 19:43:55
cygwinのzshでHISTFILE=$HOME/.zsh-history と設定してヒストリーを使おうとすると、
zsh: failed to create hard link as lock file .zsh-history.LOCK: permission denied
とエラーが出るのですが、回避方法はないでしょうか?
よろしくお願いします。

683:名無しさん@お腹いっぱい。
10/10/31 11:19:35
極限のシェルzsh
これを極めし者は時空をも超える

684:名無しさん@お腹いっぱい。
10/11/03 10:49:01
>>682
そんぐらいググってくれ
ntfsにすれば解決

685:名無しさん@お腹いっぱい。
10/11/07 07:59:12
うんこー!
しょんべー!

686:名無しさん@お腹いっぱい。
10/11/12 17:28:50
>>82
僕もなぜか新しいscreen立ち上げたときは反映されなくてsourceしたらようやく反映される設定があったけど
.zshenvに書いたら大丈夫だったよ.

687:名無しさん@お腹いっぱい。
10/11/13 18:09:16
>>686
インタラクティブシェルのときは.zshrcは読まれるはずなんだけどな

688:名無しさん@お腹いっぱい。
10/11/14 02:34:18
.zshrcの該当箇所より前にエラーがあったとか

689: [―{}@{}@{}-] 名無しさん@お腹いっぱい。
10/11/14 03:00:43
>>687
そうだよね.そう思ってたんだけどなぜか読まれない設定もあるみたい

690: [―{}@{}@{}-] 名無しさん@お腹いっぱい。
10/11/14 03:10:44
>>688
エラーがあったらzshはそのエラーの箇所を教えてくれるじゃん

691:名無しさん@お腹いっぱい。
10/11/14 21:31:33
.zshrc を
bindkey "^P" history-beginning-search-backward-end
だけにしても同じなのかね。

692:名無しさん@お腹いっぱい。
10/11/18 15:38:06
sshのログイン先で実行したzshスクリプトをdisownしてからログアウトすると、
何故かプロセス終了まで待たされてしまいます。
$ cat hoge.sh
#!/bin/zsh
sleep 3
$ ./hoge.sh &>/dev/null </dev/null &!
$ exit <---待たされる

スクリプトをzsh以外にしたり直接プロセスを実行したりすると、ちゃんとログアウトできます。
$ cat hoge.sh
#!/bin/sh
sleep 3
$ sleep 3 &>/dev/null </dev/null &!

入出力は全部閉じてるはずなんですが、zshだと何故こうなるんでしょうか?

693:名無しさん@お腹いっぱい。
10/11/18 19:50:47
試したけど待たされなかったよ。なんか他に条件があるのかも。

694:692
10/11/18 21:20:48
>>693
そうですか。
check_jobs が関係するかなと思いましたが、有りと無しともに同じでした。
他の設定が悪いのかと思い、rm -r .z* して試しましたが、やはり同じでした。

↓バージョンです
$ zsh --version
zsh 4.3.10 (x86_64-redhat-linux-gnu)


695:名無しさん@お腹いっぱい。
10/11/22 20:15:39
たまに「.zhistory.84VoUD」みたいなテンポラリ的な履歴が作られるんだけど何でだろう?
ログアウトはちゃんとしてるのに

696:名無しさん@お腹いっぱい。
10/12/02 10:47:13
初心者質問すいません。
シェルをbashからzshに代えたら、ログインし直すたびにhistoryコマンドの履歴が消えてしまっています
.zshrcには
HISTFILE=$HOME/.zsh_history # 履歴をファイルに保存する
HISTSIZE=100000 # メモリ内の履歴の数
SAVEHIST=100000 # 保存される履歴の数
と書いていて、.zsh_history自体をlessで覗くと記録が残っているのですが…

697:名無しさん@お腹いっぱい。
10/12/02 13:16:49
別のファイルで先にHISTFILEが設定されていてそっちから読まれちゃったとか?

698:696
10/12/06 13:00:10
すいません、超勘違いで無事に書き込みされていました!


699:名無しさん@お腹いっぱい。
10/12/06 20:39:58
SuSEとかだと/etc/zsh*で結構設定してるんだよな
HISTFILEを.zshenvに書いてたせいでハマった覚えが

700:名無しさん@お腹いっぱい。
10/12/19 19:12:31
bashの「変数のn文字目からm文字目を取り出す」という機能はzshにはないんですか?
こんな感じのやつです
$ str=hoge
$ echo ${str:1:2}   ←先頭は0から
og
$ echo ${str:1}   ←2つ目を指定しないと末尾まで
oge

701:名無しさん@お腹いっぱい。
10/12/19 21:06:59
>>700
% str=hoge
% echo $str[2,3] # 先頭は 1 から
og
% echo $str[2,-1] # 末尾は -1 から
oge
% echo $str[2] # n 文字目
o


702:名無しさん@お腹いっぱい。
10/12/19 22:01:16
>>701
ありがとうございます!そんな方法があったとは・・・
配列の場合もできるんですね
$ str=( hoge fuga )
$ echo ${str[2][1,-1]}
fuga

703:名無しさん@お腹いっぱい。
10/12/23 03:08:11
hoge.txt
内から、piyoという文字列を検索して、それ以降の行を取得するのってどうすればいい?
perl使えば可能ではあるけど・・・・これはシェルスクリプトスレで聞くべきか

cat hoge.txt |perl -ne 'if($i==0){if(m:piyo:){$i=1}}else{print}'

704:名無しさん@お腹いっぱい。
10/12/23 03:41:15
スレチだね

grep -A99999999 'piyo' hoge.txt
perl -ne '$f|=/piyo/and print' hoge.txt

705:名無しさん@お腹いっぱい。
10/12/23 05:54:50
9999999とか使うよりも、`wc -l`使ったほうが良いんでないかい?

706:名無しさん@お腹いっぱい。
10/12/23 08:20:45
sedでええやん


707:名無しさん@お腹いっぱい。
10/12/23 10:39:34
sed '1,/piyo/d' hoge.txt ってな感じ?

>>700
12/20 に出たばかりの 4.3.11 のリリースノートを読んであまりのタイムリーさに笑ってしまった

> Parameter expansion has been enhanced to provide the ${NAME:OFFSET} and ${NAME:OFFSET:LENGTH} syntax
> for substrings and subarrays present in several other shells.

708:名無しさん@お腹いっぱい。
10/12/31 00:47:09
>>695
うちもそれ偶にみると大量(でもないか)にできてて、
rm .zsh_history.* とかしてたんだけど、
今みるとないな。前消してからけっこうたった気がするけど。

709:名無しさん@お腹いっぱい。
11/01/01 23:31:40
ネットが瞬断して端末が切れたとかはないの?

710:名無しさん@お腹いっぱい。
11/01/06 23:45:20
zsh-4.3.[10,11]のelite2プロンプトで変な文字が入る

┌┌(hoge@hage)┌(10001/pts/6)┌(11:42pm:01/06/11)┌-
└┌(%:~)┌-

誰か同じ症状の人いない?
prompt_elite2_setupはzsh-4.3.9(正常なプロンプトが出る)に含まれる物と同じみたい

711:名無しさん@お腹いっぱい。
11/01/08 21:48:53
>>703
% sed '1,/piyo/d' hoge.txt
で簡単にできるはず。

712:名無しさん@お腹いっぱい。
11/01/09 01:27:28
すでに>>707にあるがな

713:名無しさん@お腹いっぱい。
11/01/09 04:00:39
zsh睾丸

714:名無しさん@お腹いっぱい。
11/01/14 00:17:01
>>710
prompt は使ってないけど…
期待値は?
prompt_special_chars は変わってない?

┌┌(hoge@hoge)┌(516/pts/4)┌(12:13午前:01/14/11)┌-
└┌(%:~)┌-

あー俺もヒストリ10000ぐらいにしよっかなー

715:名無しさん@お腹いっぱい。
11/01/14 00:18:14
書き忘れたけど >>714 のプロンプトはうちで試した結果ね。

716:名無しさん@お腹いっぱい。
11/01/14 10:29:40
prompt テーマだかは使ったことないけど
それのどこが "変" でどうなっているべきなの?

↓と似たような感じに見えるけど…
URLリンク(www.linuxaria.com)

717:710
11/01/14 20:30:04
>>714
prompt_special_charsが変ってるみたい
4.3.9のelite2プロンプトは下記の通り '┌' が付かない

(hoge@hage)(10015/pts/7)(08:26pm:01/14/11)-
(%:~)- diff -u prompt_special_chars-4.3.*
--- prompt_special_chars-4.3.9 2011-01-14 20:26:13.012731694 +0900
+++ prompt_special_chars-4.3.10 2011-01-14 20:26:13.012731694 +0900
@@ -8,7 +8,7 @@

typeset -gA schars

-if [[ ${LC_ALL:-${LC_CTYPE:-$LANG}} = *UTF-8* ]]; then
+if [[ ${LC_ALL:-${LC_CTYPE:-$LANG}} = *(UTF-8|utf8)* ]]; then
schars[300]=$'\xe2\x94\x94'
schars[304]=$'\xe2\x94\x8c'
schars[332]=$'\xe2\x94\x8c'
@@ -20,6 +20,6 @@
schars[260]=$'\xe2\x96\x91'
else
for code in 300 304 332 333 371 372 262 261 260; do
- eval "char[$code]=\$'\\$code'"
+ eval "schars[$code]=\$'\\$code'"
done
fi


718:名無しさん@お腹いっぱい。
11/01/22 23:57:26
解決 ?

719:名無しさん@お腹いっぱい。
11/01/23 21:50:20
zshマスターは時空を超える

720:名無しさん@お腹いっぱい。
11/01/28 07:30:14
引数リストの長さの制限を自動で超越して欲しいことは時々ある

721:名無しさん@お腹いっぱい。
11/01/28 18:01:18
cvs updateできないの俺だけ?
Fatal error, aborting.
anoncvs_zsh: no such system user

722:名無しさん@お腹いっぱい。
11/01/29 03:48:58
補完で優先順位を察して補完してくれる機能ってありますか?

autoload predict-on
predict-on
の先方予測は試したけどtab打たなくても勝手に出てるっていうのが気持ち悪い。一応Tab打った時だけ反応して欲しい。

723:名無しさん@お腹いっぱい。
11/01/31 00:57:02
?つまり?

724:名無しさん@お腹いっぱい。
11/02/12 18:27:10
ho

725:名無しさん@お腹いっぱい。
11/04/11 02:01:20.99
_history-complete-{older,newer} って menu select ができないのかな

726:名無しさん@お腹いっぱい。
11/04/15 18:13:04.18
/a/b/c が /A/B/C というディレクトリへの symlink のときに、/a/b/c に移動してから
ls ../[TAB] とすると /A/B 以下のファイルが補完対象になります。
これを /a/b 以下のファイルを対象にしたいのですが、どのようにすればいいのでしょうか?

ちなみに CHASE_DOTS と CHASE_LINKS はオフにしています。

727:名無しさん@お腹いっぱい。
11/04/15 22:59:29.50
>>726 plus
mkdir /a and /A
mkdir /b and /B
mkdir /c and /C    ON files of directory.

728:名無しさん@お腹いっぱい。
11/04/16 09:02:53.75
>>726
そんな補完したところでlsは失敗するだけなので意味がないのでは?

729:名無しさん@お腹いっぱい。
11/04/16 09:50:13.12
そもそも >727 がなにが言いたいのかわからん

730:名無しさん@お腹いっぱい。
11/04/16 15:01:31.51
tempfile==(foo_process) と一時ファイルの名前を取得しておいて、後で $tempfile を
処理するような zsh スクリプトを書くことがあるのだけど、4.3.6 から 4.3.11 に
バージョンアップしたら動かなくなった。

後で処理する段階では削除済みになっている。セキュリテイの問題か何かで、一時ファイルの
寿命を変更したのだろうか。お手軽に一時ファイルを扱えて便利だったんだが。

731:名無しさん@お腹いっぱい。
11/04/30 00:44:02.87
元からそう動くと思っていたが、
前は作りっぱなしだったのか。

732:名無しさん@お腹いっぱい。
11/05/01 01:48:08.75
>>731
それで思い出した。スクリプト終了時には多くの場合自動的に消えるのだが、
たまに /tmp/zsh* が残ったままになるので、trap で消すようにしてあったんだった。
やはりバグだったのかもしれない。

733:名無しさん@お腹いっぱい。
11/05/14 16:48:39.90
内蔵コマンドのniceが欲しい

734:名無しさん@お腹いっぱい。
11/05/14 21:01:39.43
なぜ?

735:名無しさん@お腹いっぱい。
11/05/14 23:16:30.10
そっちの方がniceだから

736:名無しさん@お腹いっぱい。
11/05/16 12:00:38.09
そういうコマンドはないスね。

737:名無しさん@お腹いっぱい。
11/05/16 19:33:27.50
ナイスな切り返し!

738:名無しさん@お腹いっぱい。
11/05/17 01:48:06.20
ナイスな椅子

739:名無しさん@お腹いっぱい。
11/05/17 20:54:54.76
コッシーか

740:名無しさん@お腹いっぱい。
11/05/24 04:21:47.89
電動オナホールをzshで制御

741:名無しさん@お腹いっぱい。
11/05/25 00:17:08.52
俺は童貞だ!

742:名無しさん@お腹いっぱい。
11/05/26 00:23:11.80
すみません。zmvの使い方を教えてください
1.pdf 2.pdf ... 9999.pdf を

0001.pdf 0002.pdf ... 9999.pdf と、
先頭に0を含むファイル名に変えるにはどうすればできますか?

743:名無しさん@お腹いっぱい。
11/05/26 01:00:04.31
zmv '(*).pdf' '${(l:4::0:)1}.pdf' でいいのかな?
正直こういうzshの変な機能を使うのはどうかと思う

744:742
11/05/26 01:40:01.29
>>743
ありがとうございます。
>正直こういうzshの変な機能を使うのはどうかと思う
痒いところにピンポイントで、とても助かりました。

745:名無しさん@お腹いっぱい。
11/05/28 13:12:40.65
変な機能はいいんだけど、次に必要になる時までに使い方を忘れてしまうのが難点。

746:名無しさん@お腹いっぱい。
11/05/28 13:16:40.66
>>745
HISTSIZEもっとでかくしようぜ?

747:名無しさん@お腹いっぱい。
11/05/28 19:43:09.37
% echo $SAVEHIST
0

% echo $HISTSIZE
100000

保存したいなー、と思ったときだけ
% SAVEHIST=1 fc -W $HISTFILE

748:名無しさん@お腹いっぱい。
11/06/11 02:40:20.24
また変わったことを‥ 似たことを考えたことはあるけど。
さて、ひとまず 10倍にするか。

749:名無しさん@お腹いっぱい。
11/06/14 07:27:59.44
4.3.12

750:名無しさん@お腹いっぱい。
11/06/15 21:10:11.82
zshで時空を超えた奴はいないか?

751:名無しさん@お腹いっぱい。
11/06/15 21:14:02.51
色即是空、空即是色
シェル製作者は冥界へ行ったまま帰ってこない

752:名無しさん@お腹いっぱい。
11/06/15 21:25:26.73
zsh 4.3.12 で setopt ksh_arrays にしてると _main_complete でエラーが出て
補完が効かなくなるのはおれだけ?
そのファイルで setopt localoptions no_ksh_arrays すると大丈夫っぽいけど、
正しい方法か分からない。

753:名無しさん@お腹いっぱい。
11/07/13 21:45:12.61
「# cp /us」で上キー押すと履歴が補完されて
「# cp /usr/home .」のようになるのですが、
たまに、「# cp /us」で上キー押しても履歴補完されず、もう1度押すと
直前のコマンドが表示されてしまいます。
これはどこか.zshrcがおかしいのでしょうか?
ちなみに、大地さんのURLリンク(journal.mycom.co.jp)
を、履歴補完のキーだけ改造しただけだったと思います。

754:名無しさん@お腹いっぱい。
11/07/18 16:57:18.63
>>752
まだ 4.3.11 だしエラーの内容知らんけどまあ正しいんじゃない?

>>753
↑キーには何 bind してんの?

755:753
11/07/19 03:17:01.85
autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "\e[A" history-beginning-search-backward-end
bindkey "\e[B" history-beginning-search-forward-end
bindkey "\\ep" history-beginning-search-backward-end
bindkey "\\en" history-beginning-search-forward-end

です

756:名無しさん@お腹いっぱい。
11/07/20 23:31:23.84
よく起きるなら history-search-end の先頭で setopt xtrace してみれば何かわかるかもね

757:名無しさん@お腹いっぱい。
11/08/06 12:36:50.68
前から思ってたけど **/* は ** でいい気がする。表記法として。
/* が無駄に思える。
要らなくね?と思いながら / を打っている。

758:名無しさん@お腹いっぱい。
11/08/06 15:51:31.14
え?

759:名無しさん@お腹いっぱい。
11/08/10 14:30:44.99
そういやMSX-DOSにはディレクトリがなかったっけ
かつてファイルしかない世界がそこにはあった
>>757はそんな時代に生きているんだ

760:名無しさん@お腹いっぱい。
11/08/10 17:54:21.35
いや **/* だけ特別扱いしたらっていう提案でしょ。
単に ** の時は **/* に、
**/*.c みたいなやつは今までどおりでと。

761:名無しさん@お腹いっぱい。
11/08/10 19:43:41.53
特別扱いというより、**のみの意味を考えた時に
**/*と何ら変わりがなくね?って話かと

762:名無しさん@お腹いっぱい。
11/08/10 21:32:22.84
/** ここはコメントです **/

763:名無しさん@お腹いっぱい。
11/08/10 23:20:40.36
>>760
それなら、グローバルエイリアスで '**'='**/*' すればいいだけじゃね?

764:757
11/08/12 03:16:42.94
>>761 が近い、というよりそのものかな。

>>763
なので、悪くない案だけど理想は dir/** -> dir/**/* になることかな。
alias -g '**=**/*' じゃ dir/ 付きは変わらなかった。
色々やってまで実現したい訳じゃないので。個人的にはこういう仕様の方がよかったなー、というだけで。
まあ熟慮した訳じゃないので破綻してるかも知れないけど。

つか man zshexpn の Recursive Globbing 見ると

As a shorthand, `**/' is equivalent to `(*/)#'

とあり directory についての記法になってるけど、
感覚的には `**' が `(*/)#*' なんだよなー。
まあこれだと **/foo が foo に match しないけど。
無理に書くと ** を ./(/*)# として match したものから . を除いて正規化したものが期待結果かな。
zsh の glob として正しくないけど。
なんかもう破綻してる気がする。

いや、というか訳わからんこと書いたけど結局こうなってほしいってことか。

** -> (*/)#*
**/ -> (*/)#

更にいうとこうか。最初に戻ってるよ。

** -> **/*

どうやら混乱していたようだ。

765:名無しさん@お腹いっぱい。
11/08/26 03:48:57.64
#!/bin/zsh

766:名無しさん@お腹いっぱい。
11/08/30 04:55:18.98
zshの本っていうの買ってきた。
まだ読んでない。

767:名無しさん@お腹いっぱい。
11/09/20 00:02:11.12
リンク先のないシンボリックリンクファイルをまとめるglobってあります?

768:名無しさん@お腹いっぱい。
11/09/20 04:23:59.57
*(-@)かな?

769:名無しさん@お腹いっぱい。
11/09/20 10:31:57.15
ウナー *(-@-)*

770:名無しさん@お腹いっぱい。
11/09/25 14:52:34.21
URLリンク(www.clear-code.com)

771:名無しさん@お腹いっぱい。
11/09/25 15:18:54.59
>770
+1

772:名無しさん@お腹いっぱい。
11/09/30 04:20:36.81
最近、zshに入門した者なんですが Mac10.6の環境で

PROMPT=$'%(!.#.%%)' ;

を実行するとスーパーユーザだとプロンプトの接頭辞が(そう呼んで正しいのか否かもわかりませんけど)
#
になり、その他だと
%
になるこの原理がどうしてなのかわからず謎めいているのですが

おわかりになる諸先生方いらっしゃいましたらご教授ねがえませんでしょうか

773:名無しさん@お腹いっぱい。
11/09/30 06:05:16.72
zshmisc(1)に書いてある。

774:名無しさん@お腹いっぱい。
11/09/30 09:58:43.77
キターーーーー!!
ハッカーさんありがとうww

775:名無しさん@お腹いっぱい。
11/10/02 21:41:07.32
zshってbashのスクリプト使える?

776:名無しさん@お腹いっぱい。
11/10/03 00:05:32.72
tukaeru

777:名無しさん@お腹いっぱい。
11/10/03 09:18:40.25
ある程度は。


778:名無しさん@お腹いっぱい。
11/10/03 09:27:19.51
スーパーユーザだとプロンプト山桐慎也

779:名無しさん@お腹いっぱい。
11/10/10 20:00:44.39
zshで function { local a=("hoge"); } とやろうとすると怒られる。
bashでは出来るのに。そういう仕様なの?

local a
a=("hoge")

ってやるしかないの?

780:名無しさん@お腹いっぱい。
11/10/10 20:33:33.77
man zshbuiltins の typeset (localの本体) の説明より。

For each name=value assignment, the parameter name is set to value.
Note that arrays currently cannot be assigned in typeset expressions,
only scalars and integers.

ということで現行の制限事項という感じじゃないだろうか。


781:名無しさん@お腹いっぱい。
11/10/11 00:08:27.49
>>780
ありがとう。そういう事なら仕方ないね。

782:名無しさん@お腹いっぱい。
11/10/13 22:45:40.31
エイリアスに補完を効かせるにはどうしたらいいですか?
たとえば、alias adx='chmod +x' とした場合、このadxにchmodと同様の補完を
効かせたいんですが、やはり _adx みたいな補完ファイルを自分で用意しろってことですか?

783:名無しさん@お腹いっぱい。
11/10/13 22:58:24.95
俺の環境では何もせんでも chmod +x [TAB] と同じ補完になるが……

784:名無しさん@お腹いっぱい。
11/10/14 13:06:26.35
多分 compdef adx=chmod とかいう話なんでは

785:名無しさん@お腹いっぱい。
11/10/15 19:25:37.60
ctrl E で行末に移動したあと、単語単位でカーソル位置を戻したいんだけど、どうやんの?


786:名無しさん@お腹いっぱい。
11/10/15 19:39:23.41
bindkey -e なら Alt-B?

787:名無しさん@お腹いっぱい。
11/10/15 21:52:03.41
なお、何をもって単語と見なすかは WORDCHARS 次第。


788:名無しさん@お腹いっぱい。
11/10/18 02:25:40.80
これってreadlineの機能?


789:名無しさん@お腹いっぱい。
11/10/18 02:37:36.81
readline使ってないよ
独自実装

790:名無しさん@お腹いっぱい。
11/10/20 23:52:27.78
キーバインドの一覧を知りたいのですがどうやればいいですか?

791:名無しさん@お腹いっぱい。
11/10/21 00:42:05.88
bindkeyでした

792:名無しさん@お腹いっぱい。
11/11/05 22:41:39.08
zshを使ってみようと思うのですが、勉強するために最適な書籍などはありますか?

793:名無しさん@お腹いっぱい。
11/11/05 23:07:47.87
>>792
この本がお勧めです。
Introduction of the ZSH
URLリンク(www.gentei.org)

794:名無しさん@お腹いっぱい。
11/11/06 08:15:47.33
man zshall

795:名無しさん@お腹いっぱい。
11/11/06 10:18:22.94
迷宮の入り口晒すな

796:名無しさん@お腹いっぱい。
11/11/12 18:58:04.35
TABキーの補完をbashのようにファイル・ディレクトリのみにするには
どう設定すればよいでしょうか?

低スペックのノートPC上でcygwinのzsh 4.3.11 を使っていますが、
TABキーを押すと5~10秒近く待たされることもあります。
bashだと一瞬なので、zshでも補完の検索をカレントのファイルのみにしたいです。


797:名無しさん@お腹いっぱい。
11/11/13 22:52:50.08
compinit しなければいいんじゃないかな。
てか bash でもいいような気がしたけど、きっと気のせいだな。

798:796
11/11/14 22:49:23.21
おまじないのようにcompinitしてましたが、
プログラマブル補完機能というのが効いていたのですね。
これを外して何か副作用あるかなと思いましたが、特に問題なさそうです。
ありがとうございました。

ヒストリの複数行コマンド編集やTABキーで補完候補の選択ができるとこが
bashになくて気に入ってる機能です。

799:名無しさん@お腹いっぱい。
11/11/18 22:34:45.85
あーなんか履歴検索とかって space を and にした絞り込みにしたら使いやすいかもなあ。
とか最近 unite.vim を使って今 history-incremental-search-backward 呼んだら思った。

800:名無しさん@お腹いっぱい。
11/11/18 22:53:12.54
history-incremental-pattern-search-backward
で我慢してくれ。


801:名無しさん@お腹いっぱい。
11/11/20 08:59:19.42
>>799
そこでvimshellですよ!

802:名無しさん@お腹いっぱい。
11/11/21 14:05:04.51
vimshel使うのと、screenでターミナル分割して使うのと何がちがうの?


803:名無しさん@お腹いっぱい。
11/11/23 10:57:13.05
screenだと、デタッチアタッチが出来るのがかなり大きいと思う

804:名無しさん@お腹いっぱい。
11/11/27 20:14:54.56
bindkey "^p" history-beginning-search-backward-end
bindkey "^n" history-beginning-search-forward-end
bindkey "\\ep" history-beginning-search-backward-end
bindkey "\\en" history-beginning-search-forward-end

これって↓↑キーと同じですか?
なら自分はいらないんですが

805:名無しさん@お腹いっぱい。
11/11/27 20:21:18.83
うちでは Ctrl-P/Nには up/down-line-or-history が割り当てられているな。


806:名無しさん@お腹いっぱい。
11/11/28 17:40:25.43
case ${UID} in
37 0)
38 PROMPT="%{${fg[cyan]}%}$(echo ${HOST%%.*} | tr '[a-z]' '[A-Z]') %B%{${fg[red]}%}% /#%{${reset_color}%}%b "
39 PROMPT2="%B%{${fg[red]}%}%_#%{${reset_color}%}%b "
40 SPROMPT="%B%{${fg[red]}%}%r is correct? [n,y,a,e]:%{${reset_color}%}%b "
41 ;;
42 *)
43 PROMPT="%{${fg[red]}%}%/%%%{${reset_color}%} "
44 PROMPT2="%{${fg[red]}%}%_%%%{${reset_color}%} "
45 SPROMPT="%{${fg[red]}%}%r is correct? [n,y,a,e]:%{${reset_color}%} "
46 [ -n "${REMOTEHOST}${SSH_CONNECTION}" ] &&
47 PROMPT="%{${fg[cyan]}%}$(echo ${HOST%%.*} | tr '[a-z]' '[A-Z]') ${PROMPT}"
48 ;;
49 esac


これの tr の定義がわかりません?
どっかにありますか?


807:名無しさん@お腹いっぱい。
11/11/28 17:42:34.33
URLリンク(en.wikipedia.org)

これ?

808:名無しさん@お腹いっぱい。
11/11/28 18:17:54.45
${HOST%%.*}

これっの%%.*って意味的には
%% %. %*

みたいなことでしょうか?

809:名無しさん@お腹いっぱい。
11/11/28 20:37:32.06
>>808

HOST の後の部分で
.* というシェルのパターンに合致する部分をできるだけたくさん捨てる。

HOST=www.google.co.jp なら .google.co.jp を捨てた www になる。

% が一つなら最小限捨てる。(.jpを捨てたwww.google.co)


810:名無しさん@お腹いっぱい。
11/11/28 22:42:29.40
>>805
>>809
どうも

811:名無しさん@お腹いっぱい。
11/12/08 23:47:37.72
4.3.14

812:アンネ
11/12/09 23:59:43.22
やぁ(笑)

813:名無しさん@お腹いっぱい。
11/12/11 16:39:36.98
zshで↓のようなプロンプトにしたいんだけどどうすればいい?めんどくさいから丸投げする。
PS1="\[\033[1;32m\][\u@\h \w]\[\033[0m\]\n\[\033[1;37m\]>> \[\033[0m\]"

教えてください。

814:名無しさん@お腹いっぱい。
11/12/11 19:19:24.11
autoload -U colors && colors
PS1="%{$fg_bold[green]%}[%n@%M %~]%{$reset_color%}
%{$fg_bold[white]%}>> %{$reset_color%}"

815:名無しさん@お腹いっぱい。
11/12/11 21:25:31.79
>>814
ありがとうございます!

816:名無しさん@お腹いっぱい。
11/12/26 23:20:55.64
fwd-searchして今の場所でOKのときにfwd-searchを抜けるのってどうやってますか?
Ctrl-F,Bで移動するとfwd-search解除されるのでそうやってますが、もっと良い方法ないかなと思って・・・
Enterしたらコマンド実行しちゃうし

817:名無しさん@お腹いっぱい。
11/12/27 00:36:11.96
>>816
C-eってやってる。

818:名無しさん@お腹いっぱい。
11/12/27 06:48:36.41
Type RET to exit, leaving point at location found.

819:816
11/12/28 01:19:08.43
>>817
C-eって行末移動ですよね?行末じゃなくてその場に留まりたいんですが

>>818
RETすると実行しちゃうんですけど・・・設定の違い?

820:名無しさん@お腹いっぱい。
11/12/28 08:10:40.33
すまんEmacsの話だと思ってた

821:名無しさん@お腹いっぱい。
11/12/28 11:17:17.49
>>816
ESC ESC ESC でカーソルがその場に残るよ。

822:816
11/12/29 11:16:03.68
>>821
ほんとですね。でも3連打はまんどいな・・・

823:名無しさん@お腹いっぱい。
11/12/29 14:50:12.84
isearch 中の話なら accept-search を適当なキーに割り当てておくとか
bindkey -M isearch '^[g' accept-search

824:名無しさん@お腹いっぱい。
11/12/29 15:29:20.63
>>821 ESC ESC で足りるけど… 最新だと違うんかな
search 専用の keymap がないからなあ… と思っていたら isearch なんて追加されてたのか
久しく進化を追ってない内に

825:名無しさん@お腹いっぱい。
11/12/29 15:39:02.48
>>822
Alt で ESC が入れば A-C-[ で 1 key だよ。これは 3 key というのか?同時押し key 数多くて勧めないけど。
ちなみに ESC ESC は undefined-key だから副作用がないだけで、
他の unbound key でも同じだよ。俺の環境だと "^[@" とか。

826:名無しさん@お腹いっぱい。
11/12/29 20:20:44.81
^[^|
@

827: 忍法帖【Lv=40,xxxPT】
12/01/14 10:44:12.89
sudo command
てすると、commandのaliasが展開されない
どすればsudoでもaliasコマンド使える?

828:名無しさん@お腹いっぱい。
12/01/14 12:10:30.76
global aliasでどうか?


829:名無しさん@お腹いっぱい。
12/01/14 16:53:03.33
alias sudo='sudo '
がよくある解

830: 忍法帖【Lv=40,xxxPT】
12/01/14 23:01:13.40
>>829
それ見つけたけどなんかうまくいかない
$@とか含むエイリアスはダメなのかな?

831:名無しさん@お腹いっぱい。
12/01/14 23:23:23.21
>>827
そのエイリアスってroot権限なくても展開できるのかな。

832:名無しさん@お腹いっぱい。
12/01/23 01:05:45.91
>>829
なにそのクールなトリック全然解らない、と思ったらそういう仕様があんのね。
見たのは↓の話で bash だけど。man zshall に該当記述が見付からない…
URLリンク(d.hatena.ne.jp)
この人の言っている偶然の抑止力って何のことだ?

>>830
alias 内での $@ は多分期待動作と違うと思うよ。普通に使えない。
あーでもそれは alias sudo 関係ないから違う話なのかな?
もしかして alias ではなく function が混ざってるのかも。

↓ でも同じことができると思うけど、これもダメ?
function が原因なら同じ話だけど。

# 1回まで展開する
sudo () { command sudo ${aliases[$1]:-$1} $*[2,$] }

>>831
root 関係ないような…

なんか試してたら
alias echo='echo[TAB]' # ([TAB] は "^[^I" is self-insert-unmeta で入れた tab)
の後に echo a とか実行すると履歴に echo[TAB]a が残ることを発見してしまった。
どーでもいいけどなんだコレ。
そしてこれもどーでもいいが history では [TAB] も \t (2文字) も \t と表示されて区別できない。

833:名無しさん@お腹いっぱい。
12/01/23 01:07:36.87
ちなみに展開1回までとかアホかという場合はこれで。

# 展開回数制限なし
sudo () {
  local cmdline arg
  local -A hist
  cmdline=($1)
  while (( ! ${+hist[$cmdline[1]]} && ${+aliases[$cmdline[1]]} ))
  do
    hist[$cmdline[1]]=
    cmdline=($aliases[$cmdline[1]])
    arg="$cmdline[2,$] $arg"
  done
  command sudo $cmdline[1] $arg $*[2,$]
}

834:名無しさん@お腹いっぱい。
12/01/24 00:22:12.80
RC_EXTENDED_PARAM って代入のときは効かないんですかね?
% num=(1 2 3)
% echo A${^num}B
A1B A2B A3B
% str=A${^num}B
% echo $str
A1 2 3B

こうすれば目的を果せますが…
% str=$(echo A${^num}B)
% echo $str
A1B A2B A3B

835:名無しさん@お腹いっぱい。
12/01/24 00:28:21.85
ちゃんと効くけど?
str=(A${num}B)

836:名無しさん@お腹いっぱい。
12/01/24 00:29:28.68
おっと ^ を入れ忘れた。 ${^num}ね。

837:名無しさん@お腹いっぱい。
12/01/24 01:08:51.91
>>835-836
なるほど、ちゃんと配列として代入せにゃならんのですね

838:名無しさん@お腹いっぱい。
12/01/31 11:30:31.32
zshでcat file_not_exist >/dev/null 2>&1 | w3mとやると、
catのエラーメッセージがw3mに渡されることに気付きました。
shのリダイレクションの解釈だとパイプには何も渡されないはずですけど、zshはどうしてこういう動作にしてるんですか?
何か理由があるんでしょうか。

839:名無しさん@お腹いっぱい。
12/01/31 14:32:40.13
>>838
unsetopt multios

840:名無しさん@お腹いっぱい。
12/02/01 07:31:41.94
>>839
じゃなくて、どうしてmultios状態をデフォにしてるのか、何か理由があるのかを聞いてるんだが。

841:名無しさん@お腹いっぱい。
12/02/01 08:02:56.24
>>840
command > file1 > file2
とやると両方のファイルに出力されるのがzshというかmultiosの特色だね
開発者の意図は知らんが、有効にすることでデメリットがあるわけでもないから有効になってるんじゃないかな

842:名無しさん@お腹いっぱい。
12/02/01 08:03:33.59
そりゃ作者が便利だと思って取り入れた機能はデフォにするだろ

843:名無しさん@お腹いっぱい。
12/02/01 08:07:08.37
であれば、
command > /dev/null | command
の場合は別にするべき。
大きなデメリットだな。

844:名無しさん@お腹いっぱい。
12/02/01 08:11:02.94
teeを使いたくなかった奴が作ったのにそりゃないな

845:名無しさん@お腹いっぱい。
12/02/01 08:14:01.25
>>842
作者が便利だと思っても互換性に問題がある機能はデフォではOFFにするのが鉄則。

846:名無しさん@お腹いっぱい。
12/02/01 08:32:47.47
はて、非互換ってどのシェルに対して。shとかだとほとんどデフォで使える機能なくなる気が

847:名無しさん@お腹いっぱい。
12/02/01 08:34:55.21
>>846
他のシェルに対する互換性じゃなくて、multios導入前のzsh自身に対する互換性ね。

848:名無しさん@お腹いっぱい。
12/02/01 10:11:56.10
そんなこといったら zsh v0.0.1 とかから何も進歩できないじゃん

849:名無しさん@お腹いっぱい。
12/02/01 10:25:05.49
>>845
作者にそう言えばいいじゃない。

850:名無しさん@お腹いっぱい。
12/02/01 10:56:27.96
>>845
>作者が便利だと思っても互換性に問題がある機能はデフォではOFFにするのが鉄則。
こういう鉄則始めてみたんだが、どこで言われてる奴?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch