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リンク
001615
05/02/03 18:12:480017名無しさん@Vim%Chalice
05/02/03 18:33:25だからそれだと、同じ文字で両方grepじゃん!
別々にgrepかけたいの。コマンドラインの作業として
必要とされると思うんだけど、そんな高ポイントなんで対応しないんだ?
それで最強シェルなのか?
0018名無しさん@お腹いっぱい。
05/02/03 19:07:54command > >(grep word1) 2> >(grep word2)
とかじゃ不満なのか
0019名無しさん@Vim%Chalice
05/02/03 19:14:53ビンゴです。勉強不足でした・・・
やはり最強。bashにはできない
0020名無しさん@お腹いっぱい。
05/02/03 19:17:31なんていう記法があってもよさそうだな。いまんとこないけど。
0021名無しさん@お腹いっぱい。
05/02/03 19:19:11bash でもまんまできるみたいだけど?
0022名無しさん@お腹いっぱい。
05/02/03 19:20:270023名無しさん@お腹いっぱい。
05/02/03 19:20:33パイプ繋ぐ時にどうするか考えると、その手のは難しそう。
0024名無しさん@お腹いっぱい。
05/02/03 19:20:48ワロタ
0025名無しさん@お腹いっぱい。
05/02/03 19:22:060026名無しさん@お腹いっぱい。
05/02/03 19:28:570027名無しさん@お腹いっぱい。
05/02/03 20:17:160028名無しさん@お腹いっぱい。
05/02/03 20:27:110029名無しさん@お腹いっぱい。
05/02/04 10:50:37http://hiki.ex-machina.jp/zsh/?ZshLinks
0030名無しさん@お腹いっぱい。
05/02/04 17:40:37乙乙
0031名無しさん@お腹いっぱい。
05/02/05 02:43:190032名無しさん@お腹いっぱい。
05/02/05 05:39:170033名無しさん@お腹いっぱい。
05/02/06 04:54:210034名無しさん@お腹いっぱい。
05/02/06 21:01:340035名無しさん@お腹いっぱい。
05/02/07 17:38:250036名無しさん@お腹いっぱい。
05/02/07 18:21:490037名無しさん@お腹いっぱい。
05/02/08 00:00:260038名無しさん@お腹いっぱい。
05/02/08 12:04:47ま た お ま え か ! !
0039名無しさん@Vim%Chalice
05/02/08 19:52:35たしか、bashにできなくてkshにできると聞いたことがある
そもそも利用価値あるのかな
0040名無しさん@お腹いっぱい。
05/02/08 22:09:24パイプならあります。パイプいらんかえ。
0041名無しさん@お腹いっぱい。
05/02/09 09:58:05zftp
0042名無しさん@お腹いっぱい。
05/02/13 21:59:130043名無しさん@お腹いっぱい。
05/02/14 04:09:360044名無しさん@お腹いっぱい。
05/02/14 06:04:23もらってくれ。まかせた >43
0045名無しさん@お腹いっぱい。
05/02/14 22:33:18次のバージョンで直るはず。
0046名無しさん@お腹いっぱい。
05/02/14 22:43:44おお、情報ありがとうございます。果報を寝て待ちます。
ところで >>44 さんに言われてからどうやってバグ報告したものかと
途方に暮れてたんですが、
もしバグ情報のチェックとか報告するとしたら、
その bugs.debian.org のを見に行くのが正解でしょうか?
0047名無しさん@お腹いっぱい。
05/02/15 00:03:010048名無しさん@Vim%Chalice
05/02/15 16:05:08compctl の使用方法がよくわかりません
0049名無しさん@お腹いっぱい。
05/02/15 16:07:11そうですか
0050名無しさん@Vim%Chalice
05/02/15 17:04:440051名無しさん@お腹いっぱい。
05/02/15 18:15:120052名無しさん@Vim%Chalice
05/02/16 17:57:09展開するときのキーが違うのでしょうか?
0053名無しさん@お腹いっぱい。
05/02/16 18:04:31どのような状況で何がやりたいのですか?
man zshoptions は読みましたか?
0054名無しさん@お腹いっぱい。
05/02/16 18:13:230055名無しさん@Vim%Chalice
05/02/16 18:25:11いろいろなサイトを見ていて、自分用の補填をするときは-kで
compctl -k "(test1 test2 test3)" test ってやればOKと書いてあり、
test test* まで打ち、<tab> と <Ctr-I> を入力すると
test test1 test2 test3 が補填される と書いてあったので
それを試そうとしていました。ちなみに bindkey -e は設定してます。
zshoptions は すいません、読んでいません・・・
005651
05/02/16 19:23:17任意のコマンド(testだと同名のコマンドと紛らわしいのでhogeとする)に対し
$ comctl -k "(test1 test2 test3)" hoge
と独自の補完機能を定義しました。このとき
$ hoge test<Tab>
とすると test1,test2,test3 が補完侯補として正常に動作します。
今ここで
$ hoge test*
からワイルドカード展開をしたいのです。
(注)ワイルドカード展開するには C-x * を打つ必要がある
$ hoge test*<C-x *>
しかしながら、カレントディレクトリには test1,test2,test3 が存在しないので
$ hoge test1 test2 test3
と展開されません。
これを展開する方法はありますか?
ということですか? >> 48 氏
0058名無しさん@Vim%Chalice
05/02/16 19:36:18まことにお恥ずかしいですが・・・・
そのとおりです。説明が足りておりませんでした。
ちなみに、私の環境で test*(C-x *) を入力したら
*が消えて、test になりました。
zshのバージョンは zsh 4.2.0 (i686-pc-cygwin) です。
0059名無しさん@お腹いっぱい。
05/02/16 19:40:540060名無しさん@お腹いっぱい。
05/02/16 23:04:16setopt glob_complete
でいいかな?
zstyle の completer から _expand を外しておくこと。
0061名無しさん@Vim%Chalice
05/02/17 12:17:04setopt glob_complete
zstyle ':completion:*:default' expansions
を実行してだめでした。zstyleがいまいち理解できてないのですが、
やはり間違っているでしょうか
0062名無しさん@お腹いっぱい。
05/02/17 14:04:06>>55を読むと、test1、 test2、 test3 をそれぞれ補完候補にしたいのではなくて、
どうやら test1 test2 test3 に展開して欲しいみたいだが…
定義からしてそんな動きをするわけないが
0063名無しさん@Vim%Chalice
05/02/17 14:39:31やりたいことを先に書くべきでした。すいません。
コンソースでSQLを打つことが多く、カラム指定がめんどくさく、そこで考えました。
sql用のカラム補填を作るのですが、補填しやすくするために
カラムをそれぞれ、
t1_c1_column1 t1_c2_column2 t1_c3_column3 ... として
sql t1_c[12]* from tbl とすると、カラム1と3が補填できるようにする、
がやりたいことです。
上の例で、補填でも10個を1つ1つ補填するのは面倒です。
ただし、<tab>で補填候補を確認できることはメリットです。
SQLを実行しようとおもい、t1_c<tab>で全カラムを確認し、
補填したい物を確認して、それを t1_c[13579]* で展開できれば
5つを別々に補填しなくてもすむので、操作の手間が大幅に短縮できるかと、
そうおもって調べていました。
0064名無しさん@お腹いっぱい。
05/02/18 13:20:040065名無しさん@Vim%Chalice
05/02/18 13:43:520066名無しさん@お腹いっぱい。
05/02/18 14:34:12メーリングリストでも似たような質問を何度か見かける。試しにやってみたが、
全展開は簡単にできるが絞り込みがうまくいかない。例えば下のような感じ。
他に影響がないように機能を C-x x に割り当てている。
_foo () {compadd bar{1..5}{a,b}}
compdef _foo foo
zle -C all-matches complete-word _generic
bindkey '^Xx' all-matches
zstyle ':completion:all-matches:*' completer _all_matches _complete _match
zstyle ':completion:all-matches:*' old-matches false
zstyle ':completion:all-matches:*' match-original only
zstyle ':completion:all-matches:*' insert true
% foo bar<C-x x> → foo bar1a bar1b bar2a bar2b bar3a bar3b bar4a bar4b bar5a bar5b
% foo bar*<C-x x> → foo bar1a bar1b bar2a bar2b bar3a bar3b bar4a bar4b bar5a bar5b bar*
% foo bar[25]b<C-x x> → foo bar2b bar5b bar[25]b
などとなって、補完対象の文字列がそのまま残ってしまう。でも
% foo bar[48]a<C-x x> → foo bar4a
となったりするからよく判らん
0067名無しさん@お腹いっぱい。
05/02/19 05:52:37zle -C all-matches complete-word _generic
bindkey '^Xx' all-matches
zstyle ':completion:all-matches::::' completer _all_matches _complete
zstyle ':completion:all-matches:*' insert true
setopt glob_complete
0068名無しさん@お腹いっぱい。
05/02/19 08:12:070069名無しさん@お腹いっぱい。
05/02/19 11:59:46ポインタだけでもプリーズ。
java コマンドの補完があんまり重いんで、コイツだけ殺したい。
0070名無しさん@お腹いっぱい。
05/02/19 12:12:29compdef -d java
0071名無しさん@お腹いっぱい。
05/02/19 16:35:40> ls <TAB>
file-a file-b file-c
なら、"file-"がほしい。
0072名無しさん@お腹いっぱい。
05/02/19 22:27:470073名無しさん@お腹いっぱい。
05/02/19 23:28:47thx!
0074名無しさん@お腹いっぱい。
05/02/19 23:55:20はい。実際に補完するのではなくて、現在のカーソル位置でcomplete-wordしたら
補完されるはずの文字列を取得したい。
cur=$CURSOR
zle complete-word
PART_COMPLETE=$BUFFER[cur, CURSOR]
みたいに取得する…ってのは無理あり過ぎか。
0075名無しさん@お腹いっぱい。
05/02/20 10:45:37portsからzsh+euc_hack-4.2.4を入れました。
gdbでデバッグをしようと
break main
run
としたら、プロンプトが戻ってこなくなってしまいました。
tcshでは問題が無いのでzshのせいだと思います。
どうしたらgdbを使えるようになるでしょうか。
0076名無しさん@お腹いっぱい。
05/02/20 12:45:44?何をデバッグしたいの?
0077名無しさん@お腹いっぱい。
05/02/20 12:51:41コアを吐いてしまって・・・
0078名無しさん@お腹いっぱい。
05/02/20 14:41:29大学で情報科学をやっているんで、
使えないと困るんです...
0080名無しさん@お腹いっぱい。
05/02/20 15:01:06すいません。あまり重要な質問とも思えなかったので
さしあたって
#include <stdio.h>
int main()
{
printf("hello\n");
return 0;
}
のようなプログラムをデバッグしたいと思います。
008176
05/02/20 15:05:51gdbとzshは全く関係ないはず。
break mainで戻ってこないってのはどうなってるんだろう? C-cで
割込みしたらどうなる?
#多分スレ違い。
0082名無しさん@お腹いっぱい。
05/02/20 15:25:30>gdbとzshは全く関係ないはず。
と、思っていたんですが、
zshをログインシェルにしてログインした状態で
gdbを使うとrunでプロンプトが戻ってこなくなってしまうんです。
C-cの時のメッセージはどんなのが出てたかは忘れてしまいましたが、
tcshでプロンプトが戻ってくる時にやった時とは
違うメッセージが出てたと思います。
0083名無しさん@お腹いっぱい。
05/02/20 15:29:43zshとtcshで環境変数とかが違うとか。
デバッグするプログラムはgdbなしで普通に実行できる?
008475
05/02/20 15:40:32>デバッグするプログラムはgdbなしで普通に実行できる?
問題ありません。
>zshとtcshで環境変数とかが違うとか。
それはちょっと気がつきませんでした。
gdbのメッセージと併せて、
少し調べてみます。
0085名無しさん@お腹いっぱい。
05/02/20 16:01:38本家でもバグ報告上がっていたような。
特にzshenvという名前にだまされてこのファイルに環境変数書いてしまう人がはまる。
0086名無しさん@お腹いっぱい。
05/02/20 16:04:510087名無しさん@お腹いっぱい。
05/02/20 16:06:320088名無しさん@お腹いっぱい。
05/02/20 16:07:18それだとどんな問題があるの?
0089名無しさん@お腹いっぱい。
05/02/20 16:13:030090名無しさん@お腹いっぱい。
05/02/20 16:14:19まあいいけど. 私も使ってないし
0091名無しさん@お腹いっぱい。
05/02/20 16:20:59は? なんでgdbがzshのファイルを読むわけ?
0092名無しさん@お腹いっぱい。
05/02/20 16:32:110093名無しさん@お腹いっぱい。
05/02/20 19:53:22009475
05/02/20 20:51:45まさしくそれだったみたいです。
ありがとうございます。
zshが原因だとぜんぜん気がつかず、
デバッガまで作っちまったよ...
0095名無しさん@お腹いっぱい。
05/02/20 21:13:340096名無しさん@お腹いっぱい。
05/02/20 21:19:05bindkey -s "^J" ""
このようにすればできるのですが、もっと素直な方法はありますか?
0098名無しさん@お腹いっぱい。
05/02/20 22:47:24bindkey -r '^J'
bindkey '^J' undefined-key
0099名無しさん@お腹いっぱい。
05/02/20 23:07:15無理あんの?
0101名無しさん@お腹いっぱい。
05/02/21 01:56:38-s は素直でないかな
0102名無しさん@お腹いっぱい。
05/02/21 03:56:57まあ書いてもいいんだけど、サンプルのzshenvに書いてある
コメント読んでもらえれば。でも普通の人はそんなこと意識
しないでzshenvという名前だけ見て環境変数全部このファイル
に書いたりしてるんじゃないの、という意味で>>85を書いた。
0103名無しさん@Vim%Chalice
05/02/21 11:03:440104名無しさん@お腹いっぱい。
05/02/21 11:23:14こんなのしか思いつかないよ
typeset MICHISHIGESAYUMI="$TMP/.sayumin"
[[ -f $MICHISHIGESAYUMI ]] && dirstack=($(cat $MICHISHIGESAYUMI))
function chpwd () {
emulate -L zsh
print $dirstack > $MICHISHIGESAYUMI
}
0105名無しさん@お腹いっぱい。
05/02/21 11:50:46さゆみんて、またアンタかい!
つーか、いくら2ちゃんだからとはいえ、
(変数やファイルの) 名前はきちんと責務を明確に表したものにしてほしいですよ。
0106名無しさん@お腹いっぱい。
05/02/21 11:55:500107名無しさん@Vim%Chalice
05/02/21 12:05:30できました。ありがとうございます。
0108从*・ 。.・) ◆SayuminPM.
05/02/21 16:18:08typeset -r MICHISHIGESAYUMI="$TMP/.sayumin"
[[ -f $MICHISHIGESAYUMI ]] && while read sayu; do dirstack+=$sayu done <$MICHISHIGESAYUMI
function chpwd () {
emulate -L zsh
print -l ${dirstack} > $MICHISHIGESAYUMI
}
うはwwwwwpathにwwwwwwwww改行があるとwwwwwwwwwwwwwwwwだめじゃんwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0109名無しさん@お腹いっぱい。
05/02/21 17:27:39print -Nでヌル文字区切りに出来るようだ。
読む方はちと調べが付かぬ。
0110从*・ 。.・) ◆SayuminPM.
05/02/21 17:48:11おおすごい
読む方は
read -d '^@'
又は
read -d ''
かな
ただし^@は直打ち
'\0' みたいな書き方はどうやるんだろう
'' を認識できるって凄い
0111从*・ 。.・) ◆SayuminPM.
05/02/21 19:12:06read -d $'\0'
で大丈夫だね
0112名無しさん@Vim%Chalice
05/02/22 10:55:35でTBB入力時に補完候補を←↓↑→で選択できますが、
初回のTAB入力で最初のエントリを補填せず、途中一致する箇所までを補填し
次のTABで←↓↑→で選択させることはできるでしょうか。
0113名無しさん@お腹いっぱい。
05/02/22 10:59:190114名無しさん@お腹いっぱい。
05/02/22 11:10:430115名無しさん@お腹いっぱい。
05/02/22 12:50:07■ このスレッドは過去ログ倉庫に格納されています