zsh その7

1名無しさん@お腹いっぱい。
垢版 |
2012/05/24(木) 16:34:43.03
zshについて語るスレ

http://www.zsh.org/
http://zsh.sourceforge.net/

・過去ログ
zsh その6
http://toro.2ch.net/test/read.cgi/unix/1229010860/
zsh その5
http://pc11.2ch.net/test/read.cgi/unix/1212677877/
zsh その4
http://pc11.2ch.net/test/read.cgi/unix/1107342206/
zsh その3
http://pc5.2ch.net/test/read.cgi/unix/1080002786/
zsh入門 パート2
http://pc3.2ch.net/test/read.cgi/unix/1036324177/
zsh入門
http://pc.2ch.net/test/read.cgi/unix/990283346/
410名無しさん@お腹いっぱい。
垢版 |
2015/05/25(月) 00:11:47.31
$を書くのを忘れてた。
411名無しさん@お腹いっぱい。
垢版 |
2015/05/25(月) 05:02:29.03
scriptからだとこうしないと表示できない。
echo \[1]
echo '[2]'
echo "[3]"
promptからだと大丈夫、さらに1だけ表示が違う。
echo [1]
echo [2]
echo [3]
2015/05/27(水) 23:33:40.25
setopt noglob とかしてんじゃないの
413名無しさん@お腹いっぱい。
垢版 |
2015/05/28(木) 00:04:41.47
>>412
ありがとうございます。noglob設定したら確かに直りました、
確認した所1ってfileが転がってました。

しかしよくすぐ気付くものだと感心しますな、最初の配列はきっと特別なんだろうな、
何かしでかしてんだろうなと覚書してまたわ。
414名無しさん@お腹いっぱい。
垢版 |
2015/05/28(木) 00:21:08.64
そっか、そもそもglobというのが頭の中からすっぽり消えてた。
恥ずかしながら。出直してきます。
2015/06/07(日) 09:29:46.03
zsh-5.0.8のprintfで-フラッグが効かないんだけど、他にもなる人いる?
こんな感じ。

$ builtin printf '%-20s' 'hoge'
       hoge

$ command printf '%-20' 'hoge'
hoge
2015/06/07(日) 16:44:20.74
zsh 5.0.7 (amd64-portbld-freebsd8.4) でもおなじ
2015/06/07(日) 17:33:24.91
>>416
あれ、おかしいな?俺は5.0.7まで正常(左詰めされる)だったんだけど…。
ちょっとrevertしてみるわ。
2015/06/07(日) 17:45:27.15
やっぱり5.0.7だと大丈夫っぽい。
パッケージ作成時の設定も変わってないみたいなのになんでだろう。

$ zsh --version
zsh 5.0.7 (x86_64-unknown-linux-gnu)

$ zsh -c 'builtin printf "%-20s" "hoge"'
hoge

$ zsh -c 'command printf "%-20s" "hoge"'
hoge

とりあえずは5.0.7で様子見することにします。
419416
垢版 |
2015/06/07(日) 19:53:10.73
ごめん、ちゃんと読んでなかった。うちでも、5.0.7だと正常(左詰めされる)でした。
zsh 5.0.8 (amd64-portbld-freebsd8.4) だと右詰になります。
2015/06/07(日) 20:46:57.13
>>419
どうもです。となるとzshのバグですかね。
どなたかzsh-usersに報告されてました。

http://www.zsh.org/mla/users/2015/msg00609.html

というわけで、修正が来るまで?待つことにします。
お騒がせしました。
2015/07/11(土) 02:35:34.51
select ループで選択候補にナンバリングされるけれども、この表示方法は変えられないのかな
桁の変わり目に表示がずれるのがどうしても気になる
ファイル選択に select を使うのもあまり便利とは言えないけど…
こういうときは皆どうしてるのかな
2015/08/06(木) 12:04:34.75
teeみたいなことをやるリダイレクトで
ls > /tmp/ls.txt > /dev/sdtin
ってできるけど、なぜ stdout じゃなくて stdin に流すのでしょうか?
なんとなく stdout に流したくなるのですが
2015/08/06(木) 18:57:00.41
/dev/stdoutに すると端末に表示されずに、/tmp/ls.txt にもう一度書きこまれるのでは?
端末に結びつけられていれば /dev/stdin でも /dev/stderr でもいいが
どうせスペシャルデバイスを使うのなら /dev/tty の方がわかりやすいかもね
424名無しさん@お腹いっぱい。
垢版 |
2015/08/08(土) 09:23:44.01
zsh使うくらいなら最初からbashだけ使ってた方がいい。
将来、なんかの拍子にbashの仕事が入ってくるかもしれない。
その時にbash使ってましたアピールは大きい。
zsh使ってましたとか何のアピールにもならない。
もう一度言う、たとえ趣味でもbashを使え。
2015/08/09(日) 12:30:00.64
>>422
うちのzsh 5.0.8ではls.txtは作られても画面には何も表示されなかったんだが、オプションか何か?
2015/08/09(日) 13:48:35.32
>>424
マゾなの?
2015/08/09(日) 21:29:45.09
いえコピペです
2015/08/09(日) 23:01:50.40
>>425
multios
2015/08/10(月) 20:02:26.48
>>428 thx
2015/08/28(金) 01:03:10.36
firewalldの補完ファイルどっかに落ちてない?
2015/08/28(金) 19:37:38.48
>>422
ls > /dev/stdout > /tmp/ls.txt
とか
ls >&1 > /tmp/ls.txt
でいいんじゃないかな
2015/09/01(火) 23:45:26.91
5.1
http://sourceforge.net/projects/zsh/files/zsh/5.1/
433名無しさん@お腹いっぱい。
垢版 |
2015/11/10(火) 14:23:27.38
hosh
2015/11/28(土) 12:34:47.43
hash
2015/11/29(日) 23:12:37.76
初心者で申し訳ないが#や$から左のホスト名とかユーザー名、ディレクトリはどこらへんいじれば変えられる?
2015/11/30(月) 00:44:08.44
>>435
zsh プロンプト でググればやりかたが見つかる。
.zshrc に書くらしい。
2015/11/30(月) 01:05:55.56
vim .zshrcすると
operation not permittedって出ます
2015/11/30(月) 12:31:44.73
.の後にスペースを入れちゃ駄目だよ
2015/11/30(月) 20:22:32.07
.の後にスペースを入れたように見えるけど実際には.を使ってたりする
2015/12/01(火) 10:07:16.72
ホントだw 気付かんかった
2015/12/01(火) 14:39:08.07
ネタだろ
2015/12/01(火) 19:18:38.09
じゃあ俺、mkdir .zshrc して帰るから(鬼畜)
2015/12/02(水) 01:15:42.82
じゃ俺はそれをrm -rf . zshrcで消しとくね
2015/12/02(水) 01:50:09.44
>>443
怖いことするな
ls .
2015/12/02(水) 09:45:55.28
知ってて言ってんでしょ
2015/12/02(水) 13:46:26.23
知ってて知らん言うのは犯罪やぞ
2015/12/06(日) 19:33:09.46
zsh 5.2
2015/12/18(金) 20:00:31.04
(( )) 内の浮動小数変数のデフォルト型をdoubleにする設定ってないですか?
2016/01/08(金) 07:16:05.45
zsh-5.0.8 → zsh-5.1.1(zsh-5.2 も同様) と上げたら、
menu-complete → reverse-menu-complete で
reverse-menu-complete が確定→補完開始するようになった。(バグ?)
zsh-5.0.8 は確定せずに候補選択の逆順移動をする。

zsh-5.0.8 と同じ動きにする方法ってある?

>>448
setopt FORCE_FLOAT
でどうでしょう。

と思ったら浮動小数変数のデフォルト型ですか。
何もしなくても double では?
表示の有効桁数のことですか?
450449
垢版 |
2016/01/11(月) 16:38:07.30
compinit するとなるようですね。もっというと
zle -C reverse-menu-complete .reverse-menu-complete _main_complete
でなる。(_main_complete でなくても。)

zsh-5.0.8 でも compinit すると complete-word, menu-complete とかで
新しい補完を開始してしまう。
ので、reverse-menu-complete 以外は前から問題があったのかな?

zle -C 前の reverse-menu-complete や .reverse-menu-complete なら
新しい補完を開始することはない。
が、menu completion 中以外について、
当然 _main_complete は呼ばれないし、なぜか compinit なしの補完もしない。

menu completion 中しか reverse-menu-complete を使ってないので
姑息ながら、とりあえず .reverse-menu-complete で凌ぐ。
2016/01/15(金) 16:56:35.55
seq 1 10 | echo `grep 5` `grep 3`
bashだと5が表示されるけど、zshだと完全に固まるね(^Cも^Zも受け付けない)
2016/01/15(金) 20:13:15.23
5.1.1では^Cで止まる。
2016/01/17(日) 23:54:19.24
5.2 では

% seq 1 10 | echo `grep 5` `grep 3`
grep: (標準入力): 入力/出力エラーです
3<eof> ← 入力
3

となる。けど

% zsh
% seq 1 10 | echo `grep 5` `grep 3`

でなぜか固まるね。
↓ は期待通りかな。

% zsh -c 'seq 1 10 | echo `grep 5` `grep 3`'
5<eof> ← 入力
3<eof> ← 入力
5 3

bash とは多分仕様が違うけど、
bash は POSIX compliant なのかな?
正しく動けば zsh の方が使い易そうだけど。
2016/02/14(日) 06:31:08.70
hist_find_no_dupsはどういう意味なんでしょうか?
これを設定していても、Ctrl-pを繰り返し押したとき同じコマンドが何回も出てきます。
2016/02/20(土) 07:22:20.45
Ctrl-rで検索したとき一度出たものと重複するものをスキップしてくれますよ。
2016/02/20(土) 12:37:09.21
なるほど、ありがとうございます。
457名無しさん@お腹いっぱい。
垢版 |
2016/03/12(土) 00:34:52.65
http://d.hatena.ne.jp/ino46/20110627/1309149506
このzsh限定のselectメニューの文字化けどうすればいいんだろうか?
458名無しさん@お腹いっぱい。
垢版 |
2016/03/15(火) 20:48:15.31
selectの代わりにpercol使うことにした
459名無しさん@お腹いっぱい。
垢版 |
2016/03/31(木) 14:16:01.37
そういえば.zhistoryも日本語が文字化けしてた
history-all等の方で取り出すのは文字化けしないから
困った事にはならなかったが

bash_historyの方は化けないから
文字化けは他でもまた偶然直面しそうだ
直し方両方分からないし
2016/04/02(土) 02:15:04.35
なんかzshがWindowsに対応とかニュースになってるらしいけどマジ?
2016/04/02(土) 17:24:11.62
bashやろ
2016/04/02(土) 20:09:45.83
ありゃ、bashか
でもそれでもすごいことだな
2016/04/03(日) 00:01:44.30
すごいよ。WindowsでUbuntuのバイナリ互換するんだもんな
zshも動くよきっと
2016/04/03(日) 00:03:01.83
今でも動くけどな
Windows7の人はxp-modeで試せばよい

http://unix.oskp.net/sua/windows_zsh.html
2016/04/04(月) 03:22:03.43
>>459
~/.zsh_historyのエンコーディングがLatin1っぽい
466名無しさん@お腹いっぱい。
垢版 |
2016/04/04(月) 09:10:38.50
>>465
nkf で utf-8 に変更しても駄目だったから
zshから書き出すまでの方見ないと駄目かもしれない
2016/04/04(月) 20:50:42.74
>>459>>465>>466
仕様ではないのか
http://www.zsh.org/mla/users/2011/msg00154.html
2016/04/10(日) 04:03:37.50
bashのcdでディレクトリだけ補完する、の下記設定は、zshだとどう書けばよいですか?
complete -d cd

下記でできましたが、自分には不要な設定もたくさんついてくるので、cdのディレクトリ補完だけ単独で設定したいです。
autoload -Uz compinit; compinit
2016/04/10(日) 13:30:00.02
>>468
compctl -/ cd
2016/04/10(日) 20:47:25.28
>>469

できました!
ありがとうございます。
2016/05/11(水) 12:17:56.75
man cdとするとzshではなくbashのビルトインの方が呼ばれるんですがどうしたらいいですか
man zshbuiltinはちょっとめんどい
2016/05/13(金) 00:19:24.36
run-help を使えるようにしておくとか
2016/05/13(金) 19:31:54.87
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
これで補完のとき大文字小文字を区別しないようにしているのですが、
Macで/us<Tab>とすると/Usersが先に出てきてしまいます。
これを/usrが先に出てくるようにしたいです。つまり
入力した文字列と大文字小文字が一致した候補がある場合はそちらを先にしたいのですが
どうすればいいでしょうか?
2016/05/13(金) 22:41:19.11
アルファベットが若い方が優先されてんでしょ
475名無しさん@お腹いっぱい。
垢版 |
2016/05/13(金) 22:43:04.11
マックをやめればすむ話だな
2016/05/14(土) 06:12:53.83
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}'

これじゃダメなんだね?
2016/05/14(土) 20:28:58.04
大文字小文字無視系の設定は、しばらく使ってみないと自分の好みの動作が判らんよな
楽をしようとしてるのに、縛りを少しきつくすると勝手に確定させられて「おいっ!」みたいなことがあるし
2016/05/20(金) 01:08:02.47
oh-my-zshとかprezto使わんのみんな
2016/05/20(金) 01:11:25.06
使わない
適当にググって人の設定パクるほうがいい
2016/05/30(月) 22:12:11.81
俺は最初oh-my-zsh使ってたけど今はantigenで落ち着いたな(´・ω・`)
2016/06/19(日) 19:22:43.33
やったことない(´・ω・`)
2016/06/23(木) 22:14:43.03
.zshrcにfunctionを書いているのですが、readでユーザ入力を待っている時に、ctrl+c、ctrl+d、esc、どれも押しても強制終了できません。

function hoge(){
2016/06/23(木) 22:17:15.86
.zshrcにfunctionを書いているのですが、readでユーザ入力を待っている時に、ctrl+c、ctrl+d、esc、どれも押しても強制終了できません。
ユーザ入力ができて、入力待ち中に強制キャンセルもできるようにするにはどのようにすればよいでしょうか?

function hoge(){
# 入力待ち中に強制キャンセルが何も効かない。。
printf "input: "
read string
}
2016/06/27(月) 20:12:25.69
>>483
function hoge(){
trap 'return 1' SIGINT
printf "input: "
read string
}

これでどうだろう
485483
垢版 |
2016/06/30(木) 00:17:40.19
>>484

ありがとうございます。

ctrl+cのあとにエンターを押せばtrapに補足されましたが、ctrl+cだけではキャンセルされませんでした。。

バージョンはこれでした。zsh 4.3.11 (x86_64-redhat-linux-gnu)

テストで、 trap "echo aaa" SIGINT としたんですが、これ、関数が終わった後も、コマンドライン上でctrl+cすると
aaa
aaa
aaa
...
とtrapが発動するようになりますね。。
とりあえず、 read -k 1 str で1文字入力にすることで、ctrl+cが入力されるとそれでキャンセルされたように見えるのでこれで代用しようかな。
486名無しさん@お腹いっぱい。
垢版 |
2016/07/01(金) 20:45:43.11
>>485
見当違いなアドバイスだが、readに-tつけては
487483
垢版 |
2016/07/07(木) 00:51:28.67
>>486

なるほど。
秒数待ちをするんですね。
そのアイデアはまったく考えてませんでした。
案の一つとして検討させていただきます。ありがとうございます。
2016/08/05(金) 17:35:39.35
ここ最近、履歴の共有ができなくなってしまいました
inc_append_history と share_history は有効にしてます
何が悪さをしてるでしょうか?
zshは5.2です
2016/12/22(木) 11:34:44.60
function定義した中身を表示する方法はありますか?

aliasはwhichで内容を確認できるのですが、functionはwhichで見れず。。
何か他の方法で見れないでしょうか?
490名無しさん@お腹いっぱい。
垢版 |
2016/12/22(木) 16:04:48.16
typeやとあかん?
491名無しさん@お腹いっぱい。
垢版 |
2016/12/22(木) 16:05:32.06
すみません。忘れてください
2016/12/22(木) 20:10:18.20
>>490,491

レスありがとうございます。
すでに違ったとレスいただいていますが、typeコマンド初めて知りましたので一応調べてみたら、functionだとわかるだけでした。
2016/12/22(木) 20:17:52.21
関数定義も普通にwhichで見れると思うけど……

% function foo() { echo hoge; }
% which foo
foo () {
echo hoge
}
2016/12/22(木) 22:09:41.71
whichが置き換わってるんとちゃう?
built-in which
でいける
495489
垢版 |
2016/12/23(金) 00:31:06.34
>>493,494

おお!
その通りでした。
whichをwhichするのは初めてだ。
↓alias登録されてた!

% which which
which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

これでいけました。ありがとうございます。
% builtin which is_exists

続きます。
496489
垢版 |
2016/12/23(金) 00:37:07.30
続きです。

.zshrcと.zshenv見直してもalias登録してないので、どこで設定されてるかぐぐったら
こんなの見つけました。

ttp://d.hatena.ne.jp/BigFatCat/20080601

どうやら下記で設定されてるみたいです。
/etc/profile.d/which-2.sh

これはzshの場合デフォルトで読まれるみたいですが、functionが見れなくなる欠陥whichで書き換えるとか迷惑ですね。。
これを読まないようにする設定とか無いでしょうか?
497489
垢版 |
2016/12/23(金) 00:39:13.07
途中で書き込んでしまいましたすみません。

読まないようにする設定が無ければ、無理矢理感があって気持ち悪いですが unalias which を.zshrcに入れて我慢します。
2016/12/23(金) 00:46:56.65
zshはそんなものデフォルトで入れないよ。冤罪だw
その手のおせっかいはお使いのディストリビューション固有の事情かと。
499489
垢版 |
2016/12/23(金) 00:51:58.22
えええ

centos6です。。
2016/12/24(土) 12:06:57.31
curlで&や?を含むURLを取得するとき、いちいちURLをクォートで囲むのが
面倒なんだが、いい方法ないだろうか?
2016/12/24(土) 14:15:22.12
URLをコピペするときは bracketed-paste-url-magic が役立つ
2016/12/24(土) 14:58:57.32
これか。これってターミナルエミュレータがbracketed pasteに対応してないとダメなんじゃない?
https://github.com/zsh-users/zsh/blob/master/Functions/Zle/bracketed-paste-url-magic
こっちのurl-quote-magicなら自分のとこでも動いた。ともあれthx
http://d.hatena.ne.jp/lurker/20061231/1167570929
2016/12/24(土) 19:54:49.31
自分はその手のコマンドは noglob を使った alias を定義してるな
2016/12/25(日) 07:10:40.66
noglobは&に効かなくね?
2016/12/25(日) 14:42:22.28
>>504
あれ、確かにそうだよなと思って履歴を見返したら、クォート
2016/12/25(日) 14:51:11.09
途中で切れてしまった。履歴を見返したら & を含む場合はクォートしていたw
ごめんち

ブラウザ経由で呼び出す機会が多くなったし、端末に張り付ける場合も
正規化した URL を使ってたから、クォートする機会があまりなかった
自分の記憶が全くに当てにならんのが泣ける
2017/02/08(水) 15:33:37.91
ttps://github.com/ryoppy/cool-peco

を入れたんだけど C-r で cool-peco-history にならんのです。
デフォルトの bck-i-search: になっちまう。

コマンドラインからは cool-peco-history 呼べるし、
alias の hist も呼べる。

$ bindkey | grep peco
"^R" cool-peco-history

になってるし、コマンドラインから

$ bindkey '^r' cool-peco-history

しても変わらず。

「やっちまったなぁ!」を使わず解決策教えてほしいです。
508名無しさん@お腹いっぱい。
垢版 |
2017/03/13(月) 11:52:13.60
pushd +3
とかってしたとき、3つ分スタック全体を循環させるんじゃなくて、
3つ目を取り出してスタックトップに乗せるって挙動なかったですか?
つまり最近使った順にスタックが並ぶ。

昔出来た気がするのですが、今マニュアル見てもなくて。
2017/03/25(土) 16:44:28.09
ulimit -aってやると一番下に
-N 15: unlimited
と出るんですが、この項目は何ですか?
2017/08/16(水) 10:45:32.97
extendedglobがmissing delimiterとか言われてエラーになる
何か他のオプションと衝突するとかある?
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況