0

次を使用してsshキーのフィンガープリントを取得する必要がありました。

$ ssh-keygen -lf ~/.ssh/id_rsa_user.pub

入力後:ssh-keygen -lf ~/.ss TABオプションはありませんでした。

私がしなければなりませんでした:

$ compdef _files ssh-keygen

その後、ファイルパスを使用してオートコンプリートを利用できましたが、オートコンプリートコマンドが機能しなくなったため、入力ssh-keygen - Tabしても次の出力が表示されなくなりました。

$ ssh-keygen -
 -- option --
-B  -- show the bubblebabble digest of key
-C  -- provide new comment
-D  -- download key stored in smartcard reader
-N  -- provide new passphrase
-P  -- provide old passphrase
-U  -- upload key to smartcard reader
-b  -- specify number of bits in key
-c  -- change comment in private and public key files
-e  -- export key to SECSH file format
-f  -- key file
-i  -- import key to OpenSSH format
-l  -- show fingerprint of key file
-p  -- change passphrase of private key file
-q  -- silence ssh-keygen
-t  -- specify the type of the key to create
-y  -- get public key from private key

両方のオプションを有効にして、次のようなことができるようにする方法があるかどうか疑問に思っています。

ssh-keyg TABそれは私に与えるでしょう:

$ ssh-keygen

それから私はすることができます

$ ssh-keygen - TAB

これにより、オプションメニューが出力され、実行できるようになります。

$ ssh-keygen -lf ~/.ss TAB

そして、機能する可能性のあるオプションのリストを持っているので、最後に次のようなものが得られます:

$ ssh-keygen -lf ~/.ssh/id_rsa_user.pub

今のところ、~/.zshrcこれに追加するだけです:

compdef _files ssh-keygen
compdef _files adb
compdef _files mysql
...

しかし、_files補完を使用したいaveryコマンドに対してそれを行う必要があるため、常に使用_filesまたはフェイルオーバーする方法があるかどうかを知りたいです。

何か案は?

+をcsh押すとファイルオプションが表示されるように動作させることは可能でしょうか?Ctrld

アップデート:

-f最後の引数が の場合、オートコンプリートが機能することに気付きました。

ssh-keygen -l -f ~/.sshTAB

しかし、カスタム スクリプトの場合、どのような機能をコマンドするか、ウィジェット エイリアスが_files補完を強制するのに役立ちます。

4

1 に答える 1

0

解決策は、これに更新するzshことでした。

# check the zsh info
brew info zsh

# install zsh
brew install zsh

# add shell path
sudo vim /etc/shells

# add the following line into the very end of the file(/etc/shells)
/usr/local/bin/zsh

# change default shell
chsh -s /usr/local/bin/zsh

これを完了するのに問題がgit-flowありましたが、次のものを再インストールすることで修正されました--without-completions

$ brew install git --without-completions
于 2016-04-19T08:54:27.633 に答える