トップページ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リンク
0179名無しさん@お腹いっぱい。2005/04/21(木) 01:23:25
>>178
>>177だったorz
0180名無しさん@お腹いっぱい。2005/04/21(木) 21:02:17
globbing をつかうなら *(.L0) とか
0181名無しさん@お腹いっぱい。2005/04/23(土) 00:19:39
>180
サンキューデス。howmでよくうっかり作ってしまうサイズ0のファイルを、
rm **/*(L0)で消滅してもらって気分が少しすっきりしました。

zshのreference.ps、PDF変換したら一部欠けてしまうので何とかして欲しい・・・
0182名無しさん@お腹いっぱい。2005/04/24(日) 00:53:44
zsh-4.2.5でsuffix aliasが補完できない。
0183名無しさん@お腹いっぱい。2005/04/27(水) 22:23:33
できるけど
0184名無しさん@お腹いっぱい。2005/05/01(日) 16:26:27
シンボリックリンク展開とかないよね。
0185名無しさん@お腹いっぱい。2005/05/01(日) 16:28:22
あるよ
0186名無しさん@お腹いっぱい。2005/05/01(日) 16:29:45
早いなオイ
$(realpath hoge) とかじゃなくてすか?
0187名無しさん@お腹いっぱい。2005/05/01(日) 17:10:29
@
0188名無しさん@お腹いっぱい。2005/05/01(日) 21:47:08
じゃなくて、realpath みたいに追跡展開(置換?)したい
01891822005/05/02(月) 00:03:44
>>183
できました。すまそ
0190名無しさん@お腹いっぱい。2005/05/04(水) 07:38:28
zmodload zsh/statして
stat +link hoge
0191名無しさん@お腹いっぱい。2005/05/12(木) 23:32:17
realpath と同じじゃ
0192名無しさん@お腹いっぱい。2005/05/17(火) 10:35:40
日本語入力したらプロンプト上の表示が文字化けするのは
直す方法はありますか?
0193名無しさん@お腹いっぱい。2005/05/17(火) 12:14:39
setopt print_eight_bit
とかで解決する話?
プロンプトにディレクトリを表示するようにしてて、
日本語なディレクトリに入った時に化ける、とかなら分かるが。
0194名無しさん@お腹いっぱい。2005/05/17(火) 12:49:50
いやそれ以前に文字コードを何使っているんだとか
LANG やら LC_* は、とかいろいろ告白すべきことがあるだろう。
0195名無しさん@お腹いっぱい。2005/05/17(火) 23:26:34
端末が日本語表示出来るかはいっか
0196名無しさん@お腹いっぱい。2005/05/18(水) 01:25:24
すいませんでした。
ターミナルエミュレータはputtyで文字コードはUTF8使ってます。
OSはFedora3 で文字コードはUTF8です。

LANG=ja_JP.UTF-8

setopt print_eight_bit
では解決しないようです。

たとえばプロンプト上でtabで日本語ファイルを補完などすると、
文字化けした状態で表示されます。
ただし表示がおかしいだけでファイルの操作などは普通に出来ているようです。

以前いろいろ調べた時はutf8を表示させる方法はとりあえず無くて、
bad なんたらに登録されていて、そこにも近日対応予定とありました。
んで、半年くらい立ったので解決されたかなと思いまして。

0197名無しさん@お腹いっぱい。2005/05/18(水) 02:18:58
>>196
cvs
0198名無しさん@お腹いっぱい。2005/05/18(水) 02:22:02
なるほど、まだ正式には未対応なのですね。
残念です。
CVSに手を出してまで必要では無いので待つことにします。
0199名無しさん@お腹いっぱい。2005/05/18(水) 21:05:22
今時ウtfも未対応とはとんだ糞ソフトだな。
機能は多いかもしれんがそのうち消える運命だな。
0200名無しさん@お腹いっぱい。2005/05/19(木) 20:31:02
UTF 対応って POSIX の必要条件なの??
0201名無しさん@お腹いっぱい。2005/05/19(木) 23:11:52
>>199
機能が多い時点でk(ry
0202名無しさん@お腹いっぱい。2005/05/29(日) 23:32:37
zshの補完についてお聞きします
例えば

/home/aaa.txt
/home/bbb.txt
/home/ccc.txt

というファイルがあって、ファイル名の拡張子を除いたものが補完候補に挙がるように

command [TAB]
aaa bbb ccc

とするには compadd をどう書けばいいのでしょうか?
0203名無しさん@お腹いっぱい。2005/05/30(月) 01:16:11
>>202
単純にかけば
compadd /tmp/*(.:r:t)
とか
0204名無しさん@お腹いっぱい。2005/05/31(火) 08:47:35
PATH環境変数から、"/usr/java/"で始まるパスのを削除したいんですけど、
zshでこういう(正規表現などでマッチする要素のみを削除する)操作は可能でしょうか?
02052022005/05/31(火) 12:44:10
>203
感謝
0206名無しさん@お腹いっぱい。2005/05/31(火) 16:15:16
ttp://namazu.org/~satoru/blog/archives/000032.html
0207名無しさん@お腹いっぱい。2005/05/31(火) 17:08:58
>>204

path=( ${(R)path#/usr/java/*} ) とか?
正規表現じゃなくてglobだけど。
0208名無しさん@お腹いっぱい。2005/05/31(火) 21:01:35
>>204
スレ違いな解法だけど、
PATH=`echo $PATH | cut -d':' -f'1-3,5-'`

cut がダメなら代わりにsed とかでも。
0209名無しさん@お腹いっぱい。2005/05/31(火) 23:02:51
207が正統派っぽいけど、正規表現なら俺はperlにかませるな。
$echo $PATH |perl -pe "s#(^|:?)/usr/java/[^:]*##g"
02102042005/06/01(水) 10:16:15
>207
ありがとうございました。(R)をつけても、/usr/java以降は削除されなかったんですけど、
最後がbinなのが決まっていたので何とかなりました。

function setjavahome () {
path=( ${path#/usr/java/*/bin} )
export JAVA_HOME=$1
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=\
.:./classes:\
$JAVA_HOME/lib/tools.jar:\
$JAVA_HOME/jre/lib/rt.jar:
}
0211名無しさん@お腹いっぱい。2005/06/01(水) 17:45:50
>>204

path#パターン じゃなくて path:#パターン
が正しいみたいです。(コロン)
0212名無しさん@お腹いっぱい。2005/06/13(月) 13:49:04
コマンドを実行する時に環境変数を渡さずに実行したいのですがどうすればできますか?
0213名無しさん@お腹いっぱい。2005/06/13(月) 14:23:05
env -i
0214名無しさん@お腹いっぱい。2005/06/16(木) 14:05:18
なんかzshellのいい本か、ファイルないかな?サイトじゃなくて。。
0215名無しさん@お腹いっぱい。2005/06/16(木) 14:16:51
/usr/local/info/zsh.info
0216名無しさん@お腹いっぱい。2005/06/16(木) 16:37:33
これしかないんじゃない?
"From Bash to Z Shell"
ttp://www.amazon.com/exec/obidos/tg/detail/-/1590593766/103-1774413-5263841
0217名無しさん@お腹いっぱい。2005/06/17(金) 06:53:20
man zshall
user's guide to the z-shell
0218名無しさん@お腹いっぱい。2005/06/17(金) 09:27:22
shall we shell?
0219名無しさん@お腹いっぱい。2005/06/17(金) 18:17:22
そういえばUnixUserの連載の書籍化の話はどうなった
0220名無しさん@お腹いっぱい。2005/06/17(金) 18:30:56
売れないので流れました
0221名無しさん@お腹いっぱい。2005/06/17(金) 19:44:15
もったいねー
0222名無しさん@お腹いっぱい。2005/06/18(土) 02:26:47
PDF とかで手に入れられますかね?
0223名無しさん@お腹いっぱい。2005/06/18(土) 02:40:51
単発記事ならWebに載せられることもあるが、連載記事は難しいか
0224名無しさん@お腹いっぱい。2005/06/24(金) 00:59:32
カレントディレクトリの情報に応じて、umaskを動的に変更することは可能でしょうか。

NFSな/share/... は、umask u=rwx,g=rwx,o=rx にして、
自分のホームディレクトリな/home/.... は、umask u=rwx,g=rx,o= にする、といったような。
0225名無しさん@お腹いっぱい。2005/06/24(金) 01:26:15
ハァ?
0226名無しさん@お腹いっぱい。2005/06/24(金) 01:31:20
pwd して umask かえるような function を cd の代わりに使ったら?
0227名無しさん@お腹いっぱい。2005/06/24(金) 06:15:16
chpwd でいいでしょ
0228名無しさん@お腹いっぱい。2005/07/14(木) 11:27:39
EDITOR 変数にviを設定した状態で、zshを起動すると、
Ctrl+A,P,B,Nが ^A,^P,^B,^NとEchoされる状態になります。
回避したいのですが、どうやるのが作法なのでしょうか?
0229名無しさん@お腹いっぱい。2005/07/14(木) 11:42:09
bindkey -e
0230& ◆PkVaNoo6gU 2005/07/14(木) 18:44:55
ありがとうございました。
ZSHEDITORみたいな変数が有るのかと探してました。
0231名無しさん@お腹いっぱい。2005/08/12(金) 02:15:46
てst
0232名無しさん@お腹いっぱい。2005/08/13(土) 17:02:43
suffix alias (alias -s suffix=command)で指定した拡張子を持つファイルを実行権限を与えること無く補完したいのですが、これって可能ですか?

↓こんな感じ。

% ls -l
合計 4
-rw-r--r-- 1 abcdefg abcdefg 0 8月 13 16:53 hoge.hoge
-rw-r--r-- 1 abcdefb abcdefg 2439 8月 13 16:53 hoge.html
% alias -s html=pick-web-browser
% ./hoge
(ここで expand-or-complete)
% ./hoge.html
0233名無しさん@お腹いっぱい。2005/08/13(土) 23:39:14
>>232
普通にできているが。
02342322005/08/14(日) 00:55:23
自己完結しました。

alias -s {com,net,org 等々...}{,/}=pick-web-browser
という設定をしていたんだけど、指定する接尾辞に / を含めるのがダメだったみたい。

サフィックスエイリアスの中に1つでも / を含むものがあると全ての suffix alias
の補完ができなくなるようです。
0235名無しさん@お腹いっぱい。2005/08/14(日) 00:59:49
何のために/を入れるんだ?
0236232=2342005/08/14(日) 01:11:18
>>235
別に意味は無い
なんとなくいれてみたかっただけ
0237名無しさん@お腹いっぱい。2005/08/20(土) 10:41:55
開発中の使えでもなんでもいいんですが、
zshでまともにutf-8を使う方法ってありますか??
0238名無しさん@お腹いっぱい。2005/08/25(木) 15:22:56
... で ../.. に、 .... で ../../.. に、 ..... で ../../../.. に、・・・
ってできないかな?
0239名無しさん@お腹いっぱい。2005/08/25(木) 16:14:19
_morse
0240名無しさん@お腹いっぱい。2005/08/25(木) 18:00:34
..は、実際にそういう名前のディレクトリをシェルの外の世界で
辿ってるだけだからのう。
BUFFERを加工してやればやれなくもないとは思うが。

rootで、
# ln -d ../.. ...
ってやってみたら怒られた。(Linux ext2)
0241从*・ 。.・) ◆SayuminPM. 2005/08/25(木) 19:21:41
>>238
ちょっと違うけどこんなの書いて使ってる

function MichishigeSayumi () {
emulate -L zsh
setopt extendedglob
typeset MATCH
zle .self-insert
LBUFFER="${LBUFFER%%(#m)(...)}${MATCH:+../..}"
}
zle -N MichishigeSayumi
bindkey '.' MichishigeSayumi
0242名無しさん@お腹いっぱい。2005/08/30(火) 14:27:21
モヲタが唯一のコードの読み手だとしたら、
Sayumin, Eririn, Reinya と呼べばそれで済むでしょう。
しかし、主要な読み手はモヲタではなく、人間なのです。

--- ケント・ベック
0243名無しさん@お腹いっぱい。2005/09/07(水) 18:17:05
mohta
0244名無しさん@お腹いっぱい。2005/09/08(木) 05:51:13
cygwin を利用せずに、Windows で Zshを使うほうほうはありませんでしょうか?
0245名無しさん@お腹いっぱい。2005/09/09(金) 16:25:40
ありません
0246名無しさん@お腹いっぱい。2005/09/09(金) 19:19:08
どれだけ使い物になるかは知らん
ftp://ftp.blarg.net/users/amol/zsh
0247名無しさん@お腹いっぱい。2005/09/10(土) 00:52:41
v3 の頃の奴で現在メンテナンスはされてないです。

でも win 環境で zsh script 書けるのはありがてーってんで
>246 の奴使ってます。
超最低限の範囲しか使ってないけど。

(それにしても cmd.exe つかえねえよな)
0248名無しさん@お腹いっぱい。2005/09/10(土) 03:17:27
monadはすごいぞ
zshがゴミに思える
0249名無しさん@お腹いっぱい。2005/09/10(土) 08:21:14
でも Longhorn は monad なし。

あと「決定的な差」がなかったら新言語に手を出すのは面倒。
0250名無しさん@お腹いっぱい。2005/10/04(火) 10:33:43
前スレ109のプロンプト直後で日本語入力すると左に表示がずれるという問題ですが,
KDEのkonsoleにて同様の症状になります.
XIM経由で入力してOver The Spotに設定しておくとなんとか入力できたんですが,
IM_MODULE経由で入力するようにしたところ,再びこの症状が表れました.

どなたかこの問題を解決できた方いませんか?
0251名無しさん@お腹いっぱい。2005/10/04(火) 13:59:47
gnome-terminal + uim とかだと問題なさそう
02522502005/10/05(水) 12:09:47
>>251
そうなんですよ,これはkonsoleを捨てろってことですかね・・・?
0253名無しさん@お腹いっぱい。2005/10/05(水) 18:11:40
kterm でもなることがある
0254名無しさん@お腹いっぱい。2005/10/19(水) 20:47:34
zshhistory に ls とか cd とか残したくないんですが
そういうこともできますか?
0255名無しさん@お腹いっぱい。2005/10/19(水) 23:09:46
setopt histignorespace で
alias ls=' ls' cd=' cd'
02562552005/10/19(水) 23:17:44
ちなみに自分は alias rm=' rm' で rm * なんかが履歴に残らないようにしてる
0257名無しさん@お腹いっぱい。2005/10/19(水) 23:32:43
>>255,256
なかなか便利な小技っすね
0258名無しさん@お腹いっぱい。2005/10/20(木) 10:19:46
自分は逆に履歴に残したくないときだけ頭に空白を入れている。
どうも案外使い回しているようだ。
0259名無しさん@お腹いっぱい。2005/10/20(木) 10:34:39
引数つきのlsやcdは残すけど、引数のないやつは外すにはどうすれば?
0260名無しさん@お腹いっぱい。2005/10/20(木) 11:07:16
>>259
setopt HIST_IGNORE_ALL_DUPS にしておけば一番早くないか
0261名無しさん@お腹いっぱい。2005/10/20(木) 11:56:40
それは嫌なの。
いくつかのコマンドからなる手順そのものを覚えていてもらいたい場合もあるから。

0262名無しさん@お腹いっぱい。2005/10/20(木) 12:07:58
どうつながるのかよく判らないが…
0263名無しさん@お腹いっぱい。2005/10/29(土) 09:07:38
$SHELL=zshな環境だと、ファイル名によってlessからlesspipeを呼ぶ時に失敗する。
0264名無しさん@お腹いっぱい。2005/10/30(日) 23:15:48
>>261
一連の手順のときだけ HIST_IGNORE_ALL_DUPS を無効にする
accept widget を使うって手もあるかな。

>>263
例えば?
0265名無しさん@お腹いっぱい。2005/10/31(月) 00:26:22
[test].tar.gzかな
0266名無しさん@お腹いっぱい。2005/10/31(月) 01:43:28
>>265
LESSOPEN="|noglob lesspipe.sh %s"
でダメかな?試してないけど。
0267名無しさん@お腹いっぱい。2005/11/18(金) 00:47:56
if [ ] と [[ ]] ってどういう基準で使い分けるの?
0268名無しさん@お腹いっぱい。2005/11/18(金) 00:48:44
age
0269名無しさん@お腹いっぱい。2005/11/18(金) 01:36:26
>> 267
[[ は [ より高機能な zsh の組み込み機能。
-a, -o の替わりに &&, || が使えたり、
$hoge = y* みたいに文字列をパターンで比較することが出来る。
自分は文字列の比較をするときには [[ を使用するけど、いつもは [ を使ってる

man zshmisc の CONDITIONAL EXPRESSIONS を参照
0270名無しさん@お腹いっぱい。2005/11/18(金) 02:36:33
>>269
ありがとうございました。
0271名無しさん@お腹いっぱい。2005/11/20(日) 00:31:05
bashからzshに乗り換えようかといろいろ調べてるところなんですが
ワイルドカードの展開のことで教えてください.

例えば
% echo a*<tab>

とここでタブを打つと a* がカレントディレクトリの aで始まるファイルに
展開されてしまいます. これをコマンドラインは展開されずに, マッチする
ファイル名の一覧が表示されるようにしたいのですが可能ですか?
0272名無しさん@お腹いっぱい。2005/11/20(日) 00:38:23
>> 271
C-x g
02732722005/11/20(日) 00:40:18
ちなみに bash でも同じキーバインドで出来るよ
0274名無しさん@お腹いっぱい。2005/11/20(日) 00:49:44
>>272
すげえ. ありがとうございます!

ついでに厚かましいんですが, 教えていただいた C-x g の動作と<tab>の
展開の動作を入れ換えたい (おそらく私はC-x gの動作ばかり使うと思うので)
と思うのですが, ソースをいじるしかないのでしょうか?
0275名無しさん@お腹いっぱい。2005/11/20(日) 00:51:25
>>274捕捉
つまりキーバインドを入れ換えたいという意味です.
02762742005/11/20(日) 01:01:03
>>274自己解決しました. bindkeyで簡単でした. 失礼.
0277名無しさん@お腹いっぱい。2005/11/20(日) 02:56:17
echo a<c-d>
でいいじゃん。
0278名無しさん@お腹いっぱい。2005/11/20(日) 09:09:51
単純に入れ換えただけでは使い易くならないと思うが…
02792742005/11/20(日) 17:21:22
>>278
manで見つけて確認せずに>>276を書いてしまいましたが,確かに想像してたのと
違ってたので使えたものではありませんでした。とりあえずはC-x gに慣れる
ことにします。

>>277私へのレスですか?
■ このスレッドは過去ログ倉庫に格納されています