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

Zshは、多くの高度なコマンドラインとスクリプト機能を備えたシェルです。

1
ラッパー関数の引数と既存のコマンドのzshオートコンプリートを組み合わせる方法
私は主にgvimと多くの端末で働いています。もともと、すべてのファイルを単一のvimインスタンスで開くことを好みました。そのために、エイリアスを使用して、現在の「vimサーバー」の端末からファイルを開きました。 alias rv="gvim --remote-silent" しかし、1つのvimインスタンスで複数のプロジェクトから多くのファイルを開くと、生産性に影響するため、エイリアスを関数にアップグレードしています。 # main function rv() { local args options server options=$(getopt -o hils:t: -l "help,info,list,set:,target:" -- "$@") if [[ $? -ne 0 ]]; then echo "Failed to parse options." return 1 fi # a little magic, necessary when using getopt eval set -- "$options" # go …
40 zsh  autocomplete 


3
zsh補完で同じ行に最初の推測を表示するにはどうすればよいですか(魚のように)?
Fishで入力を開始すると、オートコンプリートは自動的に最初の自動補完された推測を行自体に表示します。 zshでは、タブを押す必要があり、以下にオートコンプリートが表示されます。とにかく、この点でzshを魚のように振る舞わせる方法はありますか? (Oh My Zshを使用しています...)
38 zsh  autocomplete  fish 

2
zshでavfs偽ディレクトリを完成させる
状況によっては、zshの完了システムを微調整して「偽の」ファイルを完了するにはどうすればよいですか? より正確には、AVFSファイルシステムは、すべてのアーカイブの横に「偽のディレクトリ」を作成することにより、アーカイブをディレクトリとして公開します。デフォルトでは、マウントポイントの下にディレクトリ階層全体を複製します~/.avfs。さらに、の下には~/.avfs、などのすべてのアーカイブファイルに対して/tmp/foo.zip、アーカイブファイル自体のほかに、アーカイブのコンテンツを公開する~/.avfs/tmp/foo.zipというディレクトリ~/.avfs/tmp/foo.zip#があります。ただし、この追加のディレクトリはのリストには表示されません~/.avfs/tmp。明示的に要求された場合にのみ存在します。(これは、一部の自動マウンターの動作に似ています。) mountavfs cd ~/.avfs/tmp/foo.zip\# 上記のようなコマンドを入力しても、そのようなディレクトリがないため、のfoo.zip#下~/.avfs/tmp/に補完として表示されません。フルパスが¹に$arc一致するファイルがあるときはいつでも~/.avfs/**/*.(tgz|zip)、ディレクトリが呼ばれているふりをする必要があることをzshに伝えるにはどうすればよい${arc}#ですか? (コマンドだけでなく、_filesまたはへのすべての呼び出しで完了を機能させたいことに注意してください。可能であれば、関数のコードを複製する必要はありません。)_dirscd_files ¹ およびその他のすべての拡張機能

1
シェルスクリプトでの「BASH-isms」の回避
Perl :: Criticに似たツールを使用して、シェルスクリプトを検査し、欠陥、移植性の問題、フォールバックのない非標準プログラムの使用、プログラムの減価償却などを指摘しますか? これset -o posixにより、POSIX以外の使用が無効になりますが、1から始まるzshインデックス付けのシェル配列、0からのbash、配列をまったくサポートしないashなど、知りたいことはわかりません。
37 bash  shell  zsh  ash 

8
git clone後に自動的にcdする方法は?
何かをした後cd、cloneコマンドによって作成されたディレクトリに自動的にしたいgit clone。 重要:Pretzoプロジェクトから自動的に取得するzsh-completionsが壊れるので、コマンドの構文を変更したりしません(エイリアス/関数を使用するなど)。 編集:私が正しいと答えを選ばなかった理由は、上記の条件を満たした答えが与えられなかったからです。 私はZSHを使用していますが、他のシェルでの回答も受け入れられます。
37 shell  zsh 

1
zshで逆検索を有効にする方法は?
私は最近(最終的に)zshに切り替えて、それを愛しています!これまでのところ、私が行方不明だということを一つのことがあるCtrl+ Rインクリメンタル履歴検索を実行します。 履歴が適切に設定されています HISTSIZE=10000 SAVEHIST=10000 HISTFILE=~/.zsh_history viキーバインドを使用しました bindkey -v しかし、Ctrl+ Rは機能しません。現在の行より上の行を削除しますが、これはvimでの動作ではありません。 助言がありますか?

3
可変コンテンツを読み取るよりもファイルを開くのが速いのはなぜですか?
ではbashスクリプト私はからのさまざまな値必要な/proc/ファイルを。今までは、そのようにファイルを直接grepする数十行がありました。 grep -oP '^MemFree: *\K[0-9]+' /proc/meminfo それをより効率的にするために、ファイルの内容を変数に保存し、それをgrepしました: a=$(</proc/meminfo) echo "$a" | grep -oP '^MemFree: *\K[0-9]+' ファイルを複数回開くのではなく、一度開くだけで変数の内容をgrepする必要があります。 bash 4.4.19 $ time for i in {1..1000};do grep ^MemFree /proc/meminfo;done >/dev/null real 0m0.803s user 0m0.619s sys 0m0.232s bash 4.4.19 $ a=$(</proc/meminfo) bash 4.4.19 $ time for i in {1..1000};do echo "$a"|grep ^MemFree; done …


3
Zshシェルで履歴コマンドの日時スタンプを表示する方法
ubuntuサーバーでhistoryコマンドを実行すると、次のような出力が得られます。 history ... 25 cd ~ 26 ls -a 27 vim /etc/gitconfig 28 vim ~/.gitconfig 特定のユーザーの日時を表示したい。しかし、私がそれらを仮定するとき: su otheruser export HISTTIMEFORMAT='%F %T ' history ... 25 cd ~ 26 ls -a 27 vim /etc/gitconfig 28 vim ~/.gitconfig まだ日付時刻は表示されません。zshシェルを使用しています。

3
:$ {param:= value}はどういう意味ですか?
Z-Shellのユーザーガイドで以下を読みました。 「true」の同義語は「:」です。この形式では、副作用はあるが使用すべきではない引数を与えるためによく使用されます。 : ${param:=value} これは、すべてのボーンシェルデリバティブの一般的なイディオムです。パラメータ展開で$paramは、以前に空だった場合は値valueが与えられ、それ以外の場合はそのままになります。それがパラメータ拡張の唯一の理由であるため:、引数を無視するために使用します。実際には、シェルはコマンドラインを簡潔に構築します-コロン、その後に値が何であれ$param、割り当てが行われたかどうかに関係なく-その後、コマンドを実行します。':'が与えられた引数に気付かないのは偶然です。 しかし、私はそれを理解していません。という:意味trueですが、式には2つのコロンがあります。小さな質問として、なぜこのイディオムがすべてのBourneシェル派生物でそんなに使われているのですか?どんな目的に役立ちますか? 注: このイディオムがbashとzshの両方で行うことに興味があります。 ありがとう
34 bash  shell  zsh 

4
zshのPS1の改行記号とは何ですか?
zsh用に複数行のPS1をセットアップしようとしていますが、zsh \nによって解析されませんでした。 PS1="%~\n %> " どのように設定すればよいですか?
34 zsh 

2
単純なコマンドのエイリアスとエクスポート
のような単純なコマンドの場合less、エイリアスを作成するか、オプションをエクスポートする方が良いでしょうか?あるものが他のものに勝る利点はありますか? たとえば、生の文字を表示lessする-Rオプションを常に使用する場合、これらのソリューションは両方とも機能します。 export LESS='-R' alias less='less -R' このような単純なケースの場合、一方が他方に勝る利点はありますか?一方が問題を引き起こし、もう一方が問題を起こさないシナリオはありますか? 私はいくつかのページとグーグルを読んinfoでいmanますが、まだこれに固執しています。
33 bash  zsh  alias 

7
スクリプトの絶対パスを取得するポータブルな方法?
(zsh)スクリプトが絶対パスを決定するための移植可能な方法は何ですか? Linuxでは、次のようなものを使用します mypath=$(readlink -f $0) ...しかし、これは移植性がありません。(たとえば、readlinkダーウィンでは-fフラグを認識せず、同等の機能もありませんreadlink。) よりポータブルな方法は何ですか?

1
oh-my-zshを使用してzshで「自動CD」を無効にする方法
グーグルで検索しても結果は表示されませんでした。私は名前のバイナリファイルがあります。ここで私が何を意味するかだx私のパスに(ない現在のフォルダを、それがであるPATH)、そしてまた、現在の作業ディレクトリに同じ名前のフォルダ。と入力xすると、バイナリを実行したいのですが、代わりにそのフォルダにcdします。どうすれば修正できますか?
29 shell  zsh  oh-my-zsh 

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