オートコンプリート関数を独自のエイリアスにミラーリングするにはどうすればよいですか(14.04)

WBang

12.04マシンで使用したエイリアスがたくさんあります。

例:

alias pssh="tsocks ssh"
alias pscp="tsocks scp"
alias prdp="tsocks xfreerdp  ..........SOMETHING ...."

これらのエイリアスは、通常のLinuxコマンド(scp、ssh ect。)を変更したものであるため、これらのエイリアスには、元のエイリアスと同じオートコンプリートルールを設定する必要があります。通常のコマンドのルールはまったく問題ないので、独自のルールを作成したくありません。

12.04では、以下が完全に機能しました。

complete -F _ssh pssh
complete -F _scp pscp
complete -F _ssh prdp

これは14.04では機能しません。オートコンプリートしようとすると、次のエラーが発生します。

bash: completion: function `_ssh' not found

psshを試す前にsshでオートコンプリートすると、すべてが機能します。私の知る限り、オートコンプリートルールは使用される前に読み込まれないためです。sshのオートコンプリートルールが読み込まれるまで、私のルールは無効であり、エラーが発生します。

これを修正するにはどうすればよいですか、通常のLinuxコマンド用に定義されたオートコンプリートルールにエイリアスを正しくフックするにはどうすればよいですか?

ハビアー・ロペス

新しいbash完了リリース(> = 2.0)は、オートコンプリートロジックのロードに使用される時間を大幅に改善しました。彼らは要求に応じて必要なファイルをロードすることによってそれらを作成しました、これらのファイルの新しい場所は次のとおりです:

/ usr / share / bash-completion / completes /

ls -lah使用してそのようなディレクトリを探索すると、多くのソフトリンクが存在するよりもわかります。これは、すべてのコマンド/エイリアスにファイルが必要なためです。したがって、pssh、pscp、およびprdpがある場合は、これらの名前でリンクを作成する必要があります。

sudo ln -s /usr/share/bash-completion/completions/ssh /usr/share/bash-completion/completions/psss
sudo ln -s /usr/share/bash-completion/completions/ssh /usr/share/bash-completion/completions/pscp
sudo ln -s /usr/share/bash-completion/completions/ssh /usr/share/bash-completion/completions/prdp

もう1つの方法は、sshオートコンプリートファイルを/etc/bash_completion.d/にsyslinkすることです。

sudo ln -s /usr/share/bash-completion/completions/ssh /etc/bash_completion.d/ssh

前者の方法では、すべてのbashインタラクティブセッションで_ssh関数が読み込まれます(起動が遅くなります)。

上記の方法のいずれかを使用した後、complete -F _ssh pssh ...構成は_ssh関数をエイリアスに関連付けます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してくださいdebugcn@gmail.com

編集
0

コメントを追加

0

関連記事

分類Dev

Ubuntu 14,04 LTSにMuvizuをインストールするにはどうすればよいですか?

分類Dev

文字列をリトルエンディアン形式の「04x」16進数に変換するにはどうすればよいですか?

分類Dev

オートコンプリート関数を独自のエイリアスにミラーリングするにはどうすればよいですか(14.04)

分類Dev

文字列「04L」を「04」と「L」に変換するにはどうすればよいですか。

分類Dev

文字列「04L」を「04」と「L」に変換するにはどうすればよいですか。

分類Dev

Firestoreのタイムスタンプを2020年12月28日の3:52:04 AM UTC + 5:30のようなフォーマットされた日付と時刻として印刷するにはどうすればよいですか?

分類Dev

Ubuntu 18:04にQT5でCGALをどのようにインストールしますか?

分類Dev

Ubuntu 12; 04にnmapをインストールする方法

分類Dev

Ubuntu 12; 04にnmapをインストールする方法

分類Dev

01、02、03、04、05などのMS Wordでページ番号をフォーマットするにはどうすればよいですか?

分類Dev

RのデータフレームでコードT-25-4をT-25-04に変更するにはどうすればよいですか?

分類Dev

Python3で `2020-04-06T09:04:52.610 + 02:00`を` datetime.datetime`に変換するにはどうすればよいですか?

分類Dev

今月を反映するようにURLの終わりを変更するスクリプト例04/01/2019

分類Dev

2014/04でのWindowsXPサポートの終了は、エンドユーザーにとってどのような意味がありますか?

分類Dev

サーバー/クライアントのビデオおよびオーディオストリーミングアプリケーションをコーディングするにはどうすればよいですか?

分類Dev

コンテンツをAndroidアプリケーションにライブストリーミングするにはどうすればよいですか?

分類Dev

04ca:2012 BroadcomBluetoothアダプターのファームウェアをインストールする方法

分類Dev

アセンブラがADDEAX、1のマニュアルドキュメントの短い形式の05オペコード(add eax、imm32)を使用しないのに、04 ADD AL、1では使用するのはなぜですか?

分類Dev

Ne04jで選択したノードのキーと値のペアのリストをフィルタリングします

分類Dev

プライミングオートコンプリートの倍の幅を変更するにはどうすればよいですか?

分類Dev

Unityランチャーでスクリプトに独自のアイコンを与えるにはどうすればよいですか?

分類Dev

ライブ ストリーミングの YouTube ビデオをミラーリングするにはどうすればよいですか

分類Dev

ストリーミングラジオストリームURLへのリクエストを閉じるにはどうすればよいですか?

分類Dev

oh-my-zshでオートコンプリート付きのエイリアスを使用するにはどうすればよいですか?

分類Dev

Linux用の独自のアプリケーションインストーラーを作成するにはどうすればよいですか?

分類Dev

JavaScriptを使用してmysqlデータベースから2020-04-30ではなく30-04-2020のような日付を表示する

分類Dev

日時に00.000Z文字列:00:どのように私は2018-04-10T04を変換するのですか?

分類Dev

Javaの日付形式-GMT + 04:00

分類Dev

Apollonodejsサーバー; プラグインを作成するときにリクエストコンテキストでミューテーション/クエリスキーマパスを取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    Ubuntu 14,04 LTSにMuvizuをインストールするにはどうすればよいですか?

  2. 2

    文字列をリトルエンディアン形式の「04x」16進数に変換するにはどうすればよいですか?

  3. 3

    オートコンプリート関数を独自のエイリアスにミラーリングするにはどうすればよいですか(14.04)

  4. 4

    文字列「04L」を「04」と「L」に変換するにはどうすればよいですか。

  5. 5

    文字列「04L」を「04」と「L」に変換するにはどうすればよいですか。

  6. 6

    Firestoreのタイムスタンプを2020年12月28日の3:52:04 AM UTC + 5:30のようなフォーマットされた日付と時刻として印刷するにはどうすればよいですか?

  7. 7

    Ubuntu 18:04にQT5でCGALをどのようにインストールしますか?

  8. 8

    Ubuntu 12; 04にnmapをインストールする方法

  9. 9

    Ubuntu 12; 04にnmapをインストールする方法

  10. 10

    01、02、03、04、05などのMS Wordでページ番号をフォーマットするにはどうすればよいですか?

  11. 11

    RのデータフレームでコードT-25-4をT-25-04に変更するにはどうすればよいですか?

  12. 12

    Python3で `2020-04-06T09:04:52.610 + 02:00`を` datetime.datetime`に変換するにはどうすればよいですか?

  13. 13

    今月を反映するようにURLの終わりを変更するスクリプト例04/01/2019

  14. 14

    2014/04でのWindowsXPサポートの終了は、エンドユーザーにとってどのような意味がありますか?

  15. 15

    サーバー/クライアントのビデオおよびオーディオストリーミングアプリケーションをコーディングするにはどうすればよいですか?

  16. 16

    コンテンツをAndroidアプリケーションにライブストリーミングするにはどうすればよいですか?

  17. 17

    04ca:2012 BroadcomBluetoothアダプターのファームウェアをインストールする方法

  18. 18

    アセンブラがADDEAX、1のマニュアルドキュメントの短い形式の05オペコード(add eax、imm32)を使用しないのに、04 ADD AL、1では使用するのはなぜですか?

  19. 19

    Ne04jで選択したノードのキーと値のペアのリストをフィルタリングします

  20. 20

    プライミングオートコンプリートの倍の幅を変更するにはどうすればよいですか?

  21. 21

    Unityランチャーでスクリプトに独自のアイコンを与えるにはどうすればよいですか?

  22. 22

    ライブ ストリーミングの YouTube ビデオをミラーリングするにはどうすればよいですか

  23. 23

    ストリーミングラジオストリームURLへのリクエストを閉じるにはどうすればよいですか?

  24. 24

    oh-my-zshでオートコンプリート付きのエイリアスを使用するにはどうすればよいですか?

  25. 25

    Linux用の独自のアプリケーションインストーラーを作成するにはどうすればよいですか?

  26. 26

    JavaScriptを使用してmysqlデータベースから2020-04-30ではなく30-04-2020のような日付を表示する

  27. 27

    日時に00.000Z文字列:00:どのように私は2018-04-10T04を変換するのですか?

  28. 28

    Javaの日付形式-GMT + 04:00

  29. 29

    Apollonodejsサーバー; プラグインを作成するときにリクエストコンテキストでミューテーション/クエリスキーマパスを取得するにはどうすればよいですか?

ホットタグ

アーカイブ