2016-10-24 9 views
3

zshのインラインループをbashのように動作させる方法があるかどうかを知りたいと思います。ZSHのインラインループを1行で再実行する方法(bashのような動作)

私は最近zshを使い始めましたが、これまでのところ私はそれが好きです。 zshには、bash、インラインループのように動作したいものが1つあります。

は、私はしばしばそうfor in a b cのような迅速なループを実行します - >ヒット入力してください - >do - >ヒット入力して、私はzshの中で変更するには、コマンド/ループをリコールするように...

、行は複数の上に包まれていますしかし、bashでは単なる1行です。

ZSH最初の実行:

[email protected] > for i in {a..c} 
for> do 
for> echo ${i} 
for> done 
a 
b 
c 

ZSHリピート<は>上矢印:

[email protected] > for i in {a..c} 
do 
echo ${i} 
done 

BASH最初の実行:

[[email protected] ~]$ for i in {a..c} 
> do 
> echo ${i} 
> done 
a 
b 
c 

BASHリピート<は>上矢印:

[[email protected] ~]$ for i in {a..c}; do echo ${i}; done 

答えて

1

フレッチャー編集のZsh Guideには素晴らしいオプションがあります:singlelinezleオプションです。これを設定すると、 "1つの行に限定して編集する"という質問が表示されます。

# without `singlelinezle` set 
user% for a in a b c; do echo $a; done 
# output: 
# a 
# b 
# c 
# <up-arrow> 
user% for a in a b c; do echo $a; done 

user% for a in a b c; do 
for> echo $a; 
for> done 
# output: 
# a 
# b 
# c 
# <up-arrow> 
user% for a in a b c; do 
echo $a 
done 

setopt singlelinezle 
# with `singlelinezle` set 
user% for a in a b c; do echo $a; done 
# output: 
# a 
# b 
# c 
# <up-arrow> 
user% for a in a b c; do echo $a; done 


user% for a in a b c; do 
for> echo $a 
for> done 
# output: 
# a 
# b 
# c 
# <up-arrow> 
user% for a in a b c; do\necho $a\ndone 

unsetopt singlelinezle 
関連する問題