タグ付けされた質問 「zsh」

Zshはインタラクティブな使用のために設計されたシェルですが、強力なスクリプト言語でもあります。

4
sudo suシェルを変更する
sudo su通常zsh(oh-my-zshフレームワークを使用)から実行する場合は常にsh、デフォルトで古いBourneシェル()を使用する必要があります(明らかに、これはほとんどの* nixのようなシステムでの標準の動作です)。実行後zsh、内shから実行sudo suすると、Zシェルが表示されますが、oh-my-zshによる改善はありません。 シェルのsudo su起動をに変更する方法はありますzshか?もしそうなら、それzshを使用して起動のそのインスタンスを持つことも可能oh-my-zshですか? OS X 10.8.4を使用しています。
13 macos  zsh  sudo  sh  oh-my-zsh 

3
oh-my-zshはautopushdをオンにしましたか?どうすればオフにできますか?
autopushdオンにしたように見えます(オンにしなかったことは知っています)。ディレクトリスタックをいつ使用するかを選択することを好むため、かなり面倒です。どうすればオフにできautopushdますか? 私はに見てきた~/.zshrcし、~/.oh-my-zsh/oh-my-zsh.shしかし、何かを見つけることができませんでした。 Mac OSX Lionでoh-my-zshを使用しています。
12 zsh  oh-my-zsh 

2
ターミナルの再描画の問題を引き起こすことなく、zshプロンプトに改行を入れるにはどうすればよいですか?
私はzshプロンプトのマイナーな(しかし迷惑な)問題を修正しようとしています。私が見ている問題は、GUI OS環境(たとえば、OS X 10.7.2のTerminal.appまたはiTerm 2)でターミナルを使用し、ターミナルウィンドウのサイズを変更すると、ターミナルが余分なプロンプトで再描画されることです。 。 次を含むクリーンな.zshrcで問題を再現しました。 export PROMPT="> " 明確にするために、これは2行のファイルです。文字列にはリテラルの改行がありますが、これはいくつかの(明らかに古い)場所で読んだものです。これは、端末ウィンドウのサイズを変更するまで機能しますが、その時点でプロンプト文字列が重複してしまいます。たとえば、新しいウィンドウを開くと、次のように表示*されます(カーソルのプレースホルダーとして使用されています): Last login: Wed Jan 25 19:05:06 on ttys000 > * 次に、ウィンドウのサイズを変更して短くすると、次のようになります。 Last login: Wed Jan 25 19:05:06 on ttys000 > > > > * 追加のプロンプト印刷の数は、ウィンドウサイズを変更する量にほぼ比例しているようです(通常は垂直方向)。プロンプト文字列から改行を削除すると、問題はなくなります。 のように$(print ">\n")、または改行をラップするなど、さまざまなことを試しました%{%}。これは、プロンプト文字列が実際にどれくらいの長さであるかなどについて、改行が描画しているものを混乱させるという事実に関係していると思います。この問題は解決可能ですか、それとも一緒に生きなければなりませんか?

2
ZSH:ウィジェットを直接ZLEする方法?
ドキュメントでは、セクション18.4ウィジェットで、「ウィジェットの仕事は単にいくつかの小さなアクションを実行することである」と述べています。しかし、これらのアクションを呼び出す方法、つまりウィジェットを呼び出す方法の一般的な説明は見つかりません。 ウィジェットをキーを使用してバインドすることができることを例で確認しました(たとえば、このQ&Aを参照)bindkey KEY WIDGET。次に、を使用してウィジェットを呼び出すことができますKEY。 私は切り替えたいと思ってset-local-history、試しました: $ zle set-local-history 1 zle: widgets can only be called when ZLE is active zle -h動作しませんが、ここで引数の説明を見つけました。しかし、そのようなものはないよう--callです。 何が悪いのですか?bindkeyなしでウィジェットを呼び出すにはどうすればよいですか?現在のステータスを印刷するにはどうすればよいですか?(set-local-history状態を切り替えます)
12 zsh 

3
zsh補完をBash補完のように動作させるにはどうすればよいですか?
私はzshに切り替えましたが、完了が嫌いです。タブを押すと20個のファイルがあり、それぞれに共有プレフィックスが付いている場合、zshは最初のファイルを完全に完成させ、タブを押すたびにリストを続行します。終わり近くにしたい場合は、Tabキーを何度も押す必要があります。 bashでは、これは単純でした。タブを押すと、プレフィックスが表示されます。入力を続けた場合(およびタブを押した場合)、bashは確実な範囲で完了します。この動作の方がはるかに直感的であると思いますが、bashよりもzshの他の機能の方を好みます。 このスタイルの補完を取得する方法はありますか?Googleはを提案setopt bash_autolistしましたが、これは私には効果がありませんでした(そして、私のシェルを起動したときにエラーメッセージが出力されませんでした)。 ありがとう。

5
並列シェルループ
私は多くのファイルを処理したいのですが、ここにたくさんのコアがあるので、並行してやりたいです: for i in *.myfiles; do do_something $i `derived_params $i` other_params; done Makefile ソリューションは知っていますが、コマンドにはシェルグロビングリストにない引数が必要です。私が見つけたのは: > function pwait() { > while [ $(jobs -p | wc -l) -ge $1 ]; do > sleep 1 > done > } > これを使用するには、ジョブとpwait呼び出しの後に実行するだけで、パラメーターは並列プロセスの数を示します。 > for i in *; do > do_something $i & > …

3
特定のソフトウェアバージョンをUbuntuのデフォルトにする
私は現在、ubuntu 12.04に2つのバージョンのphpをインストールしています。 1つはapt-getを使用してインストールされたphp 5.3用で、もう1つはphp 5.5でxamppを使用してインストールされています これらのコマンドを実行すると: > which php /usr/bin/php > php --version PHP 5.3.10-1ubuntu3.8 with Suhosin-Patch (cli) (built: Sep 4 2013 20:05:42) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethan >echo $PATH /home/chanhxc/bin /usr/lib/lightdm/lightdm …
11 linux  ubuntu  php  zsh  oh-my-zsh 

1
zshでユーザー入力の行を読み取るより良い方法は?(例えばzleを使って?)
Zsh readは何らかの理由で^M、<Enter>キーストロークとして受け入れる代わりにをエコーします。(-dが設定されている場合、それらはとして認識され<Enter>ますが、エコーされます。)また、バックスペースキーなどの基本的な機能もサポートしていません。 ハッキング/実行することでこれを回避できますbash、 > a=$(bash -c 'read -e -p "What would you like to do?: " tmp; echo $tmp') What would you like to do?: eat cake > echo $a eat cake しかし、もっとすっきりした方法があるかどうか疑問に思っています。
11 zsh 

2
ZSH履歴の一致を循環-増分パターン-検索-後方
最近history-incremental-pattern-search-backward、検索のパターンが可能になるため、履歴検索を使用するように切り替えました。これが私のセットアップ方法です.zshrc bindkey -M vicmd '/' history-incremental-pattern-search-backward これはうまくいきますが、検索メニューから次の試合に行く方法がわかりません。 % cat foobarbaz.txt bck-i-search: f*baz これを行うための鍵はありますか?
10 history  zsh 

1
history-search-backwardはzshとbashで異なる働きをします
私がしているhistory-search-backwardPageUpキーとしてマッピングされました。 入力すると: git push <PageUp><PageUp><PageUp> Bashでは、git pushで始まるすべての履歴エントリを循環し始めます Zshでは、gitで始まるすべての履歴エントリの循環を開始するためgit status、git remote updateなどのエントリが一覧表示されます。これは私が望んでいることではありません。 zshをbashのように動作させるにはどうすればよいですか?何setoptを設定すればよいですか?
10 zsh 

1
一部の(多くの場合長い)コマンドがbashおよびzshで文字化けするのはなぜですか?
多くの場合、bashまたはzshで長いコマンドを入力すると(これらは私がこれを確認した2つのシェルだけです)、カーソルが入力している文字列の途中のどこかにワープしますが、これがなぜであるか誰にも説明できますが、これについて何かできることがあるか? これは、シェルの履歴を(矢印キーを使用して)参照するとよく発生します。長いエントリに遭遇すると、長くて新しいエントリが前のエントリと混ざり合い、テキストが文字化けします。 短い文字列の例があります。 履歴に含まれるもの: mkdir sune1 mkdir sune2 私はに移動した場合mkdir sune1、その後にmkdir sune2、私は私のコマンドラインがあることを期待するmkdir sune2(これは私が今までナビゲートしているものであるため) -代わりに私が得ますmkdir1sune2。 私は何年もの間これに頻繁に気づきましたが、あまり気にしないようにしてください。しかし、変化の時だと思います!それで、何かアイデアはありますか?
10 bash  shell  zsh 

2
zsh gitオートコンプリートの調整
Ubuntu Hardyでbashからzsh 4.3.4に切り替えました。私はgitで開発していて、デフォルトのgit補完と常に競合していることに気づきます。ファイル名補完は、(git-ls-filesを使用して)追加または削除したものを検出することで賢くなりますが、時々問題が発生します---たとえば、サブディレクトリにいる場合です。また、カスタムgitエイリアス(たとえば、コミットのエイリアスとしてのgit ci)についても認識しません。 zshスーパーユーザー、この状況をどのように改善すればよいですか? 以下は私の考えの一部ですが、私はzshを初めて使用するので、それらを実装する方法がわかりません。 git filenameの補完を無効にして、branch / tag / command-name / command-optionの補完のみを残します。 「スマート」ファイル名補完を通常のzshファイル名補完に置き換えます。 これらのバグが修正されている場合は、新しい_git完了ファイルを取得し、システムのものをオーバーライドします。 ありがとう!
10 git  zsh 

3
正規表現による逆履歴検索
単純な正規表現(または複数の一致)をサポートする逆増分検索を可能にするツールを探しています。たとえば、「foo bar baz」というコマンドを見つけたい場合は、次のようにしてコマンドをすばやく見つけることができます。 CRTL-R(検索を開始)タイプ 'foo'(fooを使用する最新のコマンドと一致) 'foo | baz'( 'foo' AND 'baz'を含む最新のコマンドと一致)の入力を続行 このようなものはありますか?いいえの場合、どうすれば自分で実装できますか?
10 bash  history  zsh 


1
端末のエイリアス空コマンド
空のコマンドを送信したときに端末をクリアしたいのですが。つまり、空行clearにぶつかったら電話したいEnter。それは可能ですか? これは端末の動作方法ではないことを理解していますが、Enterキーをバインドして端末をチェックするなどの素晴らしいハックがあるかもしれません。
9 terminal  zsh  xterm 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.