-
UNIX
-
zsh その7
-
UPLIFTで広告なしで体験しましょう!快適な閲覧ライフをお約束します!
zshについて語るスレ
http://www.zsh.org/
http://zsh.sourceforge.net/
・過去ログ
zsh その6
http://toro.2ch.net/...cgi/unix/1229010860/
zsh その5
http://pc11.2ch.net/...cgi/unix/1212677877/
zsh その4
http://pc11.2ch.net/...cgi/unix/1107342206/
zsh その3
http://pc5.2ch.net/t...cgi/unix/1080002786/
zsh入門 パート2
http://pc3.2ch.net/t...cgi/unix/1036324177/
zsh入門
http://pc.2ch.net/te....cgi/unix/990283346/ - コメントを投稿する
-
新スレおめでとうございます^^
-
おつ
zshのドキュメントって読むのにすごい忍耐いるね
ここ読んどけって章ある? -
使い始めの頃は prompt いじるために misc をよく見たけど、
最近は expn をよく見るかなー。
-
ログインシェルとしてzshを使っています.
ログイン時に~/.zprofile,~/.zloginが実行されてないようなんですけど(どういうわけかbashのprofileが代わりに実行されます),
ログイン時に~/.zprofile,~/.zloginを実行させるにはどうしたらいいですか?
ちなみに,Ubuntu 12.04LTSで使用しています. -
ログインシェルがbashになっていてbashからzshを起動してるんじゃねーの?
-
いつのまにか PROMPT に %F とか増えてんだなー。
これ $reset_color じゃ完全には reset されなかったりするのか。
なんとなく % 1つで書きたいけど %f%k しろってことか。 -
入力行に色をつけるこってできる?
-
# プロンプト後に好きな色指定
PS1='$ %F{green}'
# エンター押したら実行前に色をリセット
preexec() { print -nP '%f' }
あたりでどうだろう。
-
>>10
おーーいいかんじです。ありがとうございました。 -
>>10
補完しようとしたらうまくいかないな -
PROMPTを途中で改行してる場合で、改行する前の行にRPROMPTを表示させる方法ってありますか?
-
例えば。
RPROMPT="%{$(echotc UP 1)%}right prompt text%{$(echotc DO 1)%}"
きっと問題がある。
>>12
zle_highlight=(default:fg=green)
使ったことないんであんましらんけど。 -
echo 1*0 てやったら
10 100 110 120 130 140 150
て出るんですが、普通にそのまま出力させるにはどうすればよかですか? -
なにをいってるのかと思った。
echo '1*0' -
うちのzshじゃそのまま出る
$ echo 1*0
1*0
何のオプションが効いてるんだろ -
普通にワイルドカードでしょ。
-
>>17
setopt noglob かな。なんでそんなもん set してんのかしらんけど。 -
たびたびすいません。Emacs+multi-termだと崩れてました。
普段のkonsoleなら問題なかったのですが。 -
それは multi-term の問題では。
どう崩れるのかしらんけど。 -
bindkey で Ctrl+@ や Ctrl+- を設定したいんですが、 どうやればいいんでしょうか?
"^@" や "^-" では駄目でした。
-
^@ は普通それでいい。できないなら端末の問題かな。^- というコードはない。
xxd があればその入力にそれぞれ打ち込んでみるといい。
何か分かるかもしれない。 -
\@ って bindkey \@ foo ってこと?
@ なら bindkey @ foo でいいけど。
xxd がなければ ESC-x describe-key-briefly ^@ ってやれば一応入力キーは判るよ。
あと Ctrl-- も端末で適当なコードが入るようにすれば、それに bindkey して使えるよ。
putty でどうやるのかしらんけど。 -
そういえば今は setopt prompt_sp なんてあるんだな。今っつーか結構前からか。
unsetopt prompt_cr
PROMPT_EOL_MARK='%B%S%#%s%b'
PROMPT_EOL_MARK_LENGTH=1
PROMPT=$'%{$PROMPT_EOL_MARK\e[$[COLUMNS-PROMPT_EOL_MARK_LENGTH-2]C \r%}'$PROMPT
とかいう設定はとっくに不要になってんだよなあ。 -
文字入力の補完はできますか?
emacsのようにどこかに補完リストを作っておいて、
たとえば、
ssh lo[補完キー]と入力すると、
ssh longname.com
と変換されるようにしたいのですが。
-
できます
-
sshならデフォルトで~/.ssh/configをもとに補完してくれるはずだけどな
-
できました。
すみません。なぜか出来ないと思い込んでいました。 -
使い始めたばかりの初心者なのだけれども、alias -g L='| $PAGER ' でヒストリに L のまま残るのが嫌。
ヒストリには | less と展開して残すか、Lに続けてtabを押したら | less と展開するようにはできないだろうか。
-
ls とか less hogehoge をヒストリに残さないようにするためにはどうしたらいいんだろ。
-
setopt hist_ignore_space
alias ls=' ls'
-
>>38
おお、なるほど。これはいい。 -
zsh 5.0.0 available
http://www.zsh.org/m...s/2012/msg00495.html -
うむ
-
5.0がでたってのにぜんぜんもりあがらないな。
-
使うヒトは当たり前のように開発版の4.3使っていて、
5は4.3のバージョンだけ付け替えたようなものだから
目立った変化がない。
-
まさか正式リリースで5.0になるとは…4.4だと思ってたのに
-
まあ、linuxのカーネルが3.0になったからってなんてことはなかったのと一緒か。
-
4.3 って開発版だったっけ?そうだった気もするな
-
>>46
少なくとも4系は4.xのxが偶数がリリース版だった、はず -
5のリリースメールから引用
> Version 5.0.0 of zsh is the new stable release. There are many changes
> since the last stable release series, 4.2, イカリャク
-
Debianでは4.3系を長らく使ってるから開発版って認識は薄かったなぁ
(zsh-betaってのもあるのにzshの方が4.3.10) -
macportsも、よくわかってないヒトがメンテしてるのかな。
zsh @4.2.7 (shells)
zsh-devel @5.0.0 (shells)
-
パッケージのdevelとかbetaってのはソフトウェア自体の安定版/開発版だのとはまた別の基準でつけられるものでしょ
安定性重視のシステムで安定パッケージと認められるためにはそれなりのテストや議論を経てこれなら大丈夫って認められる必要があるんじゃね、しらんけど -
hoge-develって、実行時には必要ないincludeファイルとかだけをまとめたパッケージだろ。
本体パッケージとバージョンは同じじゃないといけない、しらんけど -
>>52
それredhatのRPM -
5が出る直前は
zsh @4.2.7 (shells)
zsh-devel @4.3.17 (shellls)
だったね。 -
devel ってか head 的な?
-
stableとunstable的な
-
>>52
devel=正式以外含めた最新版だと思ってる人が多いとけど実際はその認識でも間違いはない感じ
名前通り開発する人が必要なものが追加されてる版、なのでバージョンも含めていろいろ試せるように最新なのが普通
商業用だったりディストリ毎のルールとかもあるから一概にはいえないけど -
?
-
zshって、コマンド内にコメント含められないの?bashだとできるのに。
ls -al#a
みたいな。 -
setopt interactive_comments
対話環境(スクリプトではない、プロンプトが出る環境)でコメントを機能させる
-
おお、そんなオプションが。ありがとうございます
-
test
-
test
-
すいません、ありがとうございます。
-
非インタラクティブシェルとして起動するとき、aliasなどの設定ファイルを
読み込ませたいのですが、どうすればいいでしょうか? -
.zshenv に書く。
-
$HISTFILEを手動で編集した後
fc -Rしても変更が反映されない(削除した行がbck-i-searchに候補として出てくる)んだけど
どうして? -
追加されてるからかな
-
.zsh_history に日本語含んだコマンドは正常に保存されないの?
そういうコマンドも履歴検索したいんだが. -
環境依存なのかな? こっちだとできた ↑
-
>>71
うそ,まじで.自分の手元では
Windows7 64bit, zsh 4.3.12 (i686-pc-cygwin)
Ubuntu12.04, zsh 4.3.17 (i686-pc-linux-gnu)
のどちらでも無理だ.
echo ほげ
が
echo ほぃ?
みたいに .zsh_history に保存される.マルチバイトを考慮してない感じがする. -
>>72
MacOSX 10.7.5 zsh 5.0.0 (MacPortsからのインストール)
lessやtailでみると echo ほぃ? になってるけど
historyで確認すると echo ほげ となっているので,
C-rではちゃんと下になるな -
>>73
zsh 4.3 でも history コマンドなら日本語表示できるわ.
zsh のバージョンを zsh-5.0.0 を試してみたら
73 と同じように C-r で日本語でも大丈夫だった.
理想的には .zsh_history 自体にきちんと保存して欲しいけど. -
おー、文字によって化けたり化けなかったりするんだねー。
まあ内部形式なのかもしれないし、これで正しいのかも。少し無理があるか。 -
.zsh_history は、0x80-0x9f の符号が現れると
0x83 をメタキャラクタとしてくっつける。
作者はこれを仕様と言ってるんで、ヒストリファイル
を使う場合は手動で除去するしかないね。。。
(またはソースコードでこの部分をコメントアウトして
コンパイルするか…) -
あーそうなんだ。
.zsh_history は 0x80-0x9f の符号を何として扱ってるんだろうね。 -
算術演算をする (( )) ですが、中でプロセス置換 `` や $() を使うと挙動に違いが出ます。
$ cat hoge
0]1
$ (( i = `cat hoge | cut -d] -f2` ))
zsh: command not found: i
$ (( i = $(cat hoge | cut -d] -f2) ))
$ echo $i
1
zshでは``と$()は同一なものではないのですか?bashだと両者は同じになるのようですが。 -
>>80
知らんかったけど、backquoteじゃなくて、$() 使った方がいいよ、って言うてはるね
backquoteはネストできん。などなど…
http://zsh.sourcefor...zshguide05.html#l117 -
$() 使った方がいいと思うけど、それは別として↓の結果を見ると
bash は ((...)) をとにかく arithmetic evaluation として解釈して、
zsh は arithmetic evaluation として解釈できるときだけしてるように見えるね。
% bash -c '(( echo [ ))'
bash: ((: echo [ : syntax error: invalid arithmetic operator (error token is "[ ")
% zsh -c '(( echo [ ))'
[
`...` の中にあるんだから解釈できるとは思うけど置換前に判別してるのかね。
man には More precisely, `((...))' is equivalent to `let "..."'. ってあるしバグなんじゃない? -
% zsh -c '(( `echo "["|echo 1` ))'
zsh:1: command not found: 1
% zsh -c '(( `echo "[]"|echo 1` ))'
% zsh -c '(( `echo "("|echo 1` ))'
zsh:1: command not found: 1
% zsh -c '(( `echo "()"|echo 1` ))'
って感じで ( でも出るよ。
括弧の対応がとれてないとなるのかもね。多分それだけじゃないけど。
バグなら法則性を求めてもあんまりしかたない気はするけど。 -
/etc/z*を読み込まないようにする設定ってユーザ権限の範囲でできない?
-
「そう思うんならお前がパッチ書け」で終了
-
それおもしろくないからやめた方がいいよ。
-
>>85
~/.zshenv の中で setopt NO_GLOBAL_RCS すれば一番最初に読まれる zshenv 以外はスルーされるんじゃね -
zsh-5.0.0(4.3系でも一緒でした)で補完候補に日本語ファイルがある場合、 文字化けするんじゃなくて$'\202'$'\240'.txt の様に文字コードで表示されて しまうのですが、原因に心当たりがある方いらっしゃいましたらご教示下さい。
-
configureで--enable-multibyteされなかったとか?
-
レスありがとうございます、環境をもうちょっと詳しく書きますね。
Androidでmultibyte-enableなzshを動かすべく、arm-linux上でstaticに
ビルドし、正常動作するバイナリを作成しました。これをAndroidに持って
来ると一見普通に動いている様なんですが、補完候補の日本語がコード
表示されてしまうんです。原因何だと思いますか? -
setopt printeightbit
-
標準エラー出力のみをパイプに出力するには
$ command 2>&1 >/dev/null | command2
とすればいいようですが、これの仕組みが分かりません。
なんで 2>&1 としてるのに標準エラー出力は/dev/nullに行かないのですか? -
>>93
何回目のFAQだよw
2>&1を実行している時点で標準出力(パイプ)が標準エラー出力にコピーされる。
(以後、2はパイプを指す)
次に、>/dev/null で標準出力が/dev/nullに変更されるが、
これはすでに2にコピー済みの標準エラー出力には関係ない。 -
>>93
zshのバグです。でも便利なのでずっと直されてません。 -
>>95
え? -
おまえらってzedつかってる?
-
x="a b c"; for i in $x; do echo $i; done
ってやると、ash/bash だと、
a
b
c
って出ますが、zsh だと、
a b c
となってしまいます。
ash/bashと同じ動きをさせるにはどうすればいいでしょうか? -
>>98
set -o shwordsplit
↑今すぐ読める無料コミック大量配信中!↑