トップページ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リンク
0773名無しさん@お腹いっぱい。2007/06/17(日) 13:03:22
>769
=(command) の一時ファイルはすぐ消えちゃうよ。かりに hogehoge=... に渡せても、それを再利用したときにはもう消えてると思うんだけど、どういう風に利用することを考えているの?
っていうか、やりたいのは `...` の方だったりしない?


あと、わたしの手元では
hogehoge==(command)
でも一時ファイル名はちゃんと取れるけどなあ。
0774名無しさん@お腹いっぱい。2007/06/17(日) 13:33:25
>>773
ファイルの要る部分だけを抜き出して渡したいんですよ。履歴に突っ込んでおいて
たまに呼び出したいぐらいの軽い用途です。

たしかに単独の変数代入だと自分ところでも動きますが、コマンド途中だとエラーに
なってしまいます。例えば、
$ echo hogehoge==(command)
zsh:  not found
0775名無しさん@お腹いっぱい。2007/06/17(日) 19:10:37
watch と打ったあとに引数のところでコマンド名の補完して欲しいんだけど
どう設定したらいいですか?
0776名無しさん@お腹いっぱい。2007/06/17(日) 19:19:04
compdef _precommand watch
かな
0777名無しさん@お腹いっぱい。2007/06/17(日) 19:29:19
>>776
できました
ありがとうございます
bashから乗り換えたけど色々と便利ですね
0778名無しさん@お腹いっぱい。2007/06/27(水) 03:40:21

拡張子に応じたコマンドを自動実行
http://journal.mycom.co.jp/column/zsh/016/
0779気まぐれアナスイ2007/06/27(水) 11:53:22
>>778
なるほど? そういう事ですか…
0780名無しさん@お腹いっぱい。2007/06/27(水) 13:56:37
mycom の zsh の連載、まだ続いてたのか
0781名無しさん@お腹いっぱい。2007/06/27(水) 14:50:24
こないだなんかネタを募集してたぞ
http://journal.mycom.co.jp/column/zsh/015/
0782名無しさん@お腹いっぱい。2007/07/01(日) 21:04:02
bindkey -v でコマンドスタックが使えないんですが
bindkey '^Q' push-line だとだめ、bindkey の出力にはちゃんとでてるのに
bindkey '^P' push-line だとできるが P は別で使ってるので...

bindkey -v の人スタックどうしてるんだろう?使ってないとか?
0783名無しさん@お腹いっぱい。2007/07/03(火) 04:42:58
bindkey "^Q" push-lineで普通に使えるが。
0784名無しさん@お腹いっぱい。2007/07/03(火) 16:58:40
今までtcshを使っていましたが、 zshならscreenでsshをする場合、
screenのウィンドウ名にログイン先のホスト名が自動で付けれる ので最近zshに乗り換えたものです。

聞きたいのですが、

% history
1 less .zshrc
2 ls
3 man man
4 history

という履歴において先ず、l(小文字のLです)とタイプして ↑を押す時、
tcshの場合は 「history」 や 「man man」 を飛ばして ll(小文字のLです)から始まる 「ls」 を表示してくれますが
zshの場合は 「history」 と表示されます。

ネットで調べたら

autoload history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^P" history-beginning-search-backward-end
bindkey "^N" history-beginning-search-forward-end

と.zshrcに書いて Ctrl+P、Ctrl+Nでtcsh上の矢印を使った履歴検索が実現できました。
しかし、自分はやはり慣れた↑や↓を使いたいのですが どう書けばzshで実現できるのでしょうか?

どなたかご教授おねがいします。
0785名無しさん@お腹いっぱい。2007/07/03(火) 18:48:30
bindkey で矢印キーに割り当てる
0786名無しさん@お腹いっぱい。2007/07/03(火) 18:48:48
"^[[A" "^[[B"っつーことか?

ついでに「ご教授」でもググってみることをすすめるとく
07877842007/07/03(火) 20:33:42
>>785
そうなんです 結局矢印キーは
どういうコードで表わされるかを
聞きたかったんです。


意味不明な文ですみませんでした。

>>786
ありがとうございました。
"^[[A" "^[[B" で実現できました。

「ご教授」を「教えてください」の丁寧語の意味で使っていました。
こういう場合は「ご教示」なのですね。
失礼しました。
0788名無しさん@お腹いっぱい。2007/07/03(火) 20:40:42
通常の設定なら、「Ctrl-v 何らかのキー」でそのキーの端末コードがわかる
0789名無しさん@お腹いっぱい。2007/07/03(火) 23:02:51
> screenのウィンドウ名にログイン先のホスト名が自動で付けれるので最近
> zshに乗り換えたものです。

自動で付けてくれるような機能あんだっけ?
07907842007/07/03(火) 23:27:25
>>788
あっ 本当ですね
こんな機能、全く知りませんでした。
教えてくれてありがとうございました。


>>789
すみません、文章が不正確でした。
正しくは、.zshrcに

function ssh_screen(){
eval server=?${$#}
screen -t $server ssh "$@"
}
if [ x$TERM = xscreen ]; then
alias ssh=ssh_screen
fi

を記述したらできます。
ttp://d.hatena.ne.jp/naoya/20051223/1135351050


でも自分の環境は2行目の
eval server=?${$#}
で失敗するので、この2行目を
A=$#
eval server=$"$A"
としています。
0791名無しさん@お腹いっぱい。2007/07/03(火) 23:41:57
「教授する」という動詞もあるので「ご教授願います」でも構わない、
と聞いたこともある。
0792名無しさん@お腹いっぱい。2007/07/04(水) 00:52:42
単に大仰かどうかという話だ
0793名無しさん@お腹いっぱい。2007/07/04(水) 01:11:04
>>790
これはリモートでコマンドを実行するんじゃなくて、リモートログインするという前提なのか?
それなら
function ssh_screen {
    screen -t $@[-1] ssh "$@"
}
とかでいいんじゃないの。
07947842007/07/04(水) 02:12:45
>>793
>これはリモートでコマンドを実行するんじゃなくて、リモートログインするという前提なのか?
そうです。

>function ssh_screen {
> screen -t $@[-1] ssh "$@"
>}
>とかでいいんじゃないの。
今まで動けばいいと思って、大して気にしていませんでした。

指摘されたこの機会に見直してみました。
自分はsshを使うとき
% ssh ホスト名 -l リモートのユーザー名
と使うので

function ssh_screen {
screen -t $1 ssh "$@"
}
としてみました。
0795名無しさん@お腹いっぱい。2007/07/04(水) 08:46:05
>>791
間違いではないが、
本来言いたいこととは意味がちょっと違う。
http://www.tt.rim.or.jp/~rudyard/torii009.html
0796名無しさん@お腹いっぱい。2007/07/07(土) 00:11:03
http://pc11.2ch.net/test/read.cgi/unix/1079601220/132-133n
に「諸君、私はzshが好きだ」が張られているわけだが。
どうしてこのスレに書かないのか疑問だ。w
0797名無しさん@お腹いっぱい。2007/07/07(土) 00:27:05
>>796
「zsh! zsh! zsh!」
0798名無しさん@お腹いっぱい。2007/07/09(月) 04:54:36
今いるフォルダ(フォルダ名:number)に one two three というフォルダがあるとして

    ls *~two

とすると one three が表示されます

    cd ..
    ls number/*~two

だと one two three が全部表示されてしまって two が除外されないのですがなぜでしょうか?
つД`) タスケレ !!
0799名無しさん@お腹いっぱい。2007/07/09(月) 07:31:37
ls number/*~number/two とか。
0800名無しさん@お腹いっぱい。2007/07/09(月) 09:49:08
ls number/(*~two)
0801名無しさん@お腹いっぱい。2007/07/09(月) 15:09:44
プロンプトに%~を入れているのですが、
プロンプト(または%~)の長さが一定以上なら改行して次の行の先頭に
> を出すようにしたいと考えているのですが、
そういうことできますか?

長さによって次のうち適当な方になるようにしたい↓

通常:
~/どこそこ>

長いとき:
~/じゅげむじゅげむごこうのすりきれぱいぽぱいぽ
>
0802名無しさん@お腹いっぱい。2007/07/09(月) 15:29:41
LF=$'\n'
PROMPT="%~%20(l.$LF.)> "
0803名無しさん@お腹いっぱい。2007/07/10(火) 02:54:30
ありがとうございます。条件分岐なんてできたんですね。
0804名無しさん@お腹いっぱい。2007/07/10(火) 03:00:37
LFを定義するかわりに
PROMPT='%~%20(l,
,)> '
と書いてもいけました。
0805名無しさん@お腹いっぱい。2007/07/10(火) 09:17:30
こんなことしてみた
zstyle -e ':completion:*:processes' command '
    [[ "$oldcontext" = *sudo* ]] &&
        reply=("ps -e") ||
        reply=("ps -u $USER")
'
きもいので没リスト行き。
08067982007/07/11(水) 17:45:11
>>799, 800
ありがと━(・∀・)━!!!!

アクセス規制で返事遅れ orz
0807名無しさん@お腹いっぱい。2007/07/28(土) 11:04:19
parent_dir1/subdir/hoge.txt
parent_dir1/subdir/fuga.txt
parent_dir2/aho.txt
parent_dir2/aho2.txt

みたいな状態で子ディレクトリ(parent_dir1/subdir/ or parent_dir2/)単位に
処理をしたいとします。

for dir in *(/)
do
targetdir=$(echo ${dir}/*...) <= ここに$dirの下に子dirがあればソレ
以下いろいろ処理 なければ$dirを targetdirにセットしたい
done

*(/) にマッチしなければ . にマッチとか
何か条件マッチするglob みたいなことってできないんでしょうか?
0808名無しさん@お腹いっぱい。2007/07/31(火) 15:38:01
>>807
末端のディレクトリだけを対象にしたいということ?
findを使うのはダメですか?

find ./ -type d | while read dir
do
  if [ -z $(find $dir -mindepth 1 -maxdepth 1 -type d) ]
  then
    # dirに対する処理
  fi
done
0809名無しさん@お腹いっぱい。2007/07/31(火) 16:09:27
エントリごとにfind起動しなくても、
postorderで出力させて文字列マッチでいいんじゃない。これでどう?

dir0=
find -d topdir -type d | while read -r dir
do
  case "$dir0" in
  "$dir"/*) ;;
  *) echo "$dir";; # dirに対する処理
  esac
  dir0="$dir"
done

findにファイル名中の改行を出力するとき\を前置するオプションが欲しい。
つまり-rなしのreadと対で使えるような。
0810名無しさん@お腹いっぱい。2007/07/31(火) 16:53:45
なるほど一つ前のdirを覚えておいて
それをマッチさせるってことか。

>末端のディレクトリだけを対象にしたいということ?

そういうことだったんですが、
結局お目当てのファイルが当該ディレクトリにあるかどうかを
判別して処理みたいなことをしてしまいました

for dir in *(/)
do
subdir=''
for sd in ${dir}/**/*(#qN/) ${dir}
do
if [[ -e omeate-file-name ]]; then
subdir=$sd
break
fi
done
# subdir での処理
done
0811名無しさん@お腹いっぱい。2007/08/09(木) 05:47:45
screenのtitleを実行中のコマンド名に自動的にかえることができるらしいので、
^[k^[\ ( ^[ はエスケープ文字)をPROMPTの頭に追加したところ、
候補のリストがプロンプト行の下に複数行にわたって出てくるような補完を実行したり、
折り返しのある行の履歴をesc+kで戻って(vi modeです)編集したりするときに、
カーソルが4バイト分右にずれたり、一行上にずれたりよくわからない動作をするように
なってしまいました。
setopt no_always_last_prompt で、複数行の候補の出る補完をした際のずれは
なくなったんですが、コマンド履歴からの行編集はやはりカーソルが一行上や
4バイト右にずれます。
対処法ご存知の方いらっしゃいませんか。

08128112007/08/09(木) 05:49:05
--- .zshrcからsetoptとPROMPTの部分を抜粋
setopt no_always_last_prompt
setopt auto_cd
setopt auto_list
setopt auto_pushd
setopt no_auto_remove_slash
setopt no_extended_history
setopt glob_dots
setopt hist_ignore_all_dups
setopt hist_reduce_blanks
setopt hist_save_no_dups
setopt no_hup
if [ ! "$STY" -o "$WINDOW" = 0 ]; then
setopt ignore_eof
fi
setopt inc_append_history
setopt no_list_beep
setopt no_prompt_cr
setopt prompt_subst
setopt pushd_ignore_dups
setopt rm_star_silent
setopt no_share_history

if [ "$STY" ]; then
PROMPT='^[k^[\%{$prompt_color%}[%n@%m:%d]%#%{$reset_color%} '
else
PROMPT='%{$prompt_color%}[%n@%m:%d]%#%{$reset_color%} '
fi
色つける部分とってみても結果は同じでした。
0813名無しさん@お腹いっぱい。2007/08/09(木) 06:24:11
>>811
812の中に答あるじゃん。
08148112007/08/11(土) 13:01:42
^[k^[\ を %{ %} でくくったらなおった模様。 813は答を書かないなら黙ってろ。
0815名無しさん@お腹いっぱい。2007/08/12(日) 02:33:12
誰が何書こうがいいんじゃね。
自分の欲しい答じゃないと逆ギレするくらいなら最初からこんなとこで質問するなよ。
0816名無しさん@お腹いっぱい。2007/08/12(日) 02:47:46
まあこの手の質問には「OS入れなおせ」とかトンチンカンな答え返す香具師がいるからね。
0817名無しさん@お腹いっぱい。2007/08/12(日) 11:01:02
>>814
夏ですねー。
0818名無しさん@お腹いっぱい。2007/08/24(金) 13:34:45
これってどう発音するの?

ゼットシェル
ゼットエスエッチ
ズィーシェル
ズィーエスエッチ
ズィーッシュ

おれは心の中で、いつも最後のやつで呼んでいるお。
0819名無しさん@お腹いっぱい。2007/08/24(金) 13:43:30
>>818
UNIXに関する言葉のひらがな読みスレッド
http://pc11.2ch.net/test/read.cgi/unix/1001358861/
0820名無しさん@お腹いっぱい。2007/08/24(金) 14:00:58
>>818
ズドラービスチェ
0821名無しさん@お腹いっぱい。2007/08/24(金) 16:35:03
ザッシュと心の中で発音してるかな。
bash(バッシュ)とかash(アッシュ)の流れ。
でもcsh(シーシェル)、tcsh(ティシーシェル)、ksh(コーンシェル)だったりするけど。
0822名無しさん@お腹いっぱい。2007/08/24(金) 16:52:32
もう>>819に移動したみたいよ。
0823名無しさん@お腹いっぱい。2007/09/15(土) 00:01:52
zshのプロンプトが勝手に左端に戻ってしまうのを避ける方法はありますか?
たとえば、
perl -e 'print "hoge"'
すると、(プロンプトを[PROMPT]と書くとして)
hoge[PROMPT]
が一瞬で
[PROMPT]
にもどってしまうのでhogeが出力されたのか判別できなくて困るときがあります。
気を付けているときはよいですが、Perlのプログラムのバグ取りをprint文を使って
行っているとき、これにうっかりしていて嵌まるときあります。
(プログラム中の正規表現で正しく切り取れたか確認するとき等)

bashのときは
hoge[PROMPT]
のままだったのですが、zshでもこういう風にする方法はありますか?
0824名無しさん@お腹いっぱい。2007/09/15(土) 00:19:34
setopt no_prompt_cr
08258232007/09/15(土) 09:05:38
>>824
解決しました。ありがとうございます!
0826名無しさん@お腹いっぱい。2007/09/15(土) 22:37:35
そういえばいつのまにか prompt_sp なんてのがあるんだね。
promptnl みたいに

unsetopt prompt_cr
PROMPT=$'%{${fg[blue]}[EOO]${fg[default]}\e[$[COLUMNS-7]C \r%}'$PROMPT
(C の後は半角スペース2個)

ってやってるから使う気ないけど。
% のところを任意の文字列/色にできれば prompt_sp に任せるんだけどなあ。残念。
0827名無しさん@お腹いっぱい。2007/09/15(土) 22:39:35
>>787
zkbd ってのもあるよ。まあ要らないかな。
0828名無しさん@お腹いっぱい。2007/09/16(日) 00:04:12
しばらくプロンプトが戻ってこない操作(makeとか)が終了したらbeep鳴らそうと
precmd() {echo -n '\a'}
としてみたけど、流石にうざい。

もっとうまい方法きぼんぬ。
0829名無しさん@お腹いっぱい。2007/09/16(日) 00:06:01
icqとかのwav
0830名無しさん@お腹いっぱい。2007/09/16(日) 00:51:26
make; echo -n '\a' じゃだめなの?
08318282007/09/16(日) 01:32:53
うん。忘れるから。
0832名無しさん@お腹いっぱい。2007/09/16(日) 01:48:45
eject
0833名無しさん@お腹いっぱい。2007/09/16(日) 03:08:16
>>832
それはbiff用(謎)
0834名無しさん@お腹いっぱい。2007/09/16(日) 03:11:16
コマンド実行時間が一定以上なら音を出す、
とかすればいいのかな。
できるのか知らんけど。
0835名無しさん@お腹いっぱい。2007/09/16(日) 03:29:00
ring_after=$1
shift

(sleep $ring_after; echo ^G^G^G) &
ringer_pid=$!
trap "kill $ringer_pid" CHLD
sh -c $*

思いつきで書いてみた。検証はしていない。
0836名無しさん@お腹いっぱい。2007/09/16(日) 04:24:15
>>834
precmd () { [ $TTYIDLE -gt 10 ] && echo ^G; true }
かな。
0837名無しさん@お腹いっぱい。2007/09/16(日) 06:41:14
threshold=5
precmd () { (( ${+EXEC_SECONDS_START} )) && (( SECONDS - EXEC_SECONDS_START > threshold )) && echo \\a ; unset EXEC_SECONDS_START }
preexec () { (( EXEC_SECONDS_START = SECONDS )) }

とか。TTYIDLE なんてあるんだね。
0838名無しさん@お腹いっぱい。2007/09/16(日) 06:46:58
>>836
最後の true って意味あんの?
08398282007/09/16(日) 18:47:42
翼をありがとう

                 ハ_ハ  
               ('(゚∀゚∩ とべるよ!
                ヽ  〈 
                 ヽヽ_)
0840名無しさん@お腹いっぱい。2007/09/19(水) 01:39:19
zshで、指定されたこのディレクトリ以下の、XXXX年Y月ZZ日以前に作成されたファイルを一覧し、確認後、
一括削除したいのですが、どのようにすればいいのかわかりますでしょうか?
0841名無しさん@お腹いっぱい。2007/09/19(水) 09:07:11
touch -d YYYYMMDD dummyしておいて
echo **/*(e:'[[ $REPLY -ot dummy ]]':) とか?

ファイルのタイムスタンプじゃなく日付で比較する方法がわからんかった。

**/*(mh+2) でmtimeで2時間以上経ってるファイルってのは示せるな。
h(時間)以外に月や日数は指定できるが、具体的な日付は指定できないようだ。
0842名無しさん@お腹いっぱい。2007/09/19(水) 15:56:58
findでやった方がいいんじゃないか
0843名無しさん@お腹いっぱい。2007/09/19(水) 16:59:02
zshスレでそれを言っちゃあおしめぇよ (?)
0844名無しさん@お腹いっぱい。2007/09/19(水) 20:44:16
あ、やっぱりそうだったんだ。
なんでfind -atime使わないのかと思ってた
0845名無しさん@お腹いっぱい。2007/09/19(水) 21:17:12
findでのやり方を知った上でzshではどうなるかを考えるべきなんだろうけど。
echo **/なんたらだと argument too longになることがあるしね。

0846名無しさん@お腹いっぱい。2007/09/23(日) 10:32:04
select-word-style shell
って multibyte 対応になってからおかしくなったよね。

(( CURSOR += ${#word} ))
ってやってて(wordはこれからまたごうとしている語)、
${#word} が bytes で CURSOR が chars だからみたいだけど。

${#word} を chars で取得する方法か CURSOR を bytes で設定する方法はあるかな。
誰か知らない?
$(wc<<<$word) とかはちょっと重いからなあ。
multibyte parse を自前でやるって手もあるけど。
0847名無しさん@お腹いっぱい。2007/09/27(木) 05:27:16
% echo a b c
a b c
% echo !:2[TAB]
% echo b
% !:0-2[TAB]
% echo a b

知らんかった機能だけどわりと便利かも
0848名無しさん@お腹いっぱい。2007/09/27(木) 11:15:49
csh 由来の古典的な過去履歴参照もいろいろ痕跡は残ってるし
使いこなせば便利な場面はあるんだろうけど
オツムの 使いこなしバッファ の容量がもう溢れてるザンス
0849名無しさん@お腹いっぱい。2007/09/27(木) 15:35:24
c-/ でUndoって紹介されているサイトがあるけど、自分のところではUndoにならん。どして?
0850名無しさん@お腹いっぱい。2007/09/27(木) 15:40:45
bindkey -e
0851名無しさん@お腹いっぱい。2007/09/28(金) 12:22:50
>>849
端末は何?
TeraTermやPoderosaだとだめかも
0852名無しさん@お腹いっぱい。2007/09/28(金) 12:53:11
端末はTeraTerm、sshで入っている。そして、指摘通り駄目だった。
ちなみにホストはVMware上のFreeBSD。こちらも駄目。
もちろん、bindkey -e は有効にしているのだけど、何か方法ありませんか?
0853名無しさん@お腹いっぱい。2007/09/28(金) 18:10:08
stty ?
0854名無しさん@お腹いっぱい。2007/09/28(金) 19:50:38
>>852
UTF-8 TeraTerm Pro with TTSSH2なら何もせずにいける.
ttp://sourceforge.jp/projects/ttssh2/

古いTeraTermならこれでいける
ttp://www.sakurachan.org/ml/teraterm/msg00422.html
0855名無しさん@お腹いっぱい。2007/09/29(土) 00:30:55
>>854
UTF-8 TeraTerm Pro with TTSSH2 にしてみたけど、駄目みたい。
c-x u は有効なんだが・・・。
0856名無しさん@お腹いっぱい。2007/09/29(土) 08:44:52
>>855
日本語キーボードだとだめかも
C-_ はどう?
(/ と 右シフトの間のキー)
0857名無しさん@お腹いっぱい。2007/09/29(土) 14:16:30
当方、日本語キーボードです。
C-_でも駄目でした。
0858名無しさん@お腹いっぱい。2007/10/04(木) 00:17:50
>>857
bindkey |grep undo

"^_" undo
って出る?
C-_ って Ctrl+Shift+\ だよね?念の為。
0859名無しさん@お腹いっぱい。2007/10/04(木) 00:19:57
% zsh -c 'printenv SHLVL'
3
% sh -c 'printenv SHLVL'
4

って出るのはバグ?
0860名無しさん@お腹いっぱい。2007/10/04(木) 02:15:27
C-/ は?
0861名無しさん@お腹いっぱい。2007/10/04(木) 15:22:40
>>858
bindkey | grep undo

の結果は

"^X^U" undo
"^Xu" undo
"^_" undo

--
C-/でも駄目でした。
0862名無しさん@お腹いっぱい。2007/10/05(金) 02:40:33
>>861
そういえばね、
gvim on windows + jp106 での話なんだけど、
C-/ と C-_(C-S-\) では C-_ が入らなくて
C--(Ctrl+-) で C-_ が入るんだよね。
なんでか知らんけど。
で、C-- で C-_ が入るかもよって話。
0863名無しさん@お腹いっぱい。2007/10/05(金) 03:22:32
そもそも/のコントロールコードはアスキーにないから
端末の問題だと思うね。
手元だとckならC-/でC-_が出るみたいだけどcywginのrxvtだと駄目だった。
0864名無しさん@お腹いっぱい。2007/10/09(火) 23:35:20
acroread のcompletion が遅い!!
completion の前にadobe(acro)readerのバージョンチェックで
一度 acroread を起動している。個人としての対応は
_acroread_version='7.0.9'
のように変数の値を指定してしまえば回避できる。

補完スクリプトをもっと改善できるだろうが、中途半端に改善するより
遅さに気付いたユーザが最速の対応をする方がよいのかな。
(ユーザが気付くくらい遅くしておかないといけない)
0865名無しさん@お腹いっぱい。2007/10/16(火) 00:01:49
zsh のコマンドラインで : とだけ入力したら、
エラーも出ずにプロンプトに戻ってきましたが、
これはどういうコマンドなのでしょうか?
0866名無しさん@お腹いっぱい。2007/10/16(火) 00:19:30
何もせずに真を返すコマンド。
zshだけじゃないので、先ずは man sh でも読んで下さい。
0867名無しさん@お腹いっぱい。2007/10/16(火) 00:27:22
:コマンドは、引数をそのまま展開して真を返すコマンド。
zshに限らず、bourneシェル系にはある。

- コメント記号の代わりに使う。
- trueの代わりに使う。
- コマンドが必要な箇所で使う。
else節だけが欲しいがthen節では何もしないif文とか
(↑論理反転したり&&や||で済む場合も多いが)
0868名無しさん@お腹いっぱい。2007/10/16(火) 00:38:25
すいません、sh 一般にあるコマンドだったのですね。
とある .zshenv でトリッキーに使われていたので、
てっきり zsh の魔法に違いないと思い込んでしまいました。
詳しい説明、ありがとうございました。
0869名無しさん@お腹いっぱい。2007/10/31(水) 20:49:06
zcompile って速くなってるの体感できる?
全然わからないんだけど。
0870名無しさん@お腹いっぱい。2007/11/01(木) 05:41:20
俺も全部zcompileしてるけど全然わからないw
0871名無しさん@お腹いっぱい。2007/11/09(金) 19:50:36
関数で数値や文字列を返したいときってやっぱり
echo $result
な感じでしょうか?
0872名無しさん@お腹いっぱい。2007/11/12(月) 18:04:16
bashのHISTIGNOREみたく特定のパターンにマッチするコマンドを
履歴に入れないようにするにはどうすればいいんでしょうか?
0873名無しさん@お腹いっぱい。2007/11/12(月) 18:42:27
zshの事は詳しくないのでもっと良い方法があるかもしれないけど
setopt hist_ignore_space をしてから alias ls=' ls' って先頭にスペースを入れると履歴に残らないよ
■ このスレッドは過去ログ倉庫に格納されています