トップページunix
981コメント260KB

zsh その4

レス数が950を超えています。1000を超えると書き込みができなくなります。
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リンク
0891名無しさん@お腹いっぱい。2007/11/24(土) 09:12:09
unsetopt glob とか頑張れば出来るかもしれないけど
たぶん自分が困るだけだからやめた方がいいよ
0892名無しさん@お腹いっぱい。2007/11/24(土) 11:48:10
>>889
マルチすんなゴミクズ
0893名無しさん@お腹いっぱい。2007/11/24(土) 13:46:31
>>892
bashとzshで聞き分けただけじゃないか。
じゃ、ここでbashも聞けって事か?それは違うでしょ。
0894名無しさん@お腹いっぱい。2007/11/24(土) 17:37:36
SQL関連のスレで聞けばいいんじゃね?
0895名無しさん@お腹いっぱい。2007/11/24(土) 18:29:21
>>894
zshの補填機能を使いたいって話でしょ。
それじゃ意味なくね
0896名無しさん@お腹いっぱい。2007/11/24(土) 21:36:38
そうはいっても元の質問に意味がないからな
0897名無しさん@お腹いっぱい。2007/11/26(月) 02:15:23
>>890-896
おまいらスゲーよ。
煽りにしか見えないけど、かなりレベル高い話してるってのはわかる。

早く、このスレで煽ったり、釣ったりできるようにzshを精進するよ。
0898名無しさん@お腹いっぱい。2007/11/26(月) 02:52:22
ぜんぜんすごくないよ。
ウンコするときオシッコ出るのやめさせる方法ありますか?
って質問に
ヒモでしばっとけばとか
チンコを便器からはみ出しとけばとか
そんな類のレスしてるだけだよ。
0899名無しさん@お腹いっぱい。2007/11/26(月) 03:20:20
a="-F -l"
ls $a
とすると
ls "-F -l"
と展開されてしまうようですが、
ls -F -l に展開させるにはどうすればいいでしょうか?
0900名無しさん@お腹いっぱい。2007/11/26(月) 08:42:23
>>899
>>881
09018992007/11/26(月) 09:19:40
>>900 ご親切にありがとうございます。
0902名無しさん@お腹いっぱい。2007/12/16(日) 20:28:34
質問です.
{0..9}と同じように,{a..f} を a b c d e f に展開することってできますか?
0903名無しさん@お腹いっぱい。2007/12/16(日) 20:42:12
{a-z} で我慢してくれ

setopt brace_ccl
0904名無しさん@お腹いっぱい。2007/12/17(月) 00:18:08
>>902
bash -c 'echo {a..f}'
0905名無しさん@お腹いっぱい。2007/12/18(火) 21:35:32
>>904
ども.
なんだかんだいっても Bash の方が素直で便利そうですね.
Linux 標準なのも納得.
0906名無しさん@お腹いっぱい。2007/12/18(火) 23:36:22
iya,sono rikutu ha okasii
0907名無しさん@お腹いっぱい。2007/12/19(水) 00:34:53
結論を先に決めてる香具師に何をいっても無駄
0908名無しさん@お腹いっぱい。2007/12/30(日) 16:30:57
>>889
rlwrap rlfe とかじゃダメで zle を使いたいってこと?
もういないか。

# rlwrap rlfe だと zle レベルの補完ができないのかな。
0909名無しさん@お腹いっぱい。2008/01/02(水) 20:55:53
誰か _nkf 持ってない?
公開願い
0910名無しさん@お腹いっぱい。2008/01/05(土) 18:00:44
>>909
最近のには対応してないけど…

#compdef nkf
typeset -A opt_args
local context state line
_arguments -C -s -S \
  '(-u)-b[Output is bufferred (DEFAULT)]' \
  '(-b)-u[Output is unbufferred]' \
  '(-s -e -w)-j[Outout code is JIS 7 bit (DEFAULT)]' \
  '(-j -e -w)-s[Outout code is Shift JIS]' \
  '(-j -s -w)-e[Outout code is AT&T JIS (EUC)]' \
  '(-j -s -e)-w[Outout code is UTF-8]' \
  '(-S -E -W)-J[Input assumption is JIS 7 bit]' \
  '(-J -E -W)-S[Input assumption is Shift JIS]' \
  '(-J -S -W)-E[Input assumption is AT&T JIS (EUC)]' \
  '(-J -S -E)-W[Input assumption is UTF-8]' \
0911名無しさん@お腹いっぱい。2008/01/05(土) 18:01:10
  '-t[no conversion]' \
  '(-o_)-i_[Output sequence to designate JIS-kanji/ASCII (DEFAULT B)]' \
  '(-i_)-o_[Output sequence to designate JIS-kanji/ASCII (DEFAULT B)]' \
  '-r[{de/en}crypt ROT13/47]' \
  '-h-[hirakana-katakana conversion]::(1\:hirakana\-\>katakana 2\:katakana\-\>hirakana 3\:both)' \
  '(-v --help)'{-v,--help}'[Show this usage]' \
  '(-V --version)'{-V,--version}'[Show version]' \
  '(-M)-m-[MIME decode]::(B\:base64 Q\:quoted N\:non\-strict 0\:no\ decode)' \
  '(-m)-M-[MIME encode]::(B\:base64 Q\:quoted)' \
  '-l[ISO8859-1 (Latin-1) support]' \
  '(-F)-f-[Folding: -f60 or -f or -f60-10 (fold margin 10)]:fold width:' \
  '(-f)-F-[Folding: -f60 or -f or -f60-10 (fold margin 10) F preserve nl]:fold width:' \
  '-Z-[Convert X0208 alphabet to ASCII  1: Kankaku to space, 2: 2 spaces, 3: Convert HTML Entity]::(1 2 3)' \
  '-X[Assume X0201 kana in MS-Kanji]' \
  '-x[Preserves X0201]' \
  "-B-[Broken input  0: missing ESC, 1: any X on ESC-\[($\]-X, 2: ASCII on NL]::(0 1 2)" \
  "-O+[Output to File (DEFAULT 'nkf.out')]:out file:" \
  '-I[Convert non ISO-2022-JP charactor to GETA]' \
  '-L-[line mode u:LF w:CRLF m:CR (DEFAULT noconversion)]::(u w m)' \
  '--overwrite[Overwrite original listed files by filtered result]' \
  '*:argument:_files' \
  && return 0
09129092008/01/06(日) 04:03:33
>>910
thx.

ちょっと追加してみた。

% < _nkf | gzip | base64
H4sIAALUf0cAA6VV33PaRhB+91+x47YGtWwtcOq4eugMJpDiQJwYnHgqeTyHOKEz0knRnYw9nvzv
2RNIwhQ/dPoi3Y/v29vd+3bvJz+J0zkPQC6DA/2UcsU1YBeSVN+xbKEOosRnEfiJ1PxRg9JMc4iE
5AdmO4+51AqwB0jfCXgHAI0m5hbO3Mtcp7kGoWCWBwHPMj6H5rv+oHs9mlq3jRI7szDfwuayQtcY
ss0BVxbeG2RCSD+ZcwO/GE7gLcyE3mf6vqSpXdokFIE25BdgVYD5Lrg7PZoWBzX71z1rl8EtXO0y
rqcDPKuBE8A+4FcLL9yhNHEypfI41SKRL2KoGRclY7KXscf9C5N+w+jvZbwWw5rWt/DrXtqLQFC7
MjFKeOCZIkBtJbmzUNyVt6j4t5xLn4NOYM6VWEijGTocl0zei+PupDccVvcF51vuCDKU/H9DmLnP
c37M5Xc/e0o1XF1O2yfHb95W+yG6ocgYmWFkSxeD7cgcp9n2nBLiofdXhep4Tjk26yUGTjxnlujQ
qmJ5AMSQR6nVeMaH1nr8veFOwmQFOjRSV2zB69i/EH5zvqF8aVXTkvWvvI8tjNEdD8d9yo8Rn3H8
nBxhip++gc+e8y1PNNXdR8+RifRQ6Uz4Gmwz9Tac2uPYwvHGHKX9dXMlAyN3OLk8O/vjT2xDc8S0
kNi2QOVpmmRbah5YGKA7SKK5kAsHMDi1Icnov/6e2ti2oRnQPsTUVISEtm3dOsXCSsx16FSmAgsH
/9kUDCDNqLFlDxxktM8w/oNur7h+DTd2xz4DFqUhm1EvJO2tdQZtBz4wuWTL3CyqlPm8BR0HOuux
asGJA6WVv6fjEfSlFvqpUBOhTqq83bhdU2a8OKsNhX7I1fEEPxhhVzJ9dD9t/FZraLVzju55liw5
VWlRtmA7EAulKCvQn/Raxlkmn+AGqJBpAT23+bN3izeFx+uAaOfjyDhnA7m3ce4QL38r64+iHIiI
1xXWoEfid2p0Dbod0+8C2nUONy4NqwyS1ICEgR2708GLT+CHLGO+phsii+/7024tDR9wZOG8opqX
BWYZZ0tlwKNBDZ0XUP81aO9qB+xbOEK3QMWmL+fOaAArx+Agpl8dlkzq0rdMQnJYQVwlBH2WYpHm
6uyQPwILNM+g4TRuD0tgnkWvA38pgQ1EmccmKTvgaymKF6S3zheRrjg9haYFbiJ7RqJgGhnpISbE
WmVCc2oQl+WYCkGQ7unNjoQytW8uid7gJzMgm7RCmsqjrfpcUOdZ5Fwp03cWrc2EjL43f2pWfKOy
oidsaL865fvv3BVHrNePjsi8zjMJ9sEPBwL4tVwIAAA=
09139092008/01/06(日) 04:07:01
と、使うぶんには関係ないけど、3行目の
local context state line
って何のためにあるの?
0914名無しさん@お腹いっぱい。2008/01/06(日) 11:45:09
>>913
作った時にはなんかあった気がしたけど今は意味ないね
0915名無しさん@お腹いっぱい。2008/01/12(土) 00:10:08
なるほど
0916名無しさん@お腹いっぱい。2008/01/13(日) 00:19:35
ver. 4.3.2 -> 4.3.4 したら
${#word} の count が bytes から chars になってる。

>>846 にある
select-word-style shell
が multibyte 文字列でもよう動くわ。
グレート。
0917名無しさん@お腹いっぱい。2008/01/26(土) 06:25:38
emacs の shell-modeでC-iの補完候補が他のウィンドウに表示されちゃうんだけど、そっちに出ずにシェルモードのウリンドウに出るにはどうしたらいいですか?
0918名無しさん@お腹いっぱい。2008/01/26(土) 21:00:26
emacs スレで
0919名無しさん@お腹いっぱい。2008/01/26(土) 21:01:45
すいません、zshのときだけの現象だって言うの忘れてました
0920名無しさん@お腹いっぱい。2008/01/28(月) 03:10:29
bash でもなりますが…。
shell-mode の補完は shell-mode の中だけで完結してそう。
0921名無しさん@お腹いっぱい。2008/01/28(月) 21:27:09
>>920
シェル換えて試したらおっしゃる通りでした
記憶違いをしていたようです
ご迷惑おかけして申し訳ありませんでした
0922名無しさん@お腹いっぱい。2008/01/31(木) 13:32:04
CDPATHを設定していると、ファイル名補完したとき
カレントディレクトリ内の候補とCDPATH内の候補が混ざって
アルファベット順に表示されるのですが、カレントディレクトリ内のものを
優先させるにはどうすればいいでしょうか?
0923名無しさん@お腹いっぱい。2008/01/31(木) 14:00:52
>>922
zstyle ':completion*:path-directories' ignored-patterns '*'
09249222008/01/31(木) 15:16:14
>>923
候補の順序が変わるという動作を期待していたので、ちょっと違いますが
これでもよさそうです。ありがとうございます。
0925名無しさん@お腹いっぱい。2008/02/09(土) 03:12:18
ターミナルで
#yes
って入力するとzsh: command not found: #yes
って言われるんですけd、zshって先頭#つけてもコメントとして
扱ってくれないんですか?
コメントをコマンドとして入れたい場合はどう入力したらいいでしょうか?
0926名無しさん@お腹いっぱい。2008/02/09(土) 03:14:41
>>925
コメントはコマンドとして入力しない。

シェルスクリプトとシェルの区別が出来るようになってからまたおいで。
0927名無しさん@お腹いっぱい。2008/02/09(土) 03:26:56
bashだとできるんだよね
実行しとうと思ったけどscreen起動し忘れてたときとか
#コマンド
でコマンド履歴に入れといてscreen起動→履歴からコマンド呼び出して
コメントはずして実行、とかできて便利だったんだが
0928名無しさん@お腹いっぱい。2008/02/09(土) 03:49:49
>>927
echoでもしとけば?

screen落さないし、新しいコマンドなんてそんな度々使わないし、
自分ならそういう場合は、screen上げてからコマンドライン打ち直すと思う。
0929名無しさん@お腹いっぱい。2008/02/09(土) 04:31:00
setopt interactivecomments
0930名無しさん@お腹いっぱい。2008/02/09(土) 10:09:07
コマンド一個憶えたいだけならechoを前につけるかな。
そうでないときは
cat >/dev/null <<EOF
my comments
EOF
とか、たまにやる。
0931名無しさん@お腹いっぱい。2008/02/09(土) 10:21:39
>928
分かってる人にはそれでいいけど
分かってないひとは echo をコメント扱いして
`` とか $() に気づかなかったりするかもしれない
0932名無しさん@お腹いっぱい。2008/02/09(土) 10:22:11
>>930
無駄過ぎる。ネタだろw

ふつーこれだろ↓
if false; then
my comments1
my comments2
my comments3
fi
0933名無しさん@お腹いっぱい。2008/02/09(土) 10:29:10
>>932
俺の目には五十歩百歩に見える・・・・
0934名無しさん@お腹いっぱい。2008/02/09(土) 10:41:06
>>933
明らかな違いがある。

>>930 では、hereドキュメントの一時ファイルが作られ、
外部コマンドcatが実行されてしまう。

一方、>>933 では何ら無駄なコマンドは実行されないし、
無駄なファイルも作られない。完全なコメントアウトになる。
0935名無しさん@お腹いっぱい。2008/02/09(土) 10:44:56
>>934
一時ファイル・・・だと・・・・
0936名無しさん@お腹いっぱい。2008/02/09(土) 11:03:22
>>935
here documentで一時ファイルは作られるよ。zshでも。
作成されてすぐunlink()されるから、lsでは見えないけど。
lsofするとrm後のファイルをオープンしてるのがわかる。
0937名無しさん@お腹いっぱい。2008/02/09(土) 11:27:03
>>932
コメントの中身が不用意だと解釈される危険性がある時点で絶対的に劣るなあ。
Cの#if 0 じゃあるまいし、どこが完全なコメントアウトなんだ?
0938名無しさん@お腹いっぱい。2008/02/09(土) 11:59:47
>>930 は一時ファイル作る時点で絶対的に劣る
0939名無しさん@お腹いっぱい。2008/02/09(土) 12:03:03
>>938
それで何がこまるんだよ・・・・
0940名無しさん@お腹いっぱい。2008/02/09(土) 12:07:55
>>937
コメントの中身が不用意だと解釈される危険性があるのは
>>930 も同じw
0941名無しさん@お腹いっぱい。2008/02/09(土) 12:13:50
うむ、CDATAも中身が不用意だと解釈される危険性があるしな。
0942名無しさん@お腹いっぱい。2008/02/09(土) 12:38:28
>>937
では、コメントの中身が不用意でも解釈される危険性がない
↓を安心して御実行くださいwww


cat > /dev/null << EOF
echo ${HOGE-`rm -rf /`}
EOF
0943名無しさん@お腹いっぱい。2008/02/09(土) 20:31:22
ESC-q じゃだめなの?
0944名無しさん@お腹いっぱい。2008/02/09(土) 22:01:52
zcursesなんてどういうときに使うんだろう…
~/.zshrcがない時に起動した際のウィザードが変るのかな?
0945名無しさん@お腹いっぱい。2008/02/10(日) 04:15:46
echo でヒストリーにメモしとくのよく使うけど
パイプとかリダイレクト入ってると危険なんだよな。
0946名無しさん@お腹いっぱい。2008/02/10(日) 08:28:23
そんなに気にするなら何も返さないコメント用の
スクリプト作ってパス通しとけよwwwww
0947名無しさん@お腹いっぱい。2008/02/10(日) 09:30:59
>>946
何も返さないコマンドなら : とか true とかすでにある。
自分で作る必要なし。それでもパイプとかリダイレクトの問題は回避できない。
おまえ、>>945 の言ってる意味も理解できてないな。

まとめておくが、コメントアウトとして >>930 は論外。
>>942 が言うように、コメントアウトにならない場合があるし、
それ以前にcatとtempfileが無駄。

>>932 が最善だな。
あと、これと同様の別解として、

: || {
my comment1
my comment2 > リダイレクトOK
my comment3 | パイプもOK
}

と言うのも使える。これの方がタイプ量が少ないし、{ } の対応でわかりやすい。
0948名無しさん@お腹いっぱい。2008/02/10(日) 09:53:52
えっと…
目もしたいときはエディタで hoge.memo をつくって残してる…けど…
0949名無しさん@お腹いっぱい。2008/02/10(日) 12:43:38
目で覚える
0950名無しさん@お腹いっぱい。2008/02/10(日) 12:59:15
C++の//で決着ついてる。コメント化/外しはエディターに任せる。
0951名無しさん@お腹いっぱい。2008/02/19(火) 20:46:36
プロンプトに %~ でPATH表示してるとき

例えば

ls -l /home/hoge/foo
lrwxr /home/hoge/foo -> /home/hoge/piyo/bar

こんなような状況で

cd /home/hoge/foo するとプロンプトのPATH表示が
~/piyo/bar になるんだけど
~/foo にする簡単な方法ってあります?

0952名無しさん@お腹いっぱい。2008/02/19(火) 22:46:34
CHASE_LINKS が true になってるんじゃないの
0953名無しさん@お腹いっぱい。2008/02/20(水) 12:23:06
今更遅いだろうがコメントは INTERACTIVE_COMMENTS というのがあったぞ
0954名無しさん@お腹いっぱい。2008/02/20(水) 20:31:38
>>929に書いてあるじゃねえか
0955名無しさん@お腹いっぱい。2008/02/20(水) 22:56:08
>>952
それでした。知らなかった。サンクス。
0956名無しさん@お腹いっぱい。2008/02/21(木) 04:59:37
cd や pushd には -L や -P のオプションがあるから
エイリアスにしておいてもいいが、普通は挙動を揃えるか。
0957名無しさん@お腹いっぱい。2008/02/23(土) 05:18:20
RPROMPTを、表示するスペースが十分あるときには
いろいろ表示、あまりなくなってきたら
表示する情報を減らすようにしたいのですが、
(たとえば「pwdのフルパス+時刻」を時刻のみにするとか)
どうやったらいいのでしょうか。
0958名無しさん@お腹いっぱい。2008/02/23(土) 21:55:58
>>957
http://0xcc.net/blog/archives/000032.html

PROMPT='%n@%m:%(5~,%-2~/.../%2~,%~)%#

を変えればいいと思うのだけど
0959名無しさん@お腹いっぱい。2008/02/23(土) 23:35:41
% echo $ZSH_VERSION
4.3.2
% foo() { echo $1[1,3] }
% foo aaaaa
foo: no matches found: aaaaa[1,3]
% bar() { local S=$1; echo $S[1,3] }
% bar aaaaa
aaa

仕様?
0960名無しさん@お腹いっぱい。2008/02/24(日) 01:01:10
foo() { echo ${1[1,3]} }
0961名無しさん@お腹いっぱい。2008/02/24(日) 01:36:03
S と 1 でナニが違うの?
変数名規則かなにかで特殊ってことかな?
09629592008/02/24(日) 02:07:29
>>960
ありがと
0963名無しさん@お腹いっぱい。2008/03/02(日) 02:52:45
cygwin+zshを使ってるんだが,補完候補を出すのが重すぎるんで,候補をもっとサクっと出したい.

ネットワークを見に行ってるせいだと思うんで,ローカルのみで候補出させたいんだけど,
そんなことできる?
0964名無しさん@お腹いっぱい。2008/03/02(日) 02:57:25
Network Interfaceをdownさせる。
0965名無しさん@お腹いっぱい。2008/03/02(日) 06:03:26
>>964
それじゃネットつながんないじゃん;

なんか今はやたら軽く表示されるようになった.
ssh で補完動かしても表示しますか?って聞かれまでの時間が一瞬になった.
聞いた時は,1分くらい動きなく固まってたんだが...

なんかよくわからんが,ありがとう.


でも,zshの補完機能をbash程度にする正攻法があったら教えてください.
0966名無しさん@お腹いっぱい。2008/03/02(日) 06:54:14
bash使えばいいやん
0967名無しさん@お腹いっぱい。2008/03/02(日) 10:18:53
ちんちん sh! sh! sh!
0968名無しさん@お腹いっぱい。2008/03/02(日) 15:43:32
>>966
ですよねー.

zsh のヒストリ機能やパスの ** 指定が捨てられないので,騙し騙しやっていきます.
0969名無しさん@お腹いっぱい。2008/03/03(月) 07:20:51
sshの補完関数をいじって簡単なものにして
そっち読むようにしたら?
0970名無しさん@お腹いっぱい。2008/03/03(月) 07:23:38
>>547 以降にやり方がかいてある
0971名無しさん@お腹いっぱい。2008/03/06(木) 03:25:17
プロンプトにディレクトリを表示している時、
ある変数の値がCWDと一致してしまった場合に
プロンプト表示がその変数名に置き換えられてしまうのですが、
これをやめさせられないでしょうか。
0972名無しさん@お腹いっぱい。2008/03/16(日) 17:46:55
こんなんなるんだ。PROMPT/RPROMPT の %~ だよね? unhash -d foo_var てのは期待してないと思うから %~ -> %d かな? ~ 表示が /home/user になるけど。
0973名無しさん@お腹いっぱい。2008/03/18(火) 14:46:43
zshはカオスだからfishに改宗しようかと考えてる
0974名無しさん@お腹いっぱい。2008/03/29(土) 02:03:47
_pactl とかあります?
0975名無しさん@お腹いっぱい。2008/03/31(月) 22:45:52
ps コマンドの補完関数ってないの? 誰か書いて
0976名無しさん@お腹いっぱい。2008/04/04(金) 00:27:45
zshがcoreはきやがった。シェルがcoreはいちゃだめじゃん
0977名無しさん@お腹いっぱい。2008/04/04(金) 12:53:42
coreも吐かずに死なれるよりは……
0978名無しさん@お腹いっぱい。2008/04/06(日) 20:59:41
割と落ちるよね。 補完で。
深い path の補完で暴走気味なのも困ったもんだ。
困るだけだけど。
0979名無しさん@お腹いっぱい。2008/04/06(日) 21:00:12
>>975
標準であるような。
0980名無しさん@お腹いっぱい。2008/04/07(月) 04:22:39
>>979
まじ?
/usr/share/zsh/4.3.4/functions/_ps はポストスクリプトの補完で
ps -[TAB] すると No matches for: `file' と言われちゃう。
0981名無しさん@お腹いっぱい。2008/04/07(月) 04:39:27
・・・
レス数が950を超えています。1000を超えると書き込みができなくなります。