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リンク
0352名無しさん@お腹いっぱい。
2006/01/09(月) 20:20:51RPROMPT="%{^[[35%(?..;07)m%}%~%{^[[m%} %{^[[36%(?..;07)m%}%T%{^[[m%}"
こうなるというわけね。
プロンプトなんて久々にいじったから手間取った。
0353名無しさん@お腹いっぱい。
2006/01/09(月) 20:37:47setopt printexitvalueは知ってる? 知ってるならいいけど。
0354名無しさん@お腹いっぱい。
2006/01/09(月) 23:25:17今初めて知ったけど視認性高めたいので両方使う事にするよ。
0355名無しさん@お腹いっぱい。
2006/01/11(水) 00:05:23% echo -n hoge
hoge%
%
のように出力のあとに青い%が出るようになった。バグ?
0356名無しさん@お腹いっぱい。
2006/01/11(水) 00:21:59(゚Д゚)ハァ?
0357名無しさん@お腹いっぱい。
2006/01/11(水) 21:09:130358名無しさん@お腹いっぱい。
2006/01/11(水) 22:35:470359名無しさん@お腹いっぱい。
2006/01/12(木) 16:45:12呪い
0360名無しさん@お腹いっぱい。
2006/01/13(金) 16:35:140361名無しさん@お腹いっぱい。
2006/01/14(土) 01:18:06ここにある
zsh + screen で端末に表示されてる文字列を補完する
の
compadd - "${reply[@]%[*/=@|]}"
って何やっているのですか?
0362名無しさん@お腹いっぱい。
2006/01/14(土) 02:47:280363名無しさん@お腹いっぱい。
2006/01/14(土) 08:59:49それは自分がパート2で書いたのが下敷きになっているようだね。
ttp://makimo.to:8000/2ch/pc3_unix/1036/1036324177.html#816
> って何やっているのですか?
ls や zsh の補完リストで、ファイル名にファイルの種別を表すサフィックスが
ついてることが多いので、それを削除したのを補完候補としている。
そのレスを書いてから、2、3回手を入れて今はこんな感じ。
# dabbrev complete for zsh
HARDCOPYFILE=$HOME/tmp/screen-hardcopy
touch $HARDCOPYFILE
screen-dabbrev-complete () {
setopt localoptions extendedglob
local reply lines=1000
local hp="([\'\"])##" tp="([*/=@|:\'\",)])##"
screen -X eval "hardcopy $HARDCOPYFILE"
# screen -X eval "hardcopy -h $HARDCOPYFILE" # scrollback buffer の内容も含む場合
reply=($(sed '/^$/d' $HARDCOPYFILE | tr ${WORDCHARS//[._-]/} ' ' | sed '$ d' | tail -$lines))
compadd -M 'm:{a-z-}={A-Z_}' - ${${${${reply[@]##${~hp}}%%${~tp}}://(?|??)}}
}
zle -C screen-dabbrev-complete menu-complete screen-dabbrev-complete
#bindkey '^[/' screen-dabbrev-complete
bindkey '^[^_' screen-dabbrev-complete
0364名無しさん@お腹いっぱい。
2006/01/14(土) 09:31:33変えたのだが、使っていて混乱することがある。元に戻した方がいいか。
正直なところ、解読不能になってしまって最初の頃で止めておけばよかったと思う。
1週間に1回使えばいい方だが、使いたいときにちゃんと動いてくれると嬉しい。
が、意図する補完になってくれないことが増えたような。最後に手を入れた変更と
キー割当ての混乱が原因かな。
0365名無しさん@お腹いっぱい。
2006/01/15(日) 14:23:37% acroread [TAB]
_acroread:7: no such file or directory: /usr/local/bin/acroread[ブッ]
と怒られます。
めんどうなんで↓こんな力業をかましてしまいましたが、
ヨイコの皆様はどう対処されているのでしょうか?
0366365
2006/01/15(日) 14:24:29+++ /usr/local/share/zsh/4.2.6/functions/Completion/X/_acroread Sun Jan 15 14:19:03 2006
@@ -4,15 +4,16 @@
# Try extracting the version number directly from the executable.
# (This will fail if the executable is a wrapper script for acroread.)
-local ver=${${${(f)"$(<$commands[$words[1]])"}:#^ver=*}##ver=}
-[[ -n $ver ]] && _acroread_version=$ver
+#local ver=${${${(f)"$(<$commands[$words[1]])"}:#^ver=*}##ver=}
+#[[ -n $ver ]] && _acroread_version=$ver
-if (( ! $+_acroread_version )); then
- local acropath=${${(s. .)${${(f)"$($words[1] -help 2>&1)"}[1]}}[2]}
- _acroread_version=${${${(f)"$(<$acropath)"}:#^ver=*}##ver=}
-fi
+#if (( ! $+_acroread_version )); then
+# local acropath=${${(s. .)${${(f)"$($words[1] -help 2>&1)"}[1]}}[2]}
+# _acroread_version=${${${(f)"$(<$acropath)"}:#^ver=*}##ver=}
+#fi
-if [[ $_acroread_version == 7.* ]]; then
+#if [[ $_acroread_version == 7.* ]]; then
+if true; then
_arguments -C \
'--display=:X display:_x_display' \
'--screen=:X screen (overrides the screen part of DISPLAY)' \
0367名無しさん@お腹いっぱい。
2006/01/15(日) 15:51:15知らないが、どうせそんなの使うことはないだろうからいいやと。
if (( ! $+_acroread_version )); then
_acroread_version=$($words[1] -version 2>/dev/null)
fi
ところで、globを変数展開等とあわせて同時にやる方法ってないですかね。
すぐにはあまりいい例が浮かばないですが、たとえば
files=(*.c(.N))
files=(${files%.c})
を一旦変数へ代入することなく一行で書きたい。
0368名無しさん@お腹いっぱい。
2006/01/15(日) 19:52:14compdef -d acroread
0369名無しさん@お腹いっぱい。
2006/01/17(火) 04:20:54なんというか、出典を示さず自分で考えたみたいに書く奴って最低だよね。
0370名無しさん@お腹いっぱい。
2006/01/17(火) 04:59:130371名無しさん@お腹いっぱい。
2006/01/17(火) 10:17:04くわしく
0372名無しさん@お腹いっぱい。
2006/01/17(火) 21:07:130373名無しさん@お腹いっぱい。
2006/01/18(水) 05:13:12て書いてあるじゃん
0374名無しさん@お腹いっぱい。
2006/01/18(水) 06:04:260375名無しさん@お腹いっぱい。
2006/01/18(水) 06:12:10国語力乏しすぎ
0376名無しさん@お腹いっぱい。
2006/01/18(水) 15:43:45ホームディレクトリが補完候補にあがってしまうんだが、
どうやったら補完しないようになるかわかります?
たとえば、自分以外にhogeさんがいるとすると、
cd hoge
ってやると、今どこにいても~hogeにcdできちゃうんだけど。。。
0377名無しさん@お腹いっぱい。
2006/01/18(水) 17:26:06補完されなかったが。
0378名無しさん@お腹いっぱい。
2006/01/18(水) 17:39:210379376
2006/01/19(木) 17:40:49どっかのサイトからコピペってるうちに怪しい設定が大量に入り込んでたみたいデス
これで快適なzshライフが遅れそう
ありがとうございますた
0380名無しさん@お腹いっぱい。
2006/01/21(土) 01:41:48思う。
0381名無しさん@お腹いっぱい。
2006/01/21(土) 01:47:270382名無しさん@お腹いっぱい。
2006/01/22(日) 00:23:150383名無しさん@お腹いっぱい。
2006/01/22(日) 22:57:40predict-on じゃなくて?
0384名無しさん@お腹いっぱい。
2006/01/22(日) 23:05:48それってこういう状況?
% where acroread
/usr/X11R6/bin/acroread
% echo $commands[acroread]
/usr/local/bin/acroread
/usr/local/bin/acroread は参照先のない
シンボリックリンクのようだけど、
これを消せばまあ動くかな。(試してない)
where の結果と commands の内容が違ったりするんだね。
0385名無しさん@お腹いっぱい。
2006/01/22(日) 23:58:39うーん。
files=(*.c(.N:s/.c/))
だと末尾の一致がないから、
files=(${$(echo *.c(.N))%.c})
とかかな。echo を消したい。
0386名無しさん@お腹いっぱい。
2006/01/23(月) 01:48:09echoとか使っちゃうと途端に空白だとか何だとかの問題が入ってきちゃうんで、
zsh内の各種展開のみで済ませたいんですよねえ。
で、globも変数展開もあわせて一発で書きたいなと。
いまんとこ次善の策として>>367のように2行書いてるわけですが、
一発で書ければ変数を導入しなくてよくなる場合もあるので。
0387名無しさん@お腹いっぱい。
2006/01/23(月) 08:38:32何やらで済ませられるけど。>>367のような単純な例だと、files=(*.c(.N:r)) でも
いいだろうし。globbing の展開は最後だから、変数展開を後にしたいとすると
結局多段にするのが簡単ということになりそう。
0388365
2006/01/23(月) 10:00:36いや 両方とも /usr/X11R6/bin/acroread な状況です。
深く考えずに zsh を portupgrade で 4.2.6 にしたら
こんななりましたです。
ただ/usr/local/bin/acroread@ は参照先消えた状態で存在したので
消した上で /usr/local/share/zsh/4.2.6/functions/Completion/X/_acroread を
元に戻してみたらやっぱりこんななりました。
% acroread [TAB]
_acroread:12: no such file or directory:
まあおいらには >368 みたいな対処がいいのかもしんないけど
0389名無しさん@お腹いっぱい。
2006/01/23(月) 18:26:32やっぱそうですか。ありがとう。
0390名無しさん@お腹いっぱい。
2006/01/23(月) 22:47:42/usr/X11R6/bin/acroread って acroread5 じゃないので?
0391名無しさん@お腹いっぱい。
2006/01/27(金) 23:20:48mv tmp.txt hoge.txt
というのを、zsh なら、
cat hoge.txt | sed > hoge.txt
的に、tmp.txt を必要なしにできたような気がするんだけど、勘違い?
あったような気がするんだけど、みつからねえぇ。
0392名無しさん@お腹いっぱい。
2006/01/27(金) 23:41:15( rm hoge.txt; sed > hoge.txt ) < hoge.txt
0393名無しさん@お腹いっぱい。
2006/01/27(金) 23:52:240394名無しさん@お腹いっぱい。
2006/01/28(土) 10:33:110395名無しさん@お腹いっぱい。
2006/01/28(土) 13:16:27cat << __EOF___ | ed hogehoge.txt
edなこまんど
:
__EOF__
0396名無しさん@お腹いっぱい。
2006/01/28(土) 16:06:410397名無しさん@お腹いっぱい。
2006/01/28(土) 17:03:400398名無しさん@お腹いっぱい。
2006/01/29(日) 15:24:34^sで分割したいんですが
zshのインクリメンタルサーチが始まってしまいます。
このキーバインドを無効にするにはどうしたらいいですか?
0399名無しさん@お腹いっぱい。
2006/01/29(日) 15:45:580400名無しさん@お腹いっぱい。
2006/01/29(日) 17:46:40zshがscreenのキー入力を食うはずがないのだが。
0401名無しさん@お腹いっぱい。
2006/01/30(月) 19:12:350402名無しさん@お腹いっぱい。
2006/02/02(木) 03:51:18: yodl -o zsh.texi -I. -w ztexi.yo version.yo zsh.yo; \
test -f zsh.texi
make[1]: *** [zsh.texi] Error 1
make: *** [all] Error 1
とか言われちゃいます。zsh.texiなんてソースの中に無いみたいだけど…
OSX10.4.4
texinfo 4.7
0403名無しさん@お腹いっぱい。
2006/02/02(木) 05:38:500404名無しさん@お腹いっぱい。
2006/02/04(土) 11:06:280406名無しさん@お腹いっぱい。
2006/02/04(土) 13:33:340407名無しさん@お腹いっぱい。
2006/02/07(火) 20:53:47out of date.)
I uploaded 4.3.0-dev-3 to the pub/development directory of
ftp.zsh.org. This fixes a few odd things in multibyte mode and there
are the usual completion function tweaks. It's now possible to define a
ZLE hook function zle-keymap-select to run when $KEYMAP changes. One
minor incompatibility is that the shell no longer sets HOME itself if it
wasn't in the environment (which it usually is). [In the next version
we'll continue to set HOME unconditionally in native zsh emulation.]
It's probably in a pretty fit state to be released as 4.3.1 now.
--
Peter Stephenson <pws@csr.com> Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070
To access the latest news from CSR copy this link into a web browser: http://www.csr.com/email_sig.php
0408名無しさん@お腹いっぱい。
2006/02/17(金) 05:59:480409名無しさん@お腹いっぱい。
2006/02/20(月) 23:23:230410名無しさん@お腹いっぱい。
2006/02/21(火) 00:02:27そうですか。
0411名無しさん@お腹いっぱい。
2006/02/25(土) 01:30:360412名無しさん@お腹いっぱい。
2006/02/28(火) 22:11:10ftp://ftp.zsh.org/pub/zsh-4.3.1.tar.gz
ftp://ftp.zsh.org/pub/zsh-4.3.1.tar.bz2
ftp://ftp.zsh.org/pub/zsh-4.3.1-doc.tar.gz
ftp://ftp.zsh.org/pub/zsh-4.3.1-doc.tar.bz2
Please try this out on as many systems as possible as soon as you get a
chance; if there are any significant problems I'll produce a 4.3.2.
This is very little changed from 4.3.0-dev-5, so there shouldn't be any.
If it looks OK I'll make the appropriate arrangements at Sourceforge and
Freshmeat (please feel free to pass the message on elsewhere; I don't
use comp.unix.shell or Slashdot myself).
Thank you to everyone who helped.
The release announcement currently looks like:
This version contains initial support for multibyte characters in the
shell's line editor (in particular UTF-8, although any character set
supported by the system library is usable). Please read the appropriate
sections of the file INSTALL as this support is not turned on by default
on all systems where it can be used. The release also contains a few
enhancements to shell syntax and supplied functions as well as numerous
bug fixes. See the file NEWS for more detail. There are only a few
unavoidable incompatibilities with previous versions, mostly to enhance
compatibility with other shells and standards; see the README file.
0413名無しさん@お腹いっぱい。
2006/03/01(水) 01:40:08patch当てないでmultibyte supportってまともに動く?
0414名無しさん@お腹いっぱい。
2006/03/01(水) 03:03:15プロンプトが削れていくバグも無い
0415名無しさん@お腹いっぱい。
2006/03/01(水) 15:49:32OSは?
0416名無しさん@お腹いっぱい。
2006/03/01(水) 16:00:390417名無しさん@お腹いっぱい。
2006/03/01(水) 17:31:32LC_CTYPE
0418名無しさん@お腹いっぱい。
2006/03/03(金) 03:09:510419名無しさん@お腹いっぱい。
2006/03/06(月) 20:20:390420名無しさん@お腹いっぱい。
2006/03/06(月) 20:57:33Linuxユーザでしょ
0421名無しさん@お腹いっぱい。
2006/03/06(月) 21:11:340422名無しさん@お腹いっぱい。
2006/03/06(月) 21:22:440423名無しさん@お腹いっぱい。
2006/03/06(月) 21:41:220424名無しさん@お腹いっぱい。
2006/03/07(火) 03:31:220425名無しさん@お腹いっぱい。
2006/03/07(火) 03:56:59bindkey -e
で delete おすと ~ が入力される
quoted-insert だと ^[[3~
bindkey '^[[3~' delete-char で望んだ動作になるんだけど
なにが悪いのかな?
0426名無しさん@お腹いっぱい。
2006/03/07(火) 14:41:04o デフォルトのemacsキーバインドはDELキーに何も割りあてられていない
o TERMが正しくない
0427名無しさん@お腹いっぱい。
2006/03/07(火) 15:24:550428名無しさん@お腹いっぱい。
2006/03/10(金) 05:57:100429名無しさん@お腹いっぱい。
2006/03/11(土) 11:34:000430名無しさん@お腹いっぱい。
2006/03/11(土) 13:28:490431名無しさん@お腹いっぱい。
2006/03/11(土) 18:10:370432名無しさん@お腹いっぱい。
2006/03/11(土) 19:08:10きちんと二バイト単位でできるようになってるよ。
0433名無しさん@お腹いっぱい。
2006/03/12(日) 00:12:04が、"第1話.avi"とかなファイルを"?1?.avi"とかで指定できなかった。
環境はLinux(Gentoo)、LANG系は全部ja_JP.UTF-8。
0434名無しさん@お腹いっぱい。
2006/03/12(日) 01:12:02「??1??」でマッチするね。
0435名無しさん@お腹いっぱい。
2006/03/16(木) 18:31:05なんかちょっとすごそう。かも?
0436名無しさん@お腹いっぱい。
2006/03/16(木) 20:45:13良かった点は動的に色をつけてけっこう綺麗なことかな。
一方、
・コンソールの取り回しが重かった
・構文規則が bourne shell 系でも csh 系でもない独自なもので覚えるのが面倒だった
・細かいチューンの方法がよくわからなかった
という理由で利用を断念した。
まあ zsh がわかりやすいわけではないけれど、今はもう設定しちゃってるしね。
「設定が諸悪の根源」という思想もまあわかるんだけど、そのわりに標準がと
ても使いやすいというわけじゃないし、補完系の設定を見てみたらとても複雑
だったし、理念に実装が追い付いていないなーという感じ。
0437名無しさん@お腹いっぱい。
2006/03/16(木) 21:26:35確かに。
>・構文規則が bourne shell 系でも csh 系でもない独自なもので覚えるのが面倒だった
>・細かいチューンの方法がよくわからなかった
使ってて似たようなことさっき思った。w
うーんやっぱzsh越える用なのってそうそう出てこいわな。
0438名無しさん@お腹いっぱい。
2006/03/18(土) 22:22:560439名無しさん@お腹いっぱい。
2006/03/19(日) 07:22:010440名無しさん@お腹いっぱい。
2006/03/19(日) 08:17:110441名無しさん@お腹いっぱい。
2006/03/19(日) 16:05:540442名無しさん@お腹いっぱい。
2006/03/22(水) 21:57:35をよくやるんだが、zshならもっと簡単にやる方法あったりしない?
0443名無しさん@お腹いっぱい。
2006/03/22(水) 22:32:46せいぜいdo, doneを省くくらい。
0444名無しさん@お腹いっぱい。
2006/03/23(木) 00:08:230445名無しさん@お腹いっぱい。
2006/03/23(木) 02:35:37perl hoge.pl a zで、aからzまででる
perl hoge.pl g oならgからoまで
#!/usr/bin/perl
for($i=ord($ARGV[0]);$i<=ord($ARGV[1]);$i++){print chr($i),"¥n";}
0446名無しさん@お腹いっぱい。
2006/03/23(木) 13:36:590447名無しさん@お腹いっぱい。
2006/03/24(金) 07:19:52あと、自分はこんな関数を定義していて偶に使う。
function each () {
for i in "$@[1,-2]"; do
eval $@[-1] ${(qq)i}
done
}
command は内部コマンドにあるから名前を変えるが、>>442の例だと
each {a-e} command1
みたいなかんじに。
0448名無しさん@お腹いっぱい。
2006/03/25(土) 09:37:04each func arg1 arg2 ...
の方が直感的と思ったオレは lisper ?
0449名無しさん@お腹いっぱい。
2006/03/25(土) 10:48:26lisperならeachじゃなくてmapの方が直観的と思うハズだ。
0450名無しさん@お腹いっぱい。
2006/03/25(土) 10:49:280451名無しさん@お腹いっぱい。
2006/03/26(日) 00:35:54■ このスレッドは過去ログ倉庫に格納されています