zsh その4
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
05/02/02 20:03:26過去スレ
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リンク
0454名無しさん@お腹いっぱい。
2006/03/28(火) 23:20:070455名無しさん@お腹いっぱい。
2006/04/09(日) 17:17:32bash ならもっと簡単にやる方法あるよ:
bash -c 'for i in {a..e} ; do ; command $i ; done'
0456名無しさん@お腹いっぱい。
2006/04/09(日) 17:56:03それはbash3と断るべきだな。現状まだbash2の方が多いし、bash2ではできない。
それより、zshは {1..5}は展開できるのに、{a..e}が展開できないのってなんか中途半端。
0457名無しさん@お腹いっぱい。
2006/04/09(日) 18:09:41は出来るの?
あるいは {a..aa} とかはどうなるの?
一文字限定でもあった方が便利ではあるだろうが。
0458名無しさん@お腹いっぱい。
2006/04/09(日) 23:49:010459名無しさん@お腹いっぱい。
2006/04/09(日) 23:55:17できないよ
0460名無しさん@お腹いっぱい。
2006/04/14(金) 21:37:30そろそろここのリストから消えそうだね
0461名無しさん@お腹いっぱい。
2006/04/16(日) 10:42:220462名無しさん@お腹いっぱい。
2006/04/19(水) 20:05:100463名無しさん@お腹いっぱい。
2006/04/19(水) 21:03:100464名無しさん@お腹いっぱい。
2006/04/20(木) 02:27:27ちなみにソースなら ttp://www.zsh.org/pub/ ここにあるよ
0465名無しさん@お腹いっぱい。
2006/04/21(金) 03:44:270466名無しさん@お腹いっぱい。
2006/04/23(日) 19:15:090467名無しさん@お腹いっぱい。
2006/04/23(日) 20:20:34送りつけてやるのがいいよ。
0468名無しさん@お腹いっぱい。
2006/04/25(火) 13:16:330469名無しさん@お腹いっぱい。
2006/04/25(火) 21:54:380470名無しさん@お腹いっぱい。
2006/04/25(火) 22:43:20http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/95970
0471名無しさん@お腹いっぱい。
2006/05/01(月) 16:58:290472名無しさん@お腹いっぱい。
2006/05/01(月) 17:26:550473名無しさん@お腹いっぱい。
2006/06/03(土) 18:44:040474名無しさん@お腹いっぱい。
2006/06/09(金) 22:32:03precmd内から何らかの方法で値を取得し表示できるのが理想なのですが…。
すべてのコマンドにtime -o /tmp/hogeを頭につけてそれを取得する、という方法でも結構です。
REPORTTIME=0にTIMEFMTだと出ないときがあるので何とかしたいのです。
0475sage
2006/06/10(土) 03:55:580476名無しさん@お腹いっぱい。
2006/06/21(水) 02:35:140477名無しさん@お腹いっぱい。
2006/06/21(水) 14:18:03_acroread:12: no such file or directory: Gtk-WARNING
とか言われる。tcsh では問題ないのに。
0478名無しさん@お腹いっぱい。
2006/06/21(水) 14:31:53いつになったら直るのかなあ。
>>365-368 あたりを読んでみ。
0479476
2006/06/21(水) 17:55:28何か変なsetoptでも知らないうちにしちゃったのかも。
それが影響するcompletion関数というのも勘弁だけど。
0480名無しさん@お腹いっぱい。
2006/07/12(水) 16:20:40表示するようにしたいのですが、以下のやり方だと引数を入れたとき引数が less の
引数として認識されてしまい、ls の引数として認識させることができません。
alias -g L='| /usr/local/bin/jless'
alias ls="ls -alG L"
csh 等では以下のようにして同等の機能を持たせられるので、zsh でも同じこと
はできると思うのですが、やり方を知っている方がおられましたら教えていただけないでしょうか?
ls [オプション] [ファイル名] | less -e
alias ls "/bin/ls \!* | less -e"
0481名無しさん@お腹いっぱい。
2006/07/12(水) 16:43:090482名無しさん@お腹いっぱい。
2006/07/12(水) 16:51:43いまどき ${1+"$@"} なんてしなくても "$@" で桶。
0483名無しさん@お腹いっぱい。
2006/07/12(水) 16:58:570484名無しさん@お腹いっぱい。
2006/07/12(水) 21:33:380485名無しさん@お腹いっぱい。
2006/07/12(水) 23:46:500487名無しさん@お腹いっぱい。
2006/07/15(土) 23:09:45を使っているんですが、
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これじゃないの
0489名無しさん@お腹いっぱい。
2006/07/16(日) 00:18:19どうもありがとうございました。
0490名無しさん@お腹いっぱい。
2006/08/03(木) 00:16:10初めて知ったかも
0491名無しさん@お腹いっぱい。
2006/08/03(木) 07:35:220492名無しさん@お腹いっぱい。
2006/08/03(木) 19:21:26このスレしかヒットしねぇ('A`)
0493名無しさん@お腹いっぱい。
2006/08/06(日) 02:36:57ahooクオリティ(・∀・)
0494名無しさん@お腹いっぱい。
2006/08/07(月) 00:10:45% 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:470496494
2006/08/07(月) 03:43:48なんかすごい基本的なことだったのかもしれませんが、ありがとうございます。
0497名無しさん@お腹いっぱい。
2006/08/07(月) 16:47:310498名無しさん@お腹いっぱい。
2006/08/07(月) 19:57:510499名無しさん@お腹いっぱい。
2006/08/07(月) 22:11:100500名無しさん@お腹いっぱい。
2006/08/09(水) 12:34:490501名無しさん@お腹いっぱい。
2006/08/09(水) 13:25:35>>494 は GNU time の話ではない。
0502名無しさん@お腹いっぱい。
2006/08/16(水) 01:03:00日本語特有の設定ってある?
ロケールと print_eight_bit くらいだとおもうんだけど
0503名無しさん@お腹いっぱい。
2006/08/16(水) 04:17:04ttp://hiki.ex-machina.jp/zsh/index.cgi?MessageBoard
0504名無しさん@お腹いっぱい。
2006/08/16(水) 08:36:540505名無しさん@お腹いっぱい。
2006/08/16(水) 21:03:15そいつは日本語特有の設定というより、
日本語で書かれた資料を切望しているように見えるんだが。
0506名無しさん@お腹いっぱい。
2006/09/14(木) 00:24:170507名無しさん@お腹いっぱい。
2006/09/16(土) 02:36:00でもいまcygwinいれらんね〜
0508名無しさん@お腹いっぱい。
2006/09/25(月) 12:46:33$ 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# グローバルエイリアスを 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:170512名無しさん@お腹いっぱい。
2006/10/05(木) 15:43:080513名無しさん@お腹いっぱい。
2006/10/08(日) 21:39:06bash+bash-completionじゃボロボロで使いモノにならんよ
Fedora Core 6ではzsh-4.3.2また見送りか
0514名無しさん@お腹いっぱい。
2006/10/08(日) 22:09:140515名無しさん@お腹いっぱい。
2006/10/09(月) 02:17:27% command >& log
すらできないし
はよ駆逐されてくれ
0516名無しさん@お腹いっぱい。
2006/10/09(月) 02:35:46zshが全部でデフォルトシェルにならない限り無理。
bashはbashでいいと思うけど。
zshと比較する気は無い。
0517名無しさん@お腹いっぱい。
2006/10/14(土) 02:02:32ash = ムーブ
csh = キューブ
ksh = マーチ
cmd.exe = フィット
tcsh = シビック
bash = カローラ
zsh = ステップワゴン
powershell.exe = ボンドカー
0518名無しさん@お腹いっぱい。
2006/10/14(土) 10:31:090519名無しさん@お腹いっぱい。
2006/10/14(土) 12:33:040520名無しさん@お腹いっぱい。
2006/10/14(土) 17:54:47alias を展開することはできますか
0521名無しさん@お腹いっぱい。
2006/10/14(土) 18:10:290522名無しさん@お腹いっぱい。
2006/10/14(土) 19:54:00global alias でも使える方法はありますか?
0523名無しさん@お腹いっぱい。
2006/10/15(日) 21:41:190524名無しさん@お腹いっぱい。
2006/10/16(月) 06:04:570525名無しさん@お腹いっぱい。
2006/10/16(月) 16:40:220526名無しさん@お腹いっぱい。
2006/10/24(火) 16:35:29tcsh = はなこ
zsh = じろう
0527名無しさん@お腹いっぱい。
2006/11/04(土) 15:43:13の ^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なんか色々考えたけど、これが手っ取り早いかな。
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 の方が便利だと思う。
0529527
2006/11/08(水) 17:36:25ありがとうございます。
しかし、「no such keymap `menuselect'」と出て上手くいきません…。
ちょっとマニュアル読んで調べてみます。
0530527
2006/11/08(水) 18:19:03bindkey -M menuselect '^N' down-line-or-history
と、やると「no such keymap 'menuselect'」とエラーになってしまう。
だけど、いったん補完リストを出してからやると、ちゃんと設定できる。
何故だ…orz
0531527
2006/11/08(水) 18:52:26zmodload zsh/complist で先に読み込まなきゃいけないんですね。
>>528
>{up,down}-line-or-beginning-search の方が便利だと思う。
こっちの方が良さそうです。ありがとうございました。
0532名無しさん@お腹いっぱい。
2006/11/11(土) 03:24:11zmodload 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:43zmodload 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:25man 1 script
man 1 tee
0536名無しさん@お腹いっぱい。
2006/11/23(木) 14:46:52script?
0537名無しさん@お腹いっぱい。
2006/11/23(木) 14:59:13どんなコマンドうったときも自動的にteeしてくれるようなものが
あるといいと思ったのですが、viとかを考えるとけっこう難しいですね。
scriptは常用するにはちょっとうざいです。
0538名無しさん@お腹いっぱい。
2006/11/23(木) 15:05:35kterm -sl 10000 とか???
スクロール保存行を多くとっておけばいいじゃん。
どーでもいいけど、質問は zshとどう関係あるんだよ??
0539名無しさん@お腹いっぱい。
2006/11/23(木) 15:26:25ことじゃないの?
0540名無しさん@お腹いっぱい。
2006/11/23(木) 15:30:19scriptだと大げさ。知らずに使ってると巨大なファイルができるかも。
よって、今のところ kterm -sl 10000 が最適解か?
0541名無しさん@お腹いっぱい。
2006/11/23(木) 15:38:38# xscript (だっけ?) 思い出した。
0542名無しさん@お腹いっぱい。
2006/11/24(金) 04:26:30まだ分からないことだらけですが、これからお世話になります。
こんな環境です。
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/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早速有難うございました!
二つともうまくゆきました。
ホームディレクトリに何か作ることを想像しましたが、
/usr/local/share/zsh/4.3.2/ 以下のファイルをを直接直してもいいのですね。
デスクトップ使用なので個人的には問題ありません。
ただ zsh のバージョンアップの際に注意しないといけないですね。
バージョンアップに左右されない書き方や、管理者でない場合のことも知りたいです。
ディレクトリ名を打つと cd するのがデジャビュ的になつかしいです。
MS-DOS 用のソフトで見たのか、記憶はさだかでありませんが、なつかしいです。
0545名無しさん@お腹いっぱい。
2006/11/24(金) 07:23:270546名無しさん@お腹いっぱい。
2006/11/24(金) 13:06:39platexに関しては
% compdef _tex platex
で_texの補完ルールをplatexに適用できる
0547名無しさん@お腹いっぱい。
2006/11/24(金) 15:42:55>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"
0549547
2006/11/24(金) 22:00:53fpath="~/.zfunc "$fpath
はだめで(自分はこうやってて、だめだった)
fpath=(~/.zfunc $fpath)
だとうまくいくんですね。
なんでだろう?
0550名無しさん@お腹いっぱい。
2006/11/24(金) 23:14:58FPATH="~/.zshfunc:$FPATH"
でもよい。
0552名無しさん@お腹いっぱい。
2006/12/15(金) 13:37:160553名無しさん@お腹いっぱい。
2006/12/15(金) 18:47:060554名無しさん@お腹いっぱい。
2006/12/15(金) 19:37:26csh/tcshからの移行組に対するリハビリモードだから。
社会復帰できたらちゃんと PS1='$ ' に設定するのが望ましい。
■ このスレッドは過去ログ倉庫に格納されています