zsh その4at UNIX
zsh その4 - 暇つぶし2ch499:名無しさん@お腹いっぱい。
06/08/07 22:11:10
GNUのtimeもきっと/usr/binあたりにあるでそ

500:名無しさん@お腹いっぱい。
06/08/09 12:34:49
ない

501:名無しさん@お腹いっぱい。
06/08/09 13:25:35
>>499
>>494 は GNU time の話ではない。

502:名無しさん@お腹いっぱい。
06/08/16 01:03:00
URLリンク(lists.debian.or.jp)
日本語特有の設定ってある?
ロケールと print_eight_bit くらいだとおもうんだけど

503:名無しさん@お腹いっぱい。
06/08/16 04:17:04
ヒドス
URLリンク(hiki.ex-machina.jp)

504:名無しさん@お腹いっぱい。
06/08/16 08:36:54
ワロタ

505:名無しさん@お腹いっぱい。
06/08/16 21:03:15
>>502
そいつは日本語特有の設定というより、
日本語で書かれた資料を切望しているように見えるんだが。

506:名無しさん@お腹いっぱい。
06/09/14 00:24:17
cygwin版4.3.2キター

507:名無しさん@お腹いっぱい。
06/09/16 02:36:00
まじでかぁあぁあ
でもいまcygwinいれらんね~

508:名無しさん@お腹いっぱい。
06/09/25 12:46:33
(bash 3.1.17)
$ bar=bar
$ echo ${bar/#/foo}
foobar
$ echo ${bar/%/foo}
barfoo

(zsh 4.3.2)
$ bar=bar
$ echo ${bar/#/foo}
foobar
$ echo ${bar/%/foo}
bar

どうして?バグ?

509:名無しさん@お腹いっぱい。
06/09/27 13:27:58
zsh スレの過疎ぶりにワラタ

# グローバルエイリアスを my-expand-abbrev 用の連想配列 に追加する
# 注意:現状ではうまく動いているようだが、おかしくなっても知らない
function abbrev-with-global-aliases() {
local globals="$(alias -g|tr '=' ' ')"
local backup="$(alias -L)"
unalias -m '*'
eval 'myabbrev+=( '$globals' )'
eval $backup
}
abbrev-with-global-aliases


510:名無しさん@お腹いっぱい。
06/09/29 09:02:55
これだけでよかった。死ね俺

# グローバルエイリアスを myaddrev に追加
myabbrev+=( ${==${(kv)galiases}} )

511:名無しさん@お腹いっぱい。
06/10/02 21:26:17
生きろよ

512:名無しさん@お腹いっぱい。
06/10/05 15:43:08
なにこの過疎スレ

513:名無しさん@お腹いっぱい。
06/10/08 21:39:06
zshイイと思うけどなあ
bash+bash-completionじゃボロボロで使いモノにならんよ
Fedora Core 6ではzsh-4.3.2また見送りか

514:名無しさん@お腹いっぱい。
06/10/08 22:09:14
今も昔もインストールすればいいだけ

515:名無しさん@お腹いっぱい。
06/10/09 02:17:27
bashの中途半端振りはいつもいやになるな
% command >& log
すらできないし
はよ駆逐されてくれ


516:名無しさん@お腹いっぱい。
06/10/09 02:35:46
>>515
zshが全部でデフォルトシェルにならない限り無理。

bashはbashでいいと思うけど。
zshと比較する気は無い。

517:名無しさん@お腹いっぱい。
06/10/14 02:02:32
command.com = ミゼット
ash = ムーブ
csh = キューブ
ksh = マーチ
cmd.exe = フィット
tcsh = シビック
bash = カローラ
zsh = ステップワゴン
powershell.exe = ボンドカー

518:名無しさん@お腹いっぱい。
06/10/14 10:31:09
zshはチューリング コンプリートですか?

519:名無しさん@お腹いっぱい。
06/10/14 12:33:04
scshの評価もキボンヌ

520:名無しさん@お腹いっぱい。
06/10/14 17:54:47
$(ls)などはexpand-or-completeで展開できますが
alias を展開することはできますか

521:名無しさん@お腹いっぱい。
06/10/14 18:10:29
which

522:名無しさん@お腹いっぱい。
06/10/14 19:54:00
global alias だとエラーメッセージにおきかえられてしまいます
global alias でも使える方法はありますか?

523:名無しさん@お腹いっぱい。
06/10/15 21:41:19
"^Xa" is _expand_alias

524:名無しさん@お腹いっぱい。
06/10/16 06:04:57
m(_________________________________)m

525:名無しさん@お腹いっぱい。
06/10/16 16:40:22
平謝り

526:名無しさん@お腹いっぱい。
06/10/24 16:35:29
bash = たろう
tcsh = はなこ
zsh = じろう

527:名無しさん@お腹いっぱい。
06/11/04 15:43:13
zstyle ':completion:*:default' menu select true
の ^F, ^B, ^N, ^P での移動が
bindkey '^P' history-beginning-search-backward-end
bindkey '^N' history-beginning-search-forward-end
これを設定してるせいで ^N, ^P が履歴検索になってしまいます。
補完候補の選択時は履歴検索にならないようにする方法はありますか?

528:名無しさん@お腹いっぱい。
06/11/06 04:32:14
>>527
なんか色々考えたけど、これが手っ取り早いかな。
bindkey -M menuselect '^P' up-line-or-history
bindkey -M menuselect '^N' down-line-or-history

ところで、マルチライン編集をする機会があるなら、
history-beginning-search-{backward,forward}-end よりも
{up,down}-line-or-beginning-search の方が便利だと思う。

529:527
06/11/08 17:36:25
>>528
ありがとうございます。
しかし、「no such keymap `menuselect'」と出て上手くいきません…。
ちょっとマニュアル読んで調べてみます。

530:527
06/11/08 18:19:03
zsh起動して
bindkey -M menuselect '^N' down-line-or-history
と、やると「no such keymap 'menuselect'」とエラーになってしまう。
だけど、いったん補完リストを出してからやると、ちゃんと設定できる。
何故だ…orz

531:527
06/11/08 18:52:26
解決しました。
zmodload zsh/complist で先に読み込まなきゃいけないんですね。
>>528
>{up,down}-line-or-beginning-search の方が便利だと思う。
こっちの方が良さそうです。ありがとうございました。

532:名無しさん@お腹いっぱい。
06/11/11 03:24:11
ちなみに俺はこうしてる

zmodload zsh/complist

bindkey -M menuselect "^V" forward-word
bindkey -M menuselect "^[<" beginning-of-history
bindkey -M menuselect "^[>" end-of-history
bindkey -M menuselect "^[v" backward-word
bindkey -M menuselect "^M" .accept-line

最後の行はなんで入れたか覚えてない

533:名無しさん@お腹いっぱい。
06/11/11 14:35:43
俺はこうしてる

zmodload zsh/complist

bindkey -M menuselect '^n' down-line-or-history
bindkey -M menuselect '^p' up-line-or-history
bindkey -M menuselect '^o' accept-and-infer-next-history


534:名無しさん@お腹いっぱい。
06/11/23 14:34:03
どんなコマンドを実行したときも自動的に標準出力のログ
をとってくれるような設定ってありませんか?

535:名無しさん@お腹いっぱい。
06/11/23 14:45:25
>>534
man 1 script
man 1 tee

536:名無しさん@お腹いっぱい。
06/11/23 14:46:52
>>534
script?


537:名無しさん@お腹いっぱい。
06/11/23 14:59:13
makeした後とかで「teeしとけばよかった」と思うことがあるので、
どんなコマンドうったときも自動的にteeしてくれるようなものが
あるといいと思ったのですが、viとかを考えるとけっこう難しいですね。
scriptは常用するにはちょっとうざいです。

538:名無しさん@お腹いっぱい。
06/11/23 15:05:35
>>537
kterm -sl 10000 とか???
スクロール保存行を多くとっておけばいいじゃん。

どーでもいいけど、質問は zshとどう関係あるんだよ??

539:名無しさん@お腹いっぱい。
06/11/23 15:26:25
だから、loginしたときに自動でteeでもscriptでも走らせればいいじゃんって
ことじゃないの?

540:名無しさん@お腹いっぱい。
06/11/23 15:30:19
teeだと viが使えなくなる。
scriptだと大げさ。知らずに使ってると巨大なファイルができるかも。

よって、今のところ kterm -sl 10000 が最適解か?

541:名無しさん@お腹いっぱい。
06/11/23 15:38:38
screen 使っとけば?

# xscript (だっけ?) 思い出した。


542:名無しさん@お腹いっぱい。
06/11/24 04:26:30
補完機能がすごいらしいしcsh系のへんなとこがないらしいので最近 chsh した初心者です。
まだ分からないことだらけですが、これからお世話になります。
こんな環境です。
FreeBSD 5.4-RELEASE-p6, X Window System Version 6.9.0, kterm: version 6.2.0.ext02

早速質問です。

mplayer についての記述が以下にありました。
/usr/local/share/zsh/4.3.2/functions/Completion/X/_mplayer
ここにmfilesの候補として*.flvがないため、入れたいのですが、
どこ(どのファイル)にどう記述するのが正しい方法ですか。

latex だと *.tex が補完の候補にあがりますが platex については記述がないみたいです。
そこで locate zsh |grep -i latex してみたところ、結果が空でした。
latex と同じものを補完してくれればいいのですが、どうすべきですか。

似た問題がいくつかあります。初歩的な質問ですがどうぞよろしく。

543:名無しさん@お腹いっぱい。
06/11/24 04:48:30
>>542
/usr/local/share/zsh/4.3.2/functions/Completion/X/_mplayer

- "*.(#i)(avi|mp3|mpg|mpe|mpeg|m1v|m2p|m2v|mov|asf|vob|mjpg|wma|wmv|asx|qt|rm|mkv|mka|ogm|ogg|wav)(-.)" && ret=0
+ "*.(#i)(avi|mp3|mpg|mpe|mpeg|m1v|m2p|m2v|mov|asf|vob|mjpg|wma|wmv|asx|qt|rm|mkv|mka|ogm|ogg|wav|flv)(-.)" && ret=0
試してないけどこんな感じ?

/usr/local/share/zsh/4.3.2/functions/Completion/Unix/_tex

#compdef tex latex slitex pdflatex jadetex pdfjadetex platex
とか書いてない?


544:名無しさん@お腹いっぱい。
06/11/24 05:44:47
>>543

早速有難うございました!

二つともうまくゆきました。

ホームディレクトリに何か作ることを想像しましたが、
/usr/local/share/zsh/4.3.2/ 以下のファイルをを直接直してもいいのですね。
デスクトップ使用なので個人的には問題ありません。
ただ zsh のバージョンアップの際に注意しないといけないですね。

バージョンアップに左右されない書き方や、管理者でない場合のことも知りたいです。

ディレクトリ名を打つと cd するのがデジャビュ的になつかしいです。
MS-DOS 用のソフトで見たのか、記憶はさだかでありませんが、なつかしいです。


545:名無しさん@お腹いっぱい。
06/11/24 07:23:27
zshはいい加減正式版をリリースしてくれないと泣いちゃうよ?

546:名無しさん@お腹いっぱい。
06/11/24 13:06:39
>> 544
platexに関しては
% compdef _tex platex
で_texの補完ルールをplatexに適用できる

547:名無しさん@お腹いっぱい。
06/11/24 15:42:55
>>544
>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\)'
> ==ここまで=========================================================
> オプションはたいぎいので書いてません。
私もこういう設定は~/以下に置きたいので、上のを試してみたんですけど、tabを押すと
_main_complete:1: _main_complete: function definition file not found
というエラーが出て補完が効かないです。

548:名無しさん@お腹いっぱい。
06/11/24 19:57:20
みなさんのお蔭でだいぶ見えてきました。伏して謝します。
以下御報告。

>>546
おお、これはいろんな場面で役に立ちますね!
% compdef _dvi dvipdfmx
あと、うしろにargumentたくさん取れるみたいですね。
% compdef _tex platex jbibtex

>>547
大きなヒントになりました。ほとんどそのままですが以下の方法でできました。
% mkdir ~/.zfunc
% cd ~/.zfunc
% cp /usr/local/share/zsh/4.3.2/functions/Completion/X/_mplayer ./

ファイルを編集して .zshrc に次の行を追加。
fpath=(~/.zfunc $fpath)

引用に「PATH と同じように書けばOK」とありますが、以下ではNGでお書きのエラーが出ました。
fpath="$fpath:~/.zfunc"
fpath="$fpath;~/.zfunc"

549:547
06/11/24 22:00:53
>>548
fpath="~/.zfunc "$fpath
はだめで(自分はこうやってて、だめだった)
fpath=(~/.zfunc $fpath)
だとうまくいくんですね。
なんでだろう?

550:名無しさん@お腹いっぱい。
06/11/24 23:14:58
()は配列。前者は文字列にセットしちゃうからだめ。

FPATH="~/.zshfunc:$FPATH"
でもよい。

551:547
06/11/25 00:10:24
>>550
お答えありがとうございます。
すっきりしました。

552:名無しさん@お腹いっぱい。
06/12/15 13:37:16
zshのデフォルトのプロンプトにcsh/tcshと同じ % が使われてるのはどうして?

553:名無しさん@お腹いっぱい。
06/12/15 18:47:06
普通 % だから

554:名無しさん@お腹いっぱい。
06/12/15 19:37:26
>>552
csh/tcshからの移行組に対するリハビリモードだから。
社会復帰できたらちゃんと PS1='$ ' に設定するのが望ましい。

555:名無しさん@お腹いっぱい。
06/12/16 05:32:14
wiki消えるぞ~
URLリンク(hiki.ex-machina.jp)
>重要 勝手ながら、都合により本サービスを停止することに致しました。停止予定日は2007年1月10日を予定しております。
>予定日までに URLリンク(wiki.fdiary.net) など他のHikiFarm?への移動をお願いいたします。(2006.12.7)

556:名無しさん@お腹いっぱい。
06/12/17 21:56:04
cygwinでzshを使い始めた若輩者です
解説サイトを見てますと起動時に ~/ 以下の
.zshrc .zshenv .zshprofile .zlogin が読み込まれることが前提のようなのですが
自分の環境ですと .zshrc しか読み込みません
他の3つの設定を読み込むにはどこに設定すればいいのでしょうか?

557:名無しさん@お腹いっぱい。
06/12/17 23:19:24
/etc/zshenv 常に(-fの時も)
~/.zshenv 常に
/etc/zprofile -l(loginシェル)の時
~/.zprofile -l(loginシェル)の時
/etc/zshrc 対話モードの時
~/.zshrc 対話モードの時
/etc/zlogin -l(loginシェル)の時
~/.zlogin -l(loginシェル)の時

558:名無しさん@お腹いっぱい。
06/12/18 11:33:40
/root が 700 で下のように zsh で先に * が
展開されちゃうのはどう回避したらいい?

$ sudo ls -l /root/*
zsh: no matches found: /root/*


559:名無しさん@お腹いっぱい。
06/12/18 12:36:56
shell について勉強し直すのが先でそ

560:名無しさん@お腹いっぱい。
06/12/18 15:15:53
>>557
ありがとうございます。
おかげで全部のファイルの読み込みが出来ました。
zshenvが読み込まれてないと思ったのは
ファイルの最初に書いてる echo をコメントアウトしてしまっていました。

561:名無しさん@お腹いっぱい。
06/12/20 01:29:26
>>555
消えるんだ。。。もったいない。

ここいったいどんな管理になっているのだろう
連絡先とか管理者とか何も書いてない。
勝手に、コピーして違うページに公開するわけにはいけないし。。。


>URLリンク(wiki.fdiary.net) など他のHikiFarm?への移動をお願いいたします。
って、ことは、勝手に移してよい?
それとも、サーバ管理者が、wiki管理者に移動を依頼しているのかよくわからね。。。

562:名無しさん@お腹いっぱい。
06/12/20 01:32:58
>>561
移していいんじゃない?

563:名無しさん@お腹いっぱい。
06/12/20 11:50:29
>>561
頼む。
とりあえずやっておいて、もし重複したりしたら後で消せばいいんじゃないの?

564:名無しさん@お腹いっぱい。
06/12/21 17:15:13
ライセンスはどうなってるのよ。
勝手にコピー公開していいのか?

565:名無しさん@お腹いっぱい。
06/12/23 15:18:05
>>564
それが、問題だな。。。

566:名無しさん@お腹いっぱい。
06/12/23 20:50:50
書いた人のライセンス? サービス側のライセンス?
一部書いた人間としてはコピーしておくれって感じだが。

567:名無しさん@お腹いっぱい。
06/12/24 02:09:41
まずは移転先を確保。
次に自分が書いた箇所を移転先にコピー。
残りは破棄。

これで問題なかろう。

568:名無しさん@お腹いっぱい。
06/12/24 09:53:30
別に特定のライセンスとか明記していない
いわば「便所の落書き」を
よそに移したって問題なかろう

569:名無しさん@お腹いっぱい。
06/12/24 11:11:28
阿呆か

570:名無しさん@お腹いっぱい。
06/12/25 03:01:44
厳密には、便所の落書きでも2chの書き込みでも、書いた人に著作権とかの権利がある。
きっとコピーするには、編集した人全員に許可をもらう必要があると思うけど、、、
でも、そこまで厳密にする必要も無いと思うからWikiを創めた人(Wiki管理者)が、
許可したら移して良いと思う。

というわけで、誰かWiki管理者のふりをしてwiki書き換えといてくれ。。。と冗談を言ってみる。

571:名無しさん@お腹いっぱい。
06/12/27 22:02:07
ライセンスが確定していなかった以上、別のWikiへの転載は禁止。
もったいないが、仕方がない。

てことでFA?

572:名無しさん@お腹いっぱい。
06/12/27 23:01:47
阿呆か

573:名無しさん@お腹いっぱい。
06/12/27 23:21:10
新しいwikiにコピーさせてもらって、
ライセンスのことは注意書きとして書いておけばいい。

574:名無しさん@お腹いっぱい。
06/12/28 04:32:09
くだらねえな
・このスレのまとめを新たに作る
・Wiki移転
やってることの本質は変わらんだろ。
著作権法を軽んずる気はないが、意味のおかしい会話になっている。

575:名無しさん@お腹いっぱい。
06/12/28 07:35:59
素直に著作権法は無視といえばいいのに。

576:名無しさん@お腹いっぱい。
06/12/28 11:40:56
新たにまとめたら同じになった!

同じ元ネタを同じようにまとめたんだから当然だよな!

577:名無しさん@お腹いっぱい。
06/12/28 11:53:17
あるあるw

578:名無しさん@お腹いっぱい。
06/12/28 11:53:51
再実装ってやつだな

579:名無しさん@お腹いっぱい。
06/12/28 12:00:10
たまたまならしょうがないよな

580:名無しさん@お腹いっぱい。
06/12/29 13:17:24
bindkey で割り当て可能なコマンドの一覧てどこにあるんでしょうか
コマンドラインスタックをESC-q から Ctrl-q に変えたくて探してます

581:名無しさん@お腹いっぱい。
06/12/29 14:20:18
stty を調べろ、に一票

582:名無しさん@お腹いっぱい。
06/12/29 16:43:18
使い方を間違ってるのか stty -a だと以下の項目しかでませんでした…。
intr, quit, erase, kill, eof, eol, eol2, swtch, start, stop, susp, rprnt, werase, lnext, flush

backward-kill-lineなど他の項目はどう見つければいいんでしょうか

583:名無しさん@お腹いっぱい。
06/12/29 17:04:08
>>581 は「知ったか」に1票。

zshの bindkeyの話なので、stty(低レベルの端末設定)とは関係ない。

584:名無しさん@お腹いっぱい。
06/12/29 17:09:19
探してるのはこういうのか?
URLリンク(zsh.sourceforge.net)

これはちょっと古いけど、普通にインストールしてるなら
ローカルにも同じようなのがあるでそ。

585:名無しさん@お腹いっぱい。
06/12/29 19:08:30
>>583
ありがとです
>>584
そうです。ありがとうございます
コマンドラインスタックは push-line なんですね
ずっと buffer stack で探してました…。

586:名無しさん@お腹いっぱい。
06/12/30 00:30:21
>>585
Esc-q にbindされている関数の名前だけ分かればいいなら
bindkey |grep q
すりゃわかると思う。
一覧ではないから>>580の答えではないが。

>>581はC-qがsttyで割り当てられてるって話でそ。
C-s/C-qなんて今更使わんが。

587:名無しさん@お腹いっぱい。
06/12/30 01:41:47
stty で奪われてたら zsh で扱いたくても扱えないでそ

> C-s/C-qなんて今更使わんが。

「使わない」には同意だけど大抵設定はされてるでしょ

588:名無しさん@お腹いっぱい。
06/12/30 11:53:03
>>586
普通 M-x describe-key-briefly でそ?

589:名無しさん@お腹いっぱい。
07/01/05 01:43:53
HIST_SAVE_NO_DUPS と HIST_IGNORE_ALL_DUPS ってどう違うんですか?
zsh のマニュアルによると

HIST_SAVE_NO_DUPS
When writing out the history file, older commands that duplicate
newer ones are omitted.

HIST_IGNORE_ALL_DUPS
If a new command line being added to the history list duplicates
an older one, the older command is removed from the list (even
if it is not the previous event).

こういう違いがあるようなんですが、よくわかりません。


590:名無しさん@お腹いっぱい。
07/01/05 04:50:28
重複削除をどの時点で行うかが違う。

よくわかりませんで思考停止するんじゃなくてもうちょっと考えてみなよ。

・どこまでわかっていて、よくわからないのはどの部分なのか、
・わからないところはどのような可能性が考えられるか、
・それらの可能性が本当かを確かめるにはどうすればいいか、

を自分で考えるようにすればもう少し読解力が高まると思われ。

591:名無しさん@お腹いっぱい。
07/01/05 07:16:54
書き込みのあとそれぞれ設定して調べたところ、
前者はシェルを抜けた段階でヒストリファイルの重複を削除するのに対して
後者は即時にメモリ内?のヒストリ重複を削除してるっぽいことがわかりました。
いずれもシェルを抜けた段階でファイルの重複は消されるようなので
設定は片方だけでよさそうですが、
share_history などの設定もいろいろ影響してそうなので
それ以上はつきつめて調べてません。
590 さん、助言どうもありがとうございました。

592:名無しさん@お腹いっぱい。
07/01/05 08:43:16
手元の .zshrc だと

setopt hist_ignore_dups # 前後のダブりのみ消す
setopt hist_ignore_all_dups # ヒストリに追加されるコマンド行が古いものと同じなら古いものを削除

と両方書いてあるな。
説明はmanualのまんまだ。


593:名無しさん@お腹いっぱい。
07/01/05 16:40:36
wiki移転完了(たぶん)
URLリンク(wiki.fdiary.net)

XML-RPCでガーーーッと移動してちょこっといじっただけ。
変なとこあったら修正よろしく。


594:名無しさん@お腹いっぱい。
07/01/06 18:38:01
>>593
おつかれ、サンクス

595:名無しさん@お腹いっぱい。
07/01/18 20:02:39
同僚に薦められてzshに移行したばかりのものです。

いきなり質問で恐縮ですが、

コマンドラインで、第二引数だけをヒストリから補完とか可能でしょうか?
可能でしたら方法をお教えください。

具体的には、あるコマンドを(第二引数の)ファイルに実行した後で、
別のコマンドをそのファイルに実行したい時に、簡単な操作で
第二引数を呼び出したいのです。

596:名無しさん@お腹いっぱい。
07/01/18 21:10:44
M-. (insert-last-word) かな?

597:595
07/01/18 21:17:18
>>596
おお、ありがとうございました。
できましたw

zshの強烈な補完に感動してます。

ありがとうございました。

598:名無しさん@お腹いっぱい。
07/01/23 06:52:27
predict-on, predict-off を同じキーに配置して
オンならオフ、オフならオンに変更するために predictの状態を知りたいんですが
どうやったら調べられるんでしょうか?

599:名無しさん@お腹いっぱい。
07/01/24 04:17:04
状態を示す変数でも作ればいいじゃないの

600:名無しさん@お腹いっぱい。
07/01/24 05:38:07
>>599
ああ、そうかなるほど。
助かりましたありがとうございます
アホなりになんとかできました

601:名無しさん@お腹いっぱい。
07/01/30 04:58:45
このスレもぼちぼち立ってから2年か。読み返しみると結構レス書いてるな。
実は少人数で廻してるのか。

602:名無しさん@お腹いっぱい。
07/02/06 17:24:08
for i in param1 param2 ...
do
いろんな仕事を param 毎に
done
ってやりますけど,各ループ実行に 2個づつ,3個づつみたいな
パラメータの渡し方って可能でしょうか?

python でいうところの
for i,j in ( (x1,y1), (x2,y2), ...)
とすると $i, $j でそれぞれ x1, y1 が参照できるみたいな
ことなんですが。

603:名無しさん@お腹いっぱい。
07/02/06 19:23:28
関数の中で
while [ $# -gt 0 ]
do i=$1;shift;j=$1;shift
...
done
とかやればいいんじゃないの?

604:名無しさん@お腹いっぱい。
07/02/06 19:42:32
for i j in param1 param2 ...

605:602
07/02/07 02:05:24
>603
なるほど~ とおもったところで
>604 ってナンだろう? と目を擦って…

ガーン!!! そんなのアリだったのか~

info zsh したら確かにそう書いてある!!

for NAME ... [ in WORD ... ] TERM do LIST done
.snip.
More than one parameter NAME can appear before the list of WORDs.

ありがとうございます

606:名無しさん@お腹いっぱい。
07/02/09 09:38:07
MYCOM コラム『漢のzsh』
URLリンク(journal.mycom.co.jp)
こんなん始まったね。

607:名無しさん@お腹いっぱい。
07/02/09 11:06:01
>>606
お、これ面白いね。早速ブクマクした
てゆーか数年zsh使ってたが、"ls -"の後の補完でオプション出るの知らんかった・・・アホだな俺。。

608:名無しさん@お腹いっぱい。
07/02/09 12:40:10
これだけだと面白くなるかどうかまだわからんw
WEB上だけの連載なのかな。

UNIX USER の連載は書籍化もされず、WEB で公開されることもなく
埋もれていくのか。本誌は休刊しちゃったし。

609:名無しさん@お腹いっぱい。
07/02/09 12:59:28
zshマスターだけちぎってUNIXUSER全部捨てた

610:名無しさん@お腹いっぱい。
07/02/09 13:00:39
ん? だからPDF版買えって話じゃないの?

611:名無しさん@お腹いっぱい。
07/02/09 13:54:16
>>610
あれ、そんなの売ってたっけ?


612:名無しさん@お腹いっぱい。
07/02/09 15:08:15
>>606
スレリンク(linux板:351番)
この後にこんな記事ができるってのは、2chみてんのかね。


613:名無しさん@お腹いっぱい。
07/02/09 15:34:33
その程度の基本的な機能の紹介で2chと結びつけるのは酷だなw

614:名無しさん@お腹いっぱい。
07/02/09 15:36:41
>>612
compinitは設定じゃねーよ。
常識だ。

というわけで、>>606には一応期待しておくが、まだ評価はできん。

615:名無しさん@お腹いっぱい。
07/02/09 16:02:12
>>612の351も>>606-607も本人と決め打つのが2ちゃんだろw

616:名無しさん@お腹いっぱい。
07/02/09 20:21:31
ぜんぶ俺だから

617:名無しさん@お腹いっぱい。
07/02/09 21:22:33
UUの連載も内容的にはけっこう古くなっているから、今更書籍化ってのも難しいんじゃないのかな。

今回のは常識だけど、まぁまだ第1回だから今後に期待だな


618:名無しさん@お腹いっぱい。
07/02/11 15:24:29
MYCOM記事読んできますた

619:名無しさん@お腹いっぱい。
07/02/11 17:14:19
誰かzshrc晒せ

620:名無しさん@お腹いっぱい。
07/02/11 18:10:44
前にキチガイモーオタが晒してたなw

621:名無しさん@お腹いっぱい。
07/02/11 19:22:49
perl -e "print 100"; とすると 100% と表示されます、% は色反転してます
この % を出したくないんですけど、どうすればいいですか

622:621
07/02/11 19:38:35
事故解決

623:名無しさん@お腹いっぱい。
07/02/11 19:40:34
>>622
解決方法くらい書きたまえキミぃ。

624:621
07/02/11 19:43:17
\n を自動で補ってくれてただけなわけで
こんな機能があったとは

625:名無しさん@お腹いっぱい。
07/02/16 12:59:46
MYCOMのzsh連載、早速第2回が掲載されているね。
今度はプロンプトのカスタマイズ。

626:名無しさん@お腹いっぱい。
07/02/16 13:22:22
PROMPT="%B%{^[[31m%}%/#%{^[[m%}%b " # ただし ^[ は エスケープシーケンス
よりは
PROMPT=$'%B%{\e[31m%}%/#%{\e[m%}%b '
とか
autoload -U colors; colors
PROMPT="%B%{$fg[red]%}%/#%{$reset_color%}%b "
とかのほうがよさそうなもんだが

627:名無しさん@お腹いっぱい。
07/02/16 13:37:22
> エスケープを直接設定ファイルに記述することを嫌って、
> echoやprintfコマンドを使う場合もある。好きな方を選べばいい。
> ただ、コマンドだとプラットフォームごとに動いたり動かなかったりするので、
> ここでは直接書いて使っている
echo も print も printf も組み込みコマンドですがなにか

628:626
07/02/16 13:39:46
誤)エスケープシーケンス
正)エスケープ
orz

629:名無しさん@お腹いっぱい。
07/02/16 14:25:01
設定ファイルとかプロンプトとかどうでもいいからさっさと補完の事教えてくれよう

630:名無しさん@お腹いっぱい。
07/02/16 21:36:58
あんまり期待できないな

631:名無しさん@お腹いっぱい。
07/02/17 09:15:00
この程度の事はだれもが通る道だよな
それで記事が書けるなんて

632:名無しさん@お腹いっぱい。
07/02/17 10:59:40
紹介記事(スレ住人的には既に通ってきた内容)と
使いこなし記事(スレ住人も新たな発見がある内容)
は違うよなぁ……


633:名無しさん@お腹いっぱい。
07/02/17 12:02:36
このコラムはどういう層を対象にしてるんだろうか

634:名無しさん@お腹いっぱい。
07/02/17 12:09:58
第1回の出だしに、こんなの書いてある
> ここ1年でzshへ移行しやすい状況が整ってきている。
> はじめるには悪くないタイミングだ。

これからzshを始める人向けだろう

635:名無しさん@お腹いっぱい。
07/02/17 12:34:49
いや、それはわかってるけど…

636:名無しさん@お腹いっぱい。
07/02/17 13:14:31
大地の記事がそんなにいいわけないだろ。
冷静になれ。

637:名無しさん@お腹いっぱい。
07/02/17 18:20:30
むしろこのスレの住人がうなるようなコアな内容を出してきたらウケル。

638:名無しさん@お腹いっぱい。
07/02/17 19:02:04
>>637
ありえない。

もうUNIXUSERの記事の焼き直しでいいよ。

639:名無しさん@お腹いっぱい。
07/02/17 19:06:28
妙な記事書かれるより安心だなw

640:名無しさん@お腹いっぱい。
07/02/17 19:17:27
zshに限らず最近シェル使わなくなってきた

641:名無しさん@お腹いっぱい。
07/02/17 19:54:57
compctlの解説だけで終わったりして

642:名無しさん@お腹いっぱい。
07/02/17 20:03:17
シェル使わないってなんだ。ログインすらしてないってことか。

643:名無しさん@お腹いっぱい。
07/02/17 21:14:52
正直にいって細かく設定しても使わないよね
zshrcは千行あるけど

644:名無しさん@お腹いっぱい。
07/02/17 23:16:31
>>641
compsysは無しかよw

645:名無しさん@お腹いっぱい。
07/02/18 02:04:24
その1000行のzshrcを見せてもらおうか

646:名無しさん@お腹いっぱい。
07/02/18 20:08:40
一行一レスでいいから

647:名無しさん@お腹いっぱい。
07/02/24 10:43:48
htmlで終わるファイルが存在すれば"Exist"と表示させたいとして、
zsh で、
if [ -e *html ];then echo "Exist";fi
とすると、
zsh: no matches found: *url
となってしまいます。
shでは期待どおりの動作をします。
zshで期待のどおりの動作をするにはどうすればよいでしょうか?


648:名無しさん@お腹いっぱい。
07/02/24 11:22:11
setopt NULL_GLOB


649:647
07/02/24 11:56:49
ありがとうございました。
こうすると、上の問題は解決しましたが、htmlで終わるファイル名を表示しようとして
ls *html
とすると、ディレクトリにhoge.htmlがあっても
ls: *html: そのようなファイルやディレクトリはありません
と出ようになりました。
この問題を解決避けるには、
いちいち、setopt NULL_GLOB, setopt GLOB
をしなければならないのでしょうか?

650:647
07/02/24 12:09:56
if noglob [ -e *html ];then echo "Exist";fi
としてもいいみたいですね。

651:名無しさん@お腹いっぱい。
07/02/24 12:41:46
echo {1..3}

1 2 3
となります。
echo {a..c}
では
{a..c}
です。
これを
a b c
とするように出来ないでしょうか?

652:名無しさん@お腹いっぱい。
07/02/24 12:50:38
出来ない

653:名無しさん@お腹いっぱい。
07/02/24 12:51:43
bashならできる

654:名無しさん@お腹いっぱい。
07/02/24 13:24:36
>>651
setopt brace_ccl
echo {a-z}

655:名無しさん@お腹いっぱい。
07/02/24 13:33:21
{a..c}を、という質問なわけだが、、

656:651
07/02/24 13:55:06
>>652-655
ありがとうございます。
{a..c}
ではできない、やりたかったら、
>>654
のようにしろ、ってことですね。
ありがとうございました。


657:名無しさん@お腹いっぱい。
07/02/24 20:36:40
mycomの連載、3回目は履歴に関して

658:名無しさん@お腹いっぱい。
07/02/24 22:04:30
>647
noglob と nullglob を混同してない?

noglob は glob しなくするオプション(globの否定)だけど、
null_glob はそれとは違うよ。
オレの環境では null_glob をセットしてもそんなエラーにはならないんだけど。


659:名無しさん@お腹いっぱい。
07/02/24 22:15:22
unsetopt nomatch してるんじゃ?

660:名無しさん@お腹いっぱい。
07/02/24 23:08:41
まあ *.html(N) でいい

661:名無しさん@お腹いっぱい。
07/02/24 23:32:56
mycomの今回のはあまり参考にはならんかった。zsh初心者向けぽいな。

ちなみに俺は履歴関連はこんだけオプション有効にしてる。
man zshoptions 読むだけでもマンドクセ状態だが・・・

setopt extended_history
setopt hist_expire_dups_first
setopt hist_ignore_all_dups
setopt hist_ignore_dups
setopt hist_ignore_space
setopt hist_reduce_blanks
setopt hist_save_no_dups
setopt hist_verify
setopt inc_append_history
setopt share_history
setopt csh_junkie_history


662:名無しさん@お腹いっぱい。
07/02/25 00:08:02
漢漢と五月蝿い記事だなあ。

663:名無しさん@お腹いっぱい。
07/02/25 09:20:45
誰か $path から存在しないディレクトリを削除するコードを書いてくれ

664:名無しさん@お腹いっぱい。
07/02/25 10:22:44
手元の .zshenv より

addpath () {[[ -d $1 ]] && path=($path $1)}
# add $* to top of PATH list.
addpathlist() {
tmppath=
for newpath in $*
if [ -d $newpath ]; then
tmppath=($tmppath $newpath)
fi
path=($tmppath $path)
unset tmppath
}

addpathlist ~/bin /usr/local/bin /usr/local/gnu /usr/X11R6/bin /usr/local/X11R6/bin /usr/local/X11R5/bin
addpath /usr/local/gcc/bin
addpath /usr/ucb
...

665:647
07/02/25 12:49:04
>>658

すみません。ウソ言ってました。

>こうすると、上の問題は解決しましたが、htmlで終わるファイル名を表示しようとして
>ls *html
>とすると、ディレクトリにhoge.htmlがあっても
>ls: *html: そのようなファイルやディレクトリはありません
>と出ようになりました。

は間違いでした。正しくは、
(setopt NULL_GLOB とすると)
*htmlにマッチするものが無い場合、
カレントディレクトリ以下のファイル、ディレクトリが全て表示される、
です。
そして、NULL_GLOBはglobにマッチするものがなかったら何も渡さない、
ということでNO_GLOBはglobしない、という違いも理解しました。
だから、当前、setopt NULL_GLOB をして*htmlにマッチするものが無かった場合は
上のような動作をするのですね。
私が初めに書いたエラーがでるのは、setopt NO_GLOBとした場合ですね。


>>659
さんのようなオプションをつけていたわけではなく、単に私の間違いでした。

>>660
さんのおっしゃるように、
if [ -e *html(N) ];then echo "Exist";fi
でもOKでした。


666:名無しさん@お腹いっぱい。
07/02/25 14:39:20
試さずにかいたが、-e *html(N) って常に真を返さないか

667:647
07/02/25 15:37:36
>>666
そうですね汗
またまたいいかげんなこと言ってしまいました。
if [ -e *html(N) ];then echo "Exist";fi
はつねにExistとでます。

>>647で書いたことをやりたい場合には、

1)
setopt NULL_GLOB
if [ -e *html ];then echo "Exist";fi
(この場合はls *htmlで*htmlがなかったらlsと同じになってしまうので)
そのあとで
setopt GLOB

2)
または、
if noglob [ -e *html ];then echo "Exist";fi

が正しいようです。


668:名無しさん@お腹いっぱい。
07/02/25 16:29:49
1) は setopt NO_GLOB では。
NULL_GLOB だと多分 *html(N) と変わらないよ。
あと、特に [ に拘らなければ
[[ -e *html ]] でもいいかな。

669:名無しさん@お腹いっぱい。
07/02/25 17:29:32
$ touch test.html
$ [ -e test.html ] && echo found || echo not found
found
$ [ -e *.html ] && echo found || echo not found
found
$ [[ -e test.html ]] && echo found || echo not found
found
$ [[ -e *.html ]] && echo found || echo not found
not found
$ touch '*.html'
$ [[ -e *.html ]] && echo found || echo not found
found

670:名無しさん@お腹いっぱい。
07/02/25 17:39:18
[[ ]] はグロブを展開しないぽい
[ はコマンド扱い? (これも builtin だよね)

671:名無しさん@お腹いっぱい。
07/02/25 17:55:15
>>647
htmlで終わるファイルが存在すれば"Exist"と表示させたい(ただしzsh: no matches foundは嫌)は、

unsetopt nomatch するのが一番だろ。
その後は [ -e *html ] でも [ -n `echo *html` ] でもおk ( [[ -e *html ]] はだめぽい )

もしnomatchが嫌なら
[ -e *html(N) '' ] && echo Exist
{ [ -e *html ] && echo Exist } 2>/dev/null
みたいなw

672:名無しさん@お腹いっぱい。
07/02/25 17:59:40
案外、簡単に処理できないもんだな。気付かずに罠にはまりそう。
昔ながらのやり方が安全かw
if ls | egrep '\.html$' >/dev/null; then echo Exists; fi

673:名無しさん@お腹いっぱい。
07/02/25 18:13:15
glob関連はNOMATCH, NULL_GLOB, CSH_NULL_GLOB とオプションがあってよくわからん。

参考:
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)
URLリンク(www.ayu.ics.keio.ac.jp) (man zshoptions)

674:名無しさん@お腹いっぱい。
07/02/25 18:33:09
nomatchは途中で処理が止まるから厄介
$ echo *UNKO; echo AAAAAAAAAAAAAAAAAAAAAAAA
zsh: no matches found: *UNKO
$

675:名無しさん@お腹いっぱい。
07/02/26 07:55:40
>>669
> $ [ -e *.html ] && echo found || echo not found

↑は .html ファイルが2つ以上ある場合は動かない.

[ -e `ls -1 *.html|head -n 1` ] && echo found || echo not found
だとちゃんと動くが、もっとスマートなやり方はないものか...


676:名無しさん@お腹いっぱい。
07/02/26 07:59:19
>>675 の訂正.
> $ [ -e *.html ] && echo found || echo not found
は zsh では動くね. bash では動かないけど.
でも混乱を避ける為に、↑のように書くのは良くないだろう

677:名無しさん@お腹いっぱい。
07/02/26 08:34:32
サブシェル使ってよければ
(for f in *.html; do [ -f "$f" ] && return 0; done; return 1) && echo aru || echo nai
/bin/shで動く筈。

678:名無しさん@お腹いっぱい。
07/02/26 11:03:52
もう外部コマンド使って
ls *.html | wc | awk '{print $1}'
でいいじゃん

679:名無しさん@お腹いっぱい。
07/02/26 11:18:07
アホ現る

680:名無しさん@お腹いっぱい。
07/02/26 21:05:11
[ `echo -n *.html(N) | wc -l` -gt 0 ]


681:名無しさん@お腹いっぱい。
07/02/26 21:26:59
[[ -n `echo *html(N)` ]] && echo Exist || echo # うまくいく
[[ -n `echo` ]] && echo true || echo false # false

[ -n `echo *html(N)` ] && echo Exist || echo # 常にExist, だめ
[ -n `echo` ] && echo true || echo false # true

682:名無しさん@お腹いっぱい。
07/02/27 02:46:16
[[ls *.html && $? ]] じゃ駄目なわけ?

683:名無しさん@お腹いっぱい。
07/02/27 02:47:37
``わすれた・・・

684:名無しさん@お腹いっぱい。
07/02/27 02:48:42
しかも-aだね。逝ってきます。

685:名無しさん@お腹いっぱい。
07/03/02 22:11:55
mycomの連載、更新されていたけどツッコミどころが幾つかあるな

686:名無しさん@お腹いっぱい。
07/03/03 01:23:44
よしつっこめ。

687:名無しさん@お腹いっぱい。
07/03/03 03:11:14
ショートカットキーという言い方は気持が悪いな

688:名無しさん@お腹いっぱい。
07/03/05 01:38:58
最近はてブのホットエントリでzsh関連のをちょくちょく見掛けるけどなんかあったのかしら。

689:名無しさん@お腹いっぱい。
07/03/05 06:18:24
そういう連中にとってzshがクールでナウいんだよ。

690:名無しさん@お腹いっぱい。
07/03/07 18:55:38
localeがちゃんとしてたらja_JP.SJISでも動きますか?

691:名無しさん@お腹いっぱい。
07/03/07 19:17:30
ナニが?

692:名無しさん@お腹いっぱい。
07/03/08 01:16:40
カーソル移動とかプロンプト等の桁数計算とかSJIS2バイト目のメタキャラクタ無視とか。

693:名無しさん@お腹いっぱい。
07/03/16 10:04:06
あれ?

% autoload predict-on
% predict-on
predict-on:zle:5: can only be called from widget function


694:名無しさん@お腹いっぱい。
07/03/16 14:01:13
錫癜

695:名無しさん@お腹いっぱい。
07/03/16 20:44:04
>693
ウチではそのエラー出ないよ

ところで、恥ずかしながら predict-on は知らなかったですよ。


696:名無しさん@お腹いっぱい。
07/03/24 22:24:26
>>663-664
久しぶりに見たから1ヶ月前へのレスだけど
path=($path(N))
でいけない?

697:663
07/03/24 23:10:35
user@ubuntu:~$ zsh -f
ubuntu% test=(foo bar /home)
ubuntu% echo $test
foo bar /home
ubuntu% echo $test(N)
foo bar /home
ubuntu% echo ${^test}(N)
/home

>>696だとうまくいったりいかなかったりで困ってたんですけど、rc_expand_paramのせいでした。
path=(${^path}(N)) でうまくいくみたいですね。

698:名無しさん@お腹いっぱい。
07/04/03 14:48:38
suffix alias がコマンドでも展開されて欝

699:名無しさん@お腹いっぱい。
07/04/10 17:16:19
mycom の連載見て、bash から乗り換えたら欝

bash
$ sudo rm ~foo (~foo -> /home/foo のシンボリックリンク)
シンボリックリンク ~foo が消える

zsh
% sudo rm ~foo (~foo -> /home/foo のシンボリックリンク)
Error: foo はディレクトリ
% sudo rm -r ~foo
ホームディレクトリが消える orz

700:名無しさん@お腹いっぱい。
07/04/10 17:21:46
まさか '~foo' ってファイルを作ったのか?

ニョロ展開をやめさせたいんなら
./~foo って指定すればいいし何が言いたいのかわからん


701:名無しさん@お腹いっぱい。
07/04/10 17:24:47
>>700
違うよ。

俺は意味わかった。zshが ~の展開の際にシンボリックリンクをたどってしまう
という問題だね。Error: foo はディレクトリ の時点で気づくべき。

702:名無しさん@お腹いっぱい。
07/04/10 17:32:22
いまいちよくわらん。
foo アカウントのホームディレクトリが /usr/home/foo とかになってて、
それが /home/foo へのシンボリックリンクになってる、とかそんな感じ?

つーかなんで rm -r なんてする気になったんだろ。

703:名無しさん@お腹いっぱい。
07/04/10 17:39:59
同じく意味がわからん

少なくとも問題という意識はわからん

(動作の話はそういうものとしか言いようがないし...
>702 も言う通り -r はそれこそ意図的じゃん)

704:名無しさん@お腹いっぱい。
07/04/10 17:41:06
unsetopt chaselinks
で解決したりする?

705:名無しさん@お腹いっぱい。
07/04/10 17:44:18
シンボリックリンクに対して rm -r しても、
そのシンボリックリンクが消えるだけ(先までたどらない)からだろ。
多分、rmでエラーが出たから rm -r にしただけだろ。
まさか、~foo が実体ディレクトリを指してるとは頭から思ってないから、
シンボリックリンクを消す意味で気軽に rm -r したと。

706:名無しさん@お腹いっぱい。
07/04/10 17:57:57
>>705
その「エラーが出たから -r」ってのが意味わからん。
-f ならまだわかるけど。

707:名無しさん@お腹いっぱい。
07/04/10 18:00:07
で、「~foo」っていうファイルはあったのか?
なかったのか?

708:名無しさん@お腹いっぱい。
07/04/10 18:01:32
>>707
お前ずれてる。~fooなんてファイルの話じゃない。

709:名無しさん@お腹いっぱい。
07/04/10 18:02:21
>>708
んじゃどういう話?

710:名無しさん@お腹いっぱい。
07/04/10 18:03:09
>>709
読解力ない香具師だなぁ。

711:名無しさん@お腹いっぱい。
07/04/10 18:04:16
>>710
すまんね。
詳細教えてくれよ。

712:名無しさん@お腹いっぱい。
07/04/10 18:06:19
/etc/passwd には、/usr/home/foo で登録されてる。
/usr/home/foo はシンボリックリンクで、実体の /home/foo を指している。

この状態で、~foo というチルダ展開は、
bashだと /usr/home/foo に展開されるが、
zshでは /home/foo に展開される。
という問題。

713:名無しさん@お腹いっぱい。
07/04/10 18:08:27
では>>699さん、正解をどうぞ。

714:699
07/04/10 20:35:00
説明不足で、ごめんなさい。
真相は>>701, >>705さんのおっしゃる通りです。

昔 bash で
/bar$ ln -s /home/foo ~foo
として /bar/~foo を作ったのですが、もう使う必要がなくなったので今日 zsh で
/bar% rm -r ~foo
としたら、ユーザ foo のホームディレクトリ /home/foo 自体が消えてしまった
ということです。

bash では
alias rm="rm -i"
としていたので、rm のエラーに対していつもの勢いで -r の試行をしてしまいました。

>>713
私が悪いので、皆さん正解です。

715:名無しさん@お腹いっぱい。
07/04/10 21:05:19
シンボリックリンクを消すならunlink

716:名無しさん@お腹いっぱい。
07/04/10 22:04:28
そういえば mycom の連載があったな。すっかり忘れてた。
つっこもうと思ってそれっきりだった。

717:名無しさん@お腹いっぱい。
07/04/10 22:40:44
>>716
では遠慮なくツッコメ。

718:名無しさん@お腹いっぱい。
07/04/10 23:55:45
けっきょく ~foo あったんじゃん。

719:名無しさん@お腹いっぱい。
07/04/11 02:25:44
シンボリックリンクにrm -rやったのがまずいよ。

720:名無しさん@お腹いっぱい。
07/04/11 07:12:17
>>718
なんでやねん。欲嫁。

>>714 では、
$ ln -s /home/foo ~foo
と実行してるから、~fooという名前のsymlinkはできない。
~fooという名前のsymlinkを作るためには、

$ ln -s /home/foo '~foo'
のように、クォートするなり、./~foo みたいに ./を付けるなりしないといけないから。

721:名無しさん@お腹いっぱい。
07/04/11 07:14:15
>>719
シンボリックリンクにrm -rやること自体はまずくない。(変ではあるが)
まずかったのは、それがシンボリックリンクではなかったこと。

722:名無しさん@お腹いっぱい。
07/04/11 08:37:49
>721
いや、シンボリックリンクに対して rm -r するのはおかしいよ。

-r オプションは「当該ファイルをディレクトリとみなして中身もいっしょに
消す」という意図のオプションだから、仮に rm で消せなかったとしてもシン
ボリックリンクだと認識しているファイルに使うのがまずヘン。
だって中身を消したかったわけじゃないでしょ。


723:名無しさん@お腹いっぱい。
07/04/11 09:45:48
>>714
> として /bar/~foo を作ったのですが、
って言ってるんだから、
~foo っていうファイル名のファイル (シンボリックリンク) が
あったんじゃないの?

724:名無しさん@お腹いっぱい。
07/04/11 09:53:03
>>723
そこは確かに曖昧だが、質問者の理解不足によるものだろう。

ln -s /home/foo ~foo
を実行してシンボリックリンクを作っている以上、
~fooは展開されて、実際のパス名になるから、
「~foo」なんて名前のシンボリックリンクができたわけではないことは明らか。

725:名無しさん@お腹いっぱい。
07/04/11 09:58:53
そもそも元質問者のレベルの人が、~が付いたファイルを作ること自体難しいだろう。
(クォートとかで回避する方法も知らないだろうし)

726:名無しさん@お腹いっぱい。
07/04/11 10:30:52
> /bar/~foo を作った

zsh とか以前に極めて悪趣味

> シンボリックリンクにrm -rやること自体はまずくない。(変ではあるが)

まあそうだけど "まずいかどうか" じゃなくて
「意味を理解せず(考えず)」に -r というのは銃殺刑確定
"(変ではあるが)" に集約されるけどな

727:699
07/04/11 23:44:00
すいません、今回の件は zsh と関係ありませんでした。
原因は、「~ユーザ名」と「~非ユーザ名」で挙動が異なる事を知らなかったという
私の理解不足にあります。
zshで
foo@example:/bar% sudo rm -r ~foo
でホームディレクトリが消えた後、 bash で
foo@example:/bar$ sudo ln -s /home/foo2 ~foo2
foo@example:/bar$ sudo rm -r ~foo2
(ここで、foo2 は既に存在しないユーザ名。/home/foo2 自体は実在する。)
として、検証してしまいました。

>>718, >>723-725
「/bar/~foo」は、ありました。
しかし、実際には>>720さんの説明の通りにしなければエラーになります。
したがって、作成時にはクォートしたと思います。

>>719, >>721-722
今後は、>>715さんの様にしたいと思います。

>>726
全くその通りです。

こんな unix の初歩的な事でスレを汚してしまい、
申し訳ないです。

728:名無しさん@お腹いっぱい。
07/04/11 23:51:24
>727
なるほどね。いや悪いってわけじゃないです。

ただ ~user という用法をしらない人がいると
誰も思わなかったから「ネタだろ」位に皆思ってただけで...

729:名無しさん@お腹いっぱい。
07/04/12 02:39:00
ここがUNIX板でよかったね。

730:名無しさん@お腹いっぱい。
07/04/13 09:32:32
ところでディレクトリに張った
シンボリックリンクをrm -rすると実際どうなるの?

731:名無しさん@お腹いっぱい。
07/04/13 09:34:23
>>730
それくらい実験してみろよ。
そのシンボリックリンクだけが消えるだけだよ。

732:名無しさん@お腹いっぱい。
07/04/13 14:53:23
この流れワロタ

733:名無しさん@お腹いっぱい。
07/04/13 20:52:19
% echo {001..005}\\n
001
 002
 003
となって2行目以降にスペースが入ってしまうのは
なんででしょうか?

734:名無しさん@お腹いっぱい。
07/04/13 20:57:26
001\\n 002\\n 003\\n 004\\n 005\\n に展開されるから

735:名無しさん@お腹いっぱい。
07/04/14 02:35:54
>>734 ありがとうございます。
とすると余計な空白なしに出力するのに
最もシンプルな書き方はどうなるのでしょう
echo {001..005} | tr "[:space:]" "\n"
だとベストではないですよね

736:名無しさん@お腹いっぱい。
07/04/14 02:55:22
シンプルというか真っ先に思い付くのは
for i in {001..005}; do echo $i; done
とか。zsh のことだから省略記法があるのかな。

737:名無しさん@お腹いっぱい。
07/04/14 02:58:56
と書きつつ思い付いた。print -l {001..005} でいいか。

738:名無しさん@お腹いっぱい。
07/04/17 22:38:46
zsh 4.3.3 released


739:名無しさん@お腹いっぱい。
07/04/21 00:26:43
zsh 4.3.4 releases

740:名無しさん@お腹いっぱい。
07/04/21 05:16:08
情報ゼロワロタ
URLリンク(journal.mycom.co.jp)

741:名無しさん@お腹いっぱい。
07/04/21 08:01:49
「マルチバイトサポート」って何回言った?て感じ

742:名無しさん@お腹いっぱい。
07/04/21 09:03:22
>>740
書いたあと一回でも読み返したとは思えん文だなw

743:名無しさん@お腹いっぱい。
07/04/21 10:58:42
> 4.3.4は機能拡張を実施したメジャーリリース。
??メジャーリリース?


744:名無しさん@お腹いっぱい。
07/04/21 11:53:18
そっとしといてやろうぜ…。

745:名無しさん@お腹いっぱい。
07/04/22 02:10:35
ちんこ

746:名無しさん@お腹いっぱい。
07/04/22 04:04:57
ホームをNFSで共有する環境で起動が異常に遅い事があったけど
原因が compinit する時にNFSで共有してる .zcompdump へのロックだったので
compinit -d /tmp/$USER.zcompdump
とかしたら幸せになれた

747:名無しさん@お腹いっぱい。
07/04/27 10:44:22
ウォーニングだバカ……

748:名無しさん@お腹いっぱい。
07/05/06 19:10:15
こんな人が記事書いているのかと思うと。

749:名無しさん@お腹いっぱい。
07/05/06 20:06:07
% echo 'a
c
d'

複数行の履歴を編集する時に改行のつもりで RET を打鍵すると accept-line
が呼ばれてしまうのだけど、これを回避する方法ってありますか?

750:名無しさん@お腹いっぱい。
07/05/06 20:11:17
>>749
C=v C-j かな?

751:名無しさん@お腹いっぱい。
07/05/07 06:14:08
>>750
できました。ありがとう

752:名無しさん@お腹いっぱい。
07/05/09 12:10:15
...微妙な記事だ

URLリンク(journal.mycom.co.jp)

753:名無しさん@お腹いっぱい。
07/05/09 13:01:30
おまいも微妙だな

754:名無しさん@お腹いっぱい。
07/05/09 13:17:14
zsh-loversにのってるような変態tipsを紹介すればいいのに

755:名無しさん@お腹いっぱい。
07/05/25 03:27:08
builtin sleep が欲しいなと思ったら zselect -t が使えた

756:名無しさん@お腹いっぱい。
07/05/25 04:26:49
bash の complete-into-braces (M-{) って zsh だと
どうすればいいんでしょうか?

757:87
07/06/09 00:33:14
% wget URLリンク(www.zsh.org)
% tar xzvf zsh-4.3.4.tar.gz
% cd zsh-4.3.4
% ./Util/preconfig
% ./configure --enable-multibyte --enable-locale
% make
% sudo make install

どこに記述すればいいんだいよう

758:名無しさん@お腹いっぱい。
07/06/14 03:25:54
tab補完でtab押すごとに補完候補が順に入力された状態になるけど
行き過ぎたときに戻る方法ってありませんか?
shift+tabとか押してみたけどダメだった

759:名無しさん@お腹いっぱい。
07/06/14 03:28:36
Ctrl+Pは?

760:名無しさん@お腹いっぱい。
07/06/14 03:40:28
>>759
コマンド自体が一個前のに戻るだけでした

761:名無しさん@お腹いっぱい。
07/06/14 05:52:05
>>758
# 補完候補を←↓↑→で選択。
zstyle ':completion:*:default' menu select true

で、矢印キーで移動するのはダメですか?


762:名無しさん@お腹いっぱい。
07/06/14 09:37:53
自分は undo を使う

763:名無しさん@お腹いっぱい。
07/06/14 11:34:06
>>758
C-/

764:名無しさん@お腹いっぱい。
07/06/14 15:27:19
みなさんレスありがとうございます

>>761
おぉ、そんな便利なこともできるんですね

>>762
>>763
できました

765:名無しさん@お腹いっぱい。
07/06/14 21:35:57
undo したあと redo ってどうやりますか?

766:名無しさん@お腹いっぱい。
07/06/14 23:03:04
unko したあと redo ってどうやりますか?

767:名無しさん@お腹いっぱい。
07/06/15 10:39:14
>>766
気合いで尻の穴に吸い込め

768:名無しさん@お腹いっぱい。
07/06/15 12:23:07
redoをbindkeyで好きなキーに割り当てればいいのではないでしょうか

769:名無しさん@お腹いっぱい。
07/06/17 12:07:51
あるコマンドで hogehoge=filename などとファイル名を渡すときに、
=(nannkano_command) の一時ファイルで物臭をやろうとすると
hogehoge==(nannkano_command) となって == の解釈でエラーに
なってしまう。エスケープしても別のエラーになる。うまくやる方法は
ないかな。

770:名無しさん@お腹いっぱい。
07/06/17 12:23:31
zfsから誘導されてきました

スレリンク(unix板:27番)

できればこのキチガイをzshから出さないようにしてください。
迷惑です。

771:名無しさん@お腹いっぱい。
07/06/17 12:35:51
>>769
$ hogehoge='=(nannkano_command)'
$ echo "$hogehoge"
=(nannkano_command)

↑ってできるけど、これじゃ駄目なの?

772:名無しさん@お腹いっぱい。
07/06/17 12:57:39
いや駄目だと思うが…

773:名無しさん@お腹いっぱい。
07/06/17 13:03:22
>769
=(command) の一時ファイルはすぐ消えちゃうよ。かりに hogehoge=... に渡せても、それを再利用したときにはもう消えてると思うんだけど、どういう風に利用することを考えているの?
っていうか、やりたいのは `...` の方だったりしない?


あと、わたしの手元では
hogehoge==(command)
でも一時ファイル名はちゃんと取れるけどなあ。


774:名無しさん@お腹いっぱい。
07/06/17 13:33:25
>>773
ファイルの要る部分だけを抜き出して渡したいんですよ。履歴に突っ込んでおいて
たまに呼び出したいぐらいの軽い用途です。

たしかに単独の変数代入だと自分ところでも動きますが、コマンド途中だとエラーに
なってしまいます。例えば、
$ echo hogehoge==(command)
zsh:  not found

775:名無しさん@お腹いっぱい。
07/06/17 19:10:37
watch と打ったあとに引数のところでコマンド名の補完して欲しいんだけど
どう設定したらいいですか?

776:名無しさん@お腹いっぱい。
07/06/17 19:19:04
compdef _precommand watch
かな

777:名無しさん@お腹いっぱい。
07/06/17 19:29:19
>>776
できました
ありがとうございます
bashから乗り換えたけど色々と便利ですね

778:名無しさん@お腹いっぱい。
07/06/27 03:40:21

拡張子に応じたコマンドを自動実行
URLリンク(journal.mycom.co.jp)

779:気まぐれアナスイ
07/06/27 11:53:22
>>778
なるほど? そういう事ですか…

780:名無しさん@お腹いっぱい。
07/06/27 13:56:37
mycom の zsh の連載、まだ続いてたのか

781:名無しさん@お腹いっぱい。
07/06/27 14:50:24
こないだなんかネタを募集してたぞ
URLリンク(journal.mycom.co.jp)

782:名無しさん@お腹いっぱい。
07/07/01 21:04:02
bindkey -v でコマンドスタックが使えないんですが
bindkey '^Q' push-line だとだめ、bindkey の出力にはちゃんとでてるのに
bindkey '^P' push-line だとできるが P は別で使ってるので...

bindkey -v の人スタックどうしてるんだろう?使ってないとか?

783:名無しさん@お腹いっぱい。
07/07/03 04:42:58
bindkey "^Q" push-lineで普通に使えるが。

784:名無しさん@お腹いっぱい。
07/07/03 16:58:40
今までtcshを使っていましたが、 zshならscreenでsshをする場合、
screenのウィンドウ名にログイン先のホスト名が自動で付けれる ので最近zshに乗り換えたものです。

聞きたいのですが、

% history
1 less .zshrc
2 ls
3 man man
4 history

という履歴において先ず、l(小文字のLです)とタイプして ↑を押す時、
tcshの場合は 「history」 や 「man man」 を飛ばして ll(小文字のLです)から始まる 「ls」 を表示してくれますが
zshの場合は 「history」 と表示されます。

ネットで調べたら

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 "^P" history-beginning-search-backward-end
bindkey "^N" history-beginning-search-forward-end

と.zshrcに書いて Ctrl+P、Ctrl+Nでtcsh上の矢印を使った履歴検索が実現できました。
しかし、自分はやはり慣れた↑や↓を使いたいのですが どう書けばzshで実現できるのでしょうか?

どなたかご教授おねがいします。

785:名無しさん@お腹いっぱい。
07/07/03 18:48:30
bindkey で矢印キーに割り当てる

786:名無しさん@お腹いっぱい。
07/07/03 18:48:48
"^[[A" "^[[B"っつーことか?

ついでに「ご教授」でもググってみることをすすめるとく

787:784
07/07/03 20:33:42
>>785
そうなんです 結局矢印キーは
どういうコードで表わされるかを
聞きたかったんです。


意味不明な文ですみませんでした。

>>786
ありがとうございました。
"^[[A" "^[[B" で実現できました。

「ご教授」を「教えてください」の丁寧語の意味で使っていました。
こういう場合は「ご教示」なのですね。
失礼しました。

788:名無しさん@お腹いっぱい。
07/07/03 20:40:42
通常の設定なら、「Ctrl-v 何らかのキー」でそのキーの端末コードがわかる

789:名無しさん@お腹いっぱい。
07/07/03 23:02:51
> screenのウィンドウ名にログイン先のホスト名が自動で付けれるので最近
> zshに乗り換えたものです。

自動で付けてくれるような機能あんだっけ?

790:784
07/07/03 23:27:25
>>788
あっ 本当ですね
こんな機能、全く知りませんでした。
教えてくれてありがとうございました。


>>789
すみません、文章が不正確でした。
正しくは、.zshrcに

function ssh_screen(){
eval server=?${$#}
screen -t $server ssh "$@"
}
if [ x$TERM = xscreen ]; then
alias ssh=ssh_screen
fi

を記述したらできます。
URLリンク(d.hatena.ne.jp)


でも自分の環境は2行目の
eval server=?${$#}
で失敗するので、この2行目を
A=$#
eval server=$"$A"
としています。

791:名無しさん@お腹いっぱい。
07/07/03 23:41:57
「教授する」という動詞もあるので「ご教授願います」でも構わない、
と聞いたこともある。


792:名無しさん@お腹いっぱい。
07/07/04 00:52:42
単に大仰かどうかという話だ

793:名無しさん@お腹いっぱい。
07/07/04 01:11:04
>>790
これはリモートでコマンドを実行するんじゃなくて、リモートログインするという前提なのか?
それなら
function ssh_screen {
    screen -t $@[-1] ssh "$@"
}
とかでいいんじゃないの。

794:784
07/07/04 02:12:45
>>793
>これはリモートでコマンドを実行するんじゃなくて、リモートログインするという前提なのか?
そうです。

>function ssh_screen {
> screen -t $@[-1] ssh "$@"
>}
>とかでいいんじゃないの。
今まで動けばいいと思って、大して気にしていませんでした。

指摘されたこの機会に見直してみました。
自分はsshを使うとき
% ssh ホスト名 -l リモートのユーザー名
と使うので

function ssh_screen {
screen -t $1 ssh "$@"
}
としてみました。

795:名無しさん@お腹いっぱい。
07/07/04 08:46:05
>>791
間違いではないが、
本来言いたいこととは意味がちょっと違う。
URLリンク(www.tt.rim.or.jp)

796:名無しさん@お腹いっぱい。
07/07/07 00:11:03
スレリンク(unix板:132-133番)n
に「諸君、私はzshが好きだ」が張られているわけだが。
どうしてこのスレに書かないのか疑問だ。w

797:名無しさん@お腹いっぱい。
07/07/07 00:27:05
>>796
「zsh! zsh! zsh!」

798:名無しさん@お腹いっぱい。
07/07/09 04:54:36
今いるフォルダ(フォルダ名:number)に one two three というフォルダがあるとして

    ls *~two

とすると one three が表示されます

    cd ..
    ls number/*~two

だと one two three が全部表示されてしまって two が除外されないのですがなぜでしょうか?
つД`) タスケレ !!

799:名無しさん@お腹いっぱい。
07/07/09 07:31:37
ls number/*~number/two とか。

800:名無しさん@お腹いっぱい。
07/07/09 09:49:08
ls number/(*~two)

801:名無しさん@お腹いっぱい。
07/07/09 15:09:44
プロンプトに%~を入れているのですが、
プロンプト(または%~)の長さが一定以上なら改行して次の行の先頭に
> を出すようにしたいと考えているのですが、
そういうことできますか?

長さによって次のうち適当な方になるようにしたい↓

通常:
~/どこそこ>

長いとき:
~/じゅげむじゅげむごこうのすりきれぱいぽぱいぽ
>

802:名無しさん@お腹いっぱい。
07/07/09 15:29:41
LF=$'\n'
PROMPT="%~%20(l.$LF.)> "

803:名無しさん@お腹いっぱい。
07/07/10 02:54:30
ありがとうございます。条件分岐なんてできたんですね。

804:名無しさん@お腹いっぱい。
07/07/10 03:00:37
LFを定義するかわりに
PROMPT='%~%20(l,
,)> '
と書いてもいけました。

805:名無しさん@お腹いっぱい。
07/07/10 09:17:30
こんなことしてみた
zstyle -e ':completion:*:processes' command '
    [[ "$oldcontext" = *sudo* ]] &&
        reply=("ps -e") ||
        reply=("ps -u $USER")
'
きもいので没リスト行き。

806:798
07/07/11 17:45:11
>>799, 800
ありがと━(・∀・)━!!!!

アクセス規制で返事遅れ orz

807:名無しさん@お腹いっぱい。
07/07/28 11:04:19
parent_dir1/subdir/hoge.txt
parent_dir1/subdir/fuga.txt
parent_dir2/aho.txt
parent_dir2/aho2.txt

みたいな状態で子ディレクトリ(parent_dir1/subdir/ or parent_dir2/)単位に
処理をしたいとします。

for dir in *(/)
do
targetdir=$(echo ${dir}/*...) <= ここに$dirの下に子dirがあればソレ
以下いろいろ処理 なければ$dirを targetdirにセットしたい
done

*(/) にマッチしなければ . にマッチとか
何か条件マッチするglob みたいなことってできないんでしょうか?

808:名無しさん@お腹いっぱい。
07/07/31 15:38:01
>>807
末端のディレクトリだけを対象にしたいということ?
findを使うのはダメですか?

find ./ -type d | while read dir
do
  if [ -z $(find $dir -mindepth 1 -maxdepth 1 -type d) ]
  then
    # dirに対する処理
  fi
done

809:名無しさん@お腹いっぱい。
07/07/31 16:09:27
エントリごとにfind起動しなくても、
postorderで出力させて文字列マッチでいいんじゃない。これでどう?

dir0=
find -d topdir -type d | while read -r dir
do
  case "$dir0" in
  "$dir"/*) ;;
  *) echo "$dir";; # dirに対する処理
  esac
  dir0="$dir"
done

findにファイル名中の改行を出力するとき\を前置するオプションが欲しい。
つまり-rなしのreadと対で使えるような。

810:名無しさん@お腹いっぱい。
07/07/31 16:53:45
なるほど一つ前のdirを覚えておいて
それをマッチさせるってことか。

>末端のディレクトリだけを対象にしたいということ?

そういうことだったんですが、
結局お目当てのファイルが当該ディレクトリにあるかどうかを
判別して処理みたいなことをしてしまいました

for dir in *(/)
do
subdir=''
for sd in ${dir}/**/*(#qN/) ${dir}
do
if [[ -e omeate-file-name ]]; then
subdir=$sd
break
fi
done
# subdir での処理
done

811:名無しさん@お腹いっぱい。
07/08/09 05:47:45
screenのtitleを実行中のコマンド名に自動的にかえることができるらしいので、
^[k^[\ ( ^[ はエスケープ文字)をPROMPTの頭に追加したところ、
候補のリストがプロンプト行の下に複数行にわたって出てくるような補完を実行したり、
折り返しのある行の履歴をesc+kで戻って(vi modeです)編集したりするときに、
カーソルが4バイト分右にずれたり、一行上にずれたりよくわからない動作をするように
なってしまいました。
setopt no_always_last_prompt で、複数行の候補の出る補完をした際のずれは
なくなったんですが、コマンド履歴からの行編集はやはりカーソルが一行上や
4バイト右にずれます。
対処法ご存知の方いらっしゃいませんか。



812:811
07/08/09 05:49:05
--- .zshrcからsetoptとPROMPTの部分を抜粋
setopt no_always_last_prompt
setopt auto_cd
setopt auto_list
setopt auto_pushd
setopt no_auto_remove_slash
setopt no_extended_history
setopt glob_dots
setopt hist_ignore_all_dups
setopt hist_reduce_blanks
setopt hist_save_no_dups
setopt no_hup
if [ ! "$STY" -o "$WINDOW" = 0 ]; then
setopt ignore_eof
fi
setopt inc_append_history
setopt no_list_beep
setopt no_prompt_cr
setopt prompt_subst
setopt pushd_ignore_dups
setopt rm_star_silent
setopt no_share_history

if [ "$STY" ]; then
PROMPT='^[k^[\%{$prompt_color%}[%n@%m:%d]%#%{$reset_color%} '
else
PROMPT='%{$prompt_color%}[%n@%m:%d]%#%{$reset_color%} '
fi
色つける部分とってみても結果は同じでした。

813:名無しさん@お腹いっぱい。
07/08/09 06:24:11
>>811
812の中に答あるじゃん。

814:811
07/08/11 13:01:42
^[k^[\ を %{ %} でくくったらなおった模様。 813は答を書かないなら黙ってろ。

815:名無しさん@お腹いっぱい。
07/08/12 02:33:12
誰が何書こうがいいんじゃね。
自分の欲しい答じゃないと逆ギレするくらいなら最初からこんなとこで質問するなよ。

816:名無しさん@お腹いっぱい。
07/08/12 02:47:46
まあこの手の質問には「OS入れなおせ」とかトンチンカンな答え返す香具師がいるからね。

817:名無しさん@お腹いっぱい。
07/08/12 11:01:02
>>814
夏ですねー。

818:名無しさん@お腹いっぱい。
07/08/24 13:34:45
これってどう発音するの?

ゼットシェル
ゼットエスエッチ
ズィーシェル
ズィーエスエッチ
ズィーッシュ

おれは心の中で、いつも最後のやつで呼んでいるお。

819:名無しさん@お腹いっぱい。
07/08/24 13:43:30
>>818
UNIXに関する言葉のひらがな読みスレッド
スレリンク(unix板)

820:名無しさん@お腹いっぱい。
07/08/24 14:00:58
>>818
ズドラービスチェ

821:名無しさん@お腹いっぱい。
07/08/24 16:35:03
ザッシュと心の中で発音してるかな。
bash(バッシュ)とかash(アッシュ)の流れ。
でもcsh(シーシェル)、tcsh(ティシーシェル)、ksh(コーンシェル)だったりするけど。

822:名無しさん@お腹いっぱい。
07/08/24 16:52:32
もう>>819に移動したみたいよ。

823:名無しさん@お腹いっぱい。
07/09/15 00:01:52
zshのプロンプトが勝手に左端に戻ってしまうのを避ける方法はありますか?
たとえば、
perl -e 'print "hoge"'
すると、(プロンプトを[PROMPT]と書くとして)
hoge[PROMPT]
が一瞬で
[PROMPT]
にもどってしまうのでhogeが出力されたのか判別できなくて困るときがあります。
気を付けているときはよいですが、Perlのプログラムのバグ取りをprint文を使って
行っているとき、これにうっかりしていて嵌まるときあります。
(プログラム中の正規表現で正しく切り取れたか確認するとき等)

bashのときは
hoge[PROMPT]
のままだったのですが、zshでもこういう風にする方法はありますか?

824:名無しさん@お腹いっぱい。
07/09/15 00:19:34
setopt no_prompt_cr

825:823
07/09/15 09:05:38
>>824
解決しました。ありがとうございます!

826:名無しさん@お腹いっぱい。
07/09/15 22:37:35
そういえばいつのまにか prompt_sp なんてのがあるんだね。
promptnl みたいに

unsetopt prompt_cr
PROMPT=$'%{${fg[blue]}[EOO]${fg[default]}\e[$[COLUMNS-7]C \r%}'$PROMPT
(C の後は半角スペース2個)

ってやってるから使う気ないけど。
% のところを任意の文字列/色にできれば prompt_sp に任せるんだけどなあ。残念。

827:名無しさん@お腹いっぱい。
07/09/15 22:39:35
>>787
zkbd ってのもあるよ。まあ要らないかな。

828:名無しさん@お腹いっぱい。
07/09/16 00:04:12
しばらくプロンプトが戻ってこない操作(makeとか)が終了したらbeep鳴らそうと
precmd() {echo -n '\a'}
としてみたけど、流石にうざい。

もっとうまい方法きぼんぬ。

829:名無しさん@お腹いっぱい。
07/09/16 00:06:01
icqとかのwav

830:名無しさん@お腹いっぱい。
07/09/16 00:51:26
make; echo -n '\a' じゃだめなの?

831:828
07/09/16 01:32:53
うん。忘れるから。

832:名無しさん@お腹いっぱい。
07/09/16 01:48:45
eject

833:名無しさん@お腹いっぱい。
07/09/16 03:08:16
>>832
それはbiff用(謎)


834:名無しさん@お腹いっぱい。
07/09/16 03:11:16
コマンド実行時間が一定以上なら音を出す、
とかすればいいのかな。
できるのか知らんけど。

835:名無しさん@お腹いっぱい。
07/09/16 03:29:00
ring_after=$1
shift

(sleep $ring_after; echo ^G^G^G) &
ringer_pid=$!
trap "kill $ringer_pid" CHLD
sh -c $*

思いつきで書いてみた。検証はしていない。


836:名無しさん@お腹いっぱい。
07/09/16 04:24:15
>>834
precmd () { [ $TTYIDLE -gt 10 ] && echo ^G; true }
かな。

837:名無しさん@お腹いっぱい。
07/09/16 06:41:14
threshold=5
precmd () { (( ${+EXEC_SECONDS_START} )) && (( SECONDS - EXEC_SECONDS_START > threshold )) && echo \\a ; unset EXEC_SECONDS_START }
preexec () { (( EXEC_SECONDS_START = SECONDS )) }

とか。TTYIDLE なんてあるんだね。

838:名無しさん@お腹いっぱい。
07/09/16 06:46:58
>>836
最後の true って意味あんの?

839:828
07/09/16 18:47:42
翼をありがとう

                 ハ_ハ  
               ('(゚∀゚∩ とべるよ!
                ヽ  〈 
                 ヽヽ_)


840:名無しさん@お腹いっぱい。
07/09/19 01:39:19
zshで、指定されたこのディレクトリ以下の、XXXX年Y月ZZ日以前に作成されたファイルを一覧し、確認後、
一括削除したいのですが、どのようにすればいいのかわかりますでしょうか?


841:名無しさん@お腹いっぱい。
07/09/19 09:07:11
touch -d YYYYMMDD dummyしておいて
echo **/*(e:'[[ $REPLY -ot dummy ]]':) とか?

ファイルのタイムスタンプじゃなく日付で比較する方法がわからんかった。

**/*(mh+2) でmtimeで2時間以上経ってるファイルってのは示せるな。
h(時間)以外に月や日数は指定できるが、具体的な日付は指定できないようだ。


842:名無しさん@お腹いっぱい。
07/09/19 15:56:58
findでやった方がいいんじゃないか

843:名無しさん@お腹いっぱい。
07/09/19 16:59:02
zshスレでそれを言っちゃあおしめぇよ (?)


844:名無しさん@お腹いっぱい。
07/09/19 20:44:16
あ、やっぱりそうだったんだ。
なんでfind -atime使わないのかと思ってた

845:名無しさん@お腹いっぱい。
07/09/19 21:17:12
findでのやり方を知った上でzshではどうなるかを考えるべきなんだろうけど。
echo **/なんたらだと argument too longになることがあるしね。



846:名無しさん@お腹いっぱい。
07/09/23 10:32:04
select-word-style shell
って multibyte 対応になってからおかしくなったよね。

(( CURSOR += ${#word} ))
ってやってて(wordはこれからまたごうとしている語)、
${#word} が bytes で CURSOR が chars だからみたいだけど。

${#word} を chars で取得する方法か CURSOR を bytes で設定する方法はあるかな。
誰か知らない?
$(wc<<<$word) とかはちょっと重いからなあ。
multibyte parse を自前でやるって手もあるけど。

847:名無しさん@お腹いっぱい。
07/09/27 05:27:16
% echo a b c
a b c
% echo !:2[TAB]
% echo b
% !:0-2[TAB]
% echo a b

知らんかった機能だけどわりと便利かも

848:名無しさん@お腹いっぱい。
07/09/27 11:15:49
csh 由来の古典的な過去履歴参照もいろいろ痕跡は残ってるし
使いこなせば便利な場面はあるんだろうけど
オツムの 使いこなしバッファ の容量がもう溢れてるザンス

849:名無しさん@お腹いっぱい。
07/09/27 15:35:24
c-/ でUndoって紹介されているサイトがあるけど、自分のところではUndoにならん。どして?

850:名無しさん@お腹いっぱい。
07/09/27 15:40:45
bindkey -e

851:名無しさん@お腹いっぱい。
07/09/28 12:22:50
>>849
端末は何?
TeraTermやPoderosaだとだめかも

852:名無しさん@お腹いっぱい。
07/09/28 12:53:11
端末はTeraTerm、sshで入っている。そして、指摘通り駄目だった。
ちなみにホストはVMware上のFreeBSD。こちらも駄目。
もちろん、bindkey -e は有効にしているのだけど、何か方法ありませんか?


853:名無しさん@お腹いっぱい。
07/09/28 18:10:08
stty ?

854:名無しさん@お腹いっぱい。
07/09/28 19:50:38
>>852
UTF-8 TeraTerm Pro with TTSSH2なら何もせずにいける.
URLリンク(sourceforge.jp)

古いTeraTermならこれでいける
URLリンク(www.sakurachan.org)

855:名無しさん@お腹いっぱい。
07/09/29 00:30:55
>>854
UTF-8 TeraTerm Pro with TTSSH2 にしてみたけど、駄目みたい。
c-x u は有効なんだが・・・。

856:名無しさん@お腹いっぱい。
07/09/29 08:44:52
>>855
日本語キーボードだとだめかも
C-_ はどう?
(/ と 右シフトの間のキー)

857:名無しさん@お腹いっぱい。
07/09/29 14:16:30
当方、日本語キーボードです。
C-_でも駄目でした。


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