トップページunix
981コメント260KB

zsh その4

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。05/02/02 20:03:26
zshのスレその4です。

過去スレ
zsh入門
http://pc.2ch.net/test/read.cgi/unix/990283346/
zsh入門 パート2
http://pc3.2ch.net/test/read.cgi/unix/1036324177/
zsh その3
http://pc5.2ch.net/test/read.cgi/unix/1080002786/

>>2-3リンク
0485名無しさん@お腹いっぱい。2006/07/12(水) 23:46:50
いまどきもなにも、このスレに書くってことはzsh限定でしょ。"$@"すら$*でよいのでは。

04864802006/07/13(木) 01:17:09
>>481
そのように設定をし、ちゃんと動作することを確認いたしました。
質問にお答えいただき、どうもありがとうございます。
0487名無しさん@お腹いっぱい。2006/07/15(土) 23:09:45
bindkey -v
を使っているんですが、
emacs bindでいうところの、再帰履歴検索がやりたくて、

bindkey "^R" history-incremental-search-backward
bindkey "^S" history-incremental-search-forward

と書いたのですが、Ctl-Rは効くのですが、Ctl-Sが効きません。
何故ダメなのかを教えてください。

もしくは、他の方法でもいいので、
bindkey -v の状態で、再帰履歴検索をやる方法を教えてください。
0488名無しさん@お腹いっぱい。2006/07/15(土) 23:37:43
http://www.itmedia.co.jp/help/tips/linux/l0612.html
これじゃないの
0489名無しさん@お腹いっぱい。2006/07/16(日) 00:18:19
ビンゴです!
どうもありがとうございました。
0490名無しさん@お腹いっぱい。2006/08/03(木) 00:16:10
インクリメンタル検索って再帰履歴検索っていうんだ
初めて知ったかも
0491名無しさん@お腹いっぱい。2006/08/03(木) 07:35:22
どこの用法だよその謎訳語
0492名無しさん@お腹いっぱい。2006/08/03(木) 19:21:26
"再帰履歴検索" の検索結果 1 件中 1 - 1 件目 (0.29 秒)

このスレしかヒットしねぇ('A`)
0493名無しさん@お腹いっぱい。2006/08/06(日) 02:36:57
再帰履歴検索 で検索した結果 1〜10件目 / 約54,800件 - 0.46秒

ahooクオリティ(・∀・)
0494名無しさん@お腹いっぱい。2006/08/07(月) 00:10:45
timeコマンドの出力をリダイレクトでつかまえたい場合、どうすればいいんでしょうか?

% time hoge
とした時の、hogeコマンドの出力は /dev/null に、
timeコマンドの出力は >output などとしてファイルに出力したいのですが。

time hoge を実行するだけのシェルスクリプトを書いておけば、
以下のようにして望んだ結果を得られるのですけど。
% cat hoge.sh
time hoge
% ./hoge.sh >/dev/null 2> output
0.012
0495名無しさん@お腹いっぱい。2006/08/07(月) 00:43:47
(time hoge > /dev/null) 2> a
04964942006/08/07(月) 03:43:48
おお!
なんかすごい基本的なことだったのかもしれませんが、ありがとうございます。
0497名無しさん@お腹いっぱい。2006/08/07(月) 16:47:31
time はコマンドじゃなくて予約語。
0498名無しさん@お腹いっぱい。2006/08/07(月) 19:57:51
( )じゃなくて{ }でもよかった
0499名無しさん@お腹いっぱい。2006/08/07(月) 22:11:10
GNUのtimeもきっと/usr/binあたりにあるでそ
0500名無しさん@お腹いっぱい。2006/08/09(水) 12:34:49
ない
0501名無しさん@お腹いっぱい。2006/08/09(水) 13:25:35
>>499
>>494 は GNU time の話ではない。
0502名無しさん@お腹いっぱい。2006/08/16(水) 01:03:00
http://lists.debian.or.jp/debian-users/200608/msg00104.html
日本語特有の設定ってある?
ロケールと print_eight_bit くらいだとおもうんだけど
0503名無しさん@お腹いっぱい。2006/08/16(水) 04:17:04
ヒドス
ttp://hiki.ex-machina.jp/zsh/index.cgi?MessageBoard
0504名無しさん@お腹いっぱい。2006/08/16(水) 08:36:54
ワロタ
0505名無しさん@お腹いっぱい。2006/08/16(水) 21:03:15
>>502
そいつは日本語特有の設定というより、
日本語で書かれた資料を切望しているように見えるんだが。
0506名無しさん@お腹いっぱい。2006/09/14(木) 00:24:17
cygwin版4.3.2キター
0507名無しさん@お腹いっぱい。2006/09/16(土) 02:36:00
まじでかぁあぁあ
でもいまcygwinいれらんね〜
0508名無しさん@お腹いっぱい。2006/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

どうして?バグ?
0509名無しさん@お腹いっぱい。2006/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
0510名無しさん@お腹いっぱい。2006/09/29(金) 09:02:55
これだけでよかった。死ね俺

# グローバルエイリアスを myaddrev に追加
myabbrev+=( ${==${(kv)galiases}} )
0511名無しさん@お腹いっぱい。2006/10/02(月) 21:26:17
生きろよ
0512名無しさん@お腹いっぱい。2006/10/05(木) 15:43:08
なにこの過疎スレ
0513名無しさん@お腹いっぱい。2006/10/08(日) 21:39:06
zshイイと思うけどなあ
bash+bash-completionじゃボロボロで使いモノにならんよ
Fedora Core 6ではzsh-4.3.2また見送りか
0514名無しさん@お腹いっぱい。2006/10/08(日) 22:09:14
今も昔もインストールすればいいだけ
0515名無しさん@お腹いっぱい。2006/10/09(月) 02:17:27
bashの中途半端振りはいつもいやになるな
% command >& log
すらできないし
はよ駆逐されてくれ
0516名無しさん@お腹いっぱい。2006/10/09(月) 02:35:46
>>515
zshが全部でデフォルトシェルにならない限り無理。

bashはbashでいいと思うけど。
zshと比較する気は無い。
0517名無しさん@お腹いっぱい。2006/10/14(土) 02:02:32
command.com = ミゼット
ash = ムーブ
csh = キューブ
ksh = マーチ
cmd.exe = フィット
tcsh = シビック
bash = カローラ
zsh = ステップワゴン
powershell.exe = ボンドカー
0518名無しさん@お腹いっぱい。2006/10/14(土) 10:31:09
zshはチューリング コンプリートですか?
0519名無しさん@お腹いっぱい。2006/10/14(土) 12:33:04
scshの評価もキボンヌ
0520名無しさん@お腹いっぱい。2006/10/14(土) 17:54:47
$(ls)などはexpand-or-completeで展開できますが
alias を展開することはできますか
0521名無しさん@お腹いっぱい。2006/10/14(土) 18:10:29
which
0522名無しさん@お腹いっぱい。2006/10/14(土) 19:54:00
global alias だとエラーメッセージにおきかえられてしまいます
global alias でも使える方法はありますか?
0523名無しさん@お腹いっぱい。2006/10/15(日) 21:41:19
"^Xa" is _expand_alias
0524名無しさん@お腹いっぱい。2006/10/16(月) 06:04:57
m(_________________________________)m
0525名無しさん@お腹いっぱい。2006/10/16(月) 16:40:22
平謝り
0526名無しさん@お腹いっぱい。2006/10/24(火) 16:35:29
bash = たろう
tcsh = はなこ
zsh = じろう
0527名無しさん@お腹いっぱい。2006/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 が履歴検索になってしまいます。
補完候補の選択時は履歴検索にならないようにする方法はありますか?
0528名無しさん@お腹いっぱい。2006/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 の方が便利だと思う。
05295272006/11/08(水) 17:36:25
>>528
ありがとうございます。
しかし、「no such keymap `menuselect'」と出て上手くいきません…。
ちょっとマニュアル読んで調べてみます。
05305272006/11/08(水) 18:19:03
zsh起動して
bindkey -M menuselect '^N' down-line-or-history
と、やると「no such keymap 'menuselect'」とエラーになってしまう。
だけど、いったん補完リストを出してからやると、ちゃんと設定できる。
何故だ…orz
05315272006/11/08(水) 18:52:26
解決しました。
zmodload zsh/complist で先に読み込まなきゃいけないんですね。
>>528
>{up,down}-line-or-beginning-search の方が便利だと思う。
こっちの方が良さそうです。ありがとうございました。
0532名無しさん@お腹いっぱい。2006/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

最後の行はなんで入れたか覚えてない
0533名無しさん@お腹いっぱい。2006/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
0534名無しさん@お腹いっぱい。2006/11/23(木) 14:34:03
どんなコマンドを実行したときも自動的に標準出力のログ
をとってくれるような設定ってありませんか?
0535名無しさん@お腹いっぱい。2006/11/23(木) 14:45:25
>>534
man 1 script
man 1 tee
0536名無しさん@お腹いっぱい。2006/11/23(木) 14:46:52
>>534
script?
0537名無しさん@お腹いっぱい。2006/11/23(木) 14:59:13
makeした後とかで「teeしとけばよかった」と思うことがあるので、
どんなコマンドうったときも自動的にteeしてくれるようなものが
あるといいと思ったのですが、viとかを考えるとけっこう難しいですね。
scriptは常用するにはちょっとうざいです。
0538名無しさん@お腹いっぱい。2006/11/23(木) 15:05:35
>>537
kterm -sl 10000 とか???
スクロール保存行を多くとっておけばいいじゃん。

どーでもいいけど、質問は zshとどう関係あるんだよ??
0539名無しさん@お腹いっぱい。2006/11/23(木) 15:26:25
だから、loginしたときに自動でteeでもscriptでも走らせればいいじゃんって
ことじゃないの?
0540名無しさん@お腹いっぱい。2006/11/23(木) 15:30:19
teeだと viが使えなくなる。
scriptだと大げさ。知らずに使ってると巨大なファイルができるかも。

よって、今のところ kterm -sl 10000 が最適解か?
0541名無しさん@お腹いっぱい。2006/11/23(木) 15:38:38
screen 使っとけば?

# xscript (だっけ?) 思い出した。
0542名無しさん@お腹いっぱい。2006/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 と同じものを補完してくれればいいのですが、どうすべきですか。

似た問題がいくつかあります。初歩的な質問ですがどうぞよろしく。
0543名無しさん@お腹いっぱい。2006/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
とか書いてない?
0544名無しさん@お腹いっぱい。2006/11/24(金) 05:44:47
>>543

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

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

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

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

ディレクトリ名を打つと cd するのがデジャビュ的になつかしいです。
MS-DOS 用のソフトで見たのか、記憶はさだかでありませんが、なつかしいです。
0545名無しさん@お腹いっぱい。2006/11/24(金) 07:23:27
zshはいい加減正式版をリリースしてくれないと泣いちゃうよ?
0546名無しさん@お腹いっぱい。2006/11/24(金) 13:06:39
>> 544
platexに関しては
% compdef _tex platex
で_texの補完ルールをplatexに適用できる
0547名無しさん@お腹いっぱい。2006/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
というエラーが出て補完が効かないです。
0548名無しさん@お腹いっぱい。2006/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"
05495472006/11/24(金) 22:00:53
>>548
fpath="~/.zfunc "$fpath
はだめで(自分はこうやってて、だめだった)
fpath=(~/.zfunc $fpath)
だとうまくいくんですね。
なんでだろう?
0550名無しさん@お腹いっぱい。2006/11/24(金) 23:14:58
()は配列。前者は文字列にセットしちゃうからだめ。

FPATH="~/.zshfunc:$FPATH"
でもよい。
05515472006/11/25(土) 00:10:24
>>550
お答えありがとうございます。
すっきりしました。
0552名無しさん@お腹いっぱい。2006/12/15(金) 13:37:16
zshのデフォルトのプロンプトにcsh/tcshと同じ % が使われてるのはどうして?
0553名無しさん@お腹いっぱい。2006/12/15(金) 18:47:06
普通 % だから
0554名無しさん@お腹いっぱい。2006/12/15(金) 19:37:26
>>552
csh/tcshからの移行組に対するリハビリモードだから。
社会復帰できたらちゃんと PS1='$ ' に設定するのが望ましい。
0555名無しさん@お腹いっぱい。2006/12/16(土) 05:32:14
wiki消えるぞ〜
http://hiki.ex-machina.jp/zsh/index.cgi
>重要 勝手ながら、都合により本サービスを停止することに致しました。停止予定日は2007年1月10日を予定しております。
>予定日までに http://wiki.fdiary.net/ など他のHikiFarm?への移動をお願いいたします。(2006.12.7)
0556名無しさん@お腹いっぱい。2006/12/17(日) 21:56:04
cygwinでzshを使い始めた若輩者です
解説サイトを見てますと起動時に ~/ 以下の
.zshrc .zshenv .zshprofile .zlogin が読み込まれることが前提のようなのですが
自分の環境ですと .zshrc しか読み込みません
他の3つの設定を読み込むにはどこに設定すればいいのでしょうか?
0557名無しさん@お腹いっぱい。2006/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シェル)の時
0558名無しさん@お腹いっぱい。2006/12/18(月) 11:33:40
/root が 700 で下のように zsh で先に * が
展開されちゃうのはどう回避したらいい?

$ sudo ls -l /root/*
zsh: no matches found: /root/*
0559名無しさん@お腹いっぱい。2006/12/18(月) 12:36:56
shell について勉強し直すのが先でそ
0560名無しさん@お腹いっぱい。2006/12/18(月) 15:15:53
>>557
ありがとうございます。
おかげで全部のファイルの読み込みが出来ました。
zshenvが読み込まれてないと思ったのは
ファイルの最初に書いてる echo をコメントアウトしてしまっていました。
0561名無しさん@お腹いっぱい。2006/12/20(水) 01:29:26
>>555
消えるんだ。。。もったいない。

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


>http://wiki.fdiary.net/ など他のHikiFarm?への移動をお願いいたします。
って、ことは、勝手に移してよい?
それとも、サーバ管理者が、wiki管理者に移動を依頼しているのかよくわからね。。。
0562名無しさん@お腹いっぱい。2006/12/20(水) 01:32:58
>>561
移していいんじゃない?
0563名無しさん@お腹いっぱい。2006/12/20(水) 11:50:29
>>561
頼む。
とりあえずやっておいて、もし重複したりしたら後で消せばいいんじゃないの?
0564名無しさん@お腹いっぱい。2006/12/21(木) 17:15:13
ライセンスはどうなってるのよ。
勝手にコピー公開していいのか?
0565名無しさん@お腹いっぱい。2006/12/23(土) 15:18:05
>>564
それが、問題だな。。。
0566名無しさん@お腹いっぱい。2006/12/23(土) 20:50:50
書いた人のライセンス? サービス側のライセンス?
一部書いた人間としてはコピーしておくれって感じだが。
0567名無しさん@お腹いっぱい。2006/12/24(日) 02:09:41
まずは移転先を確保。
次に自分が書いた箇所を移転先にコピー。
残りは破棄。

これで問題なかろう。
0568名無しさん@お腹いっぱい。2006/12/24(日) 09:53:30
別に特定のライセンスとか明記していない
いわば「便所の落書き」を
よそに移したって問題なかろう
0569名無しさん@お腹いっぱい。2006/12/24(日) 11:11:28
阿呆か
0570名無しさん@お腹いっぱい。2006/12/25(月) 03:01:44
厳密には、便所の落書きでも2chの書き込みでも、書いた人に著作権とかの権利がある。
きっとコピーするには、編集した人全員に許可をもらう必要があると思うけど、、、
でも、そこまで厳密にする必要も無いと思うからWikiを創めた人(Wiki管理者)が、
許可したら移して良いと思う。

というわけで、誰かWiki管理者のふりをしてwiki書き換えといてくれ。。。と冗談を言ってみる。
0571名無しさん@お腹いっぱい。2006/12/27(水) 22:02:07
ライセンスが確定していなかった以上、別のWikiへの転載は禁止。
もったいないが、仕方がない。

てことでFA?
0572名無しさん@お腹いっぱい。2006/12/27(水) 23:01:47
阿呆か
0573名無しさん@お腹いっぱい。2006/12/27(水) 23:21:10
新しいwikiにコピーさせてもらって、
ライセンスのことは注意書きとして書いておけばいい。
0574名無しさん@お腹いっぱい。2006/12/28(木) 04:32:09
くだらねえな
・このスレのまとめを新たに作る
・Wiki移転
やってることの本質は変わらんだろ。
著作権法を軽んずる気はないが、意味のおかしい会話になっている。
0575名無しさん@お腹いっぱい。2006/12/28(木) 07:35:59
素直に著作権法は無視といえばいいのに。
0576名無しさん@お腹いっぱい。2006/12/28(木) 11:40:56
新たにまとめたら同じになった!

同じ元ネタを同じようにまとめたんだから当然だよな!
0577名無しさん@お腹いっぱい。2006/12/28(木) 11:53:17
あるあるw
0578名無しさん@お腹いっぱい。2006/12/28(木) 11:53:51
再実装ってやつだな
0579名無しさん@お腹いっぱい。2006/12/28(木) 12:00:10
たまたまならしょうがないよな
0580名無しさん@お腹いっぱい。2006/12/29(金) 13:17:24
bindkey で割り当て可能なコマンドの一覧てどこにあるんでしょうか
コマンドラインスタックをESC-q から Ctrl-q に変えたくて探してます
0581名無しさん@お腹いっぱい。2006/12/29(金) 14:20:18
stty を調べろ、に一票
0582名無しさん@お腹いっぱい。2006/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など他の項目はどう見つければいいんでしょうか
0583名無しさん@お腹いっぱい。2006/12/29(金) 17:04:08
>>581 は「知ったか」に1票。

zshの bindkeyの話なので、stty(低レベルの端末設定)とは関係ない。
0584名無しさん@お腹いっぱい。2006/12/29(金) 17:09:19
探してるのはこういうのか?
http://zsh.sourceforge.net/Doc/Release/zsh_29.html

これはちょっと古いけど、普通にインストールしてるなら
ローカルにも同じようなのがあるでそ。
0585名無しさん@お腹いっぱい。2006/12/29(金) 19:08:30
>>583
ありがとです
>>584
そうです。ありがとうございます
コマンドラインスタックは push-line なんですね
ずっと buffer stack で探してました…。
■ このスレッドは過去ログ倉庫に格納されています