TABキーを取得してファイル名やコマンドなどをオートコンプリートする方法がまったくわかりません。
私はUnixライクなシステム(OS/390)を使用しており、sh(BASHではなくBourne Shell)で機能するが、他のシェル(tcshなど)では機能しないいくつかのスクリプトに依存しているため、シェルを切り替えることができません。 。私は通常、ローカルでbashを実行しているUbuntuのGNOMEターミナルからsshまたはtelnet経由でこのシステムに接続します。他の人は、Windows XPコマンドプロンプトからtelnet経由でOS/390システムに接続し、「set-oemacs」を発行した後にTABキーでオートコンプリートすることができます。 set -o emacs "、適切な機能の一部を取得します(たとえば、履歴を逆方向に移動するctrl-p)が、オートコンプリートは取得しません。
「set-ovi」オプションは知っていますが、「ESC- *」などを使用しても、単純なTABキーが他の人にも機能することがわかっているので魅力的ではありません。
Ubuntu、GNOMEターミナル、bash、またはsshについて、Windows XPコマンドプロンプト実行telnetとは異なるタブ文字を送信するものはありますか?
同じリモートマシン上の同じシェルを実行しているユーザーができるのに、タブをオートコンプリートできない理由について誰かが考えていますか?
タブのオートコンプリートを有効にするにはどうすればよいですか?
(正確な質問に対する答えはありませんが、多くの回避策があります。)
スクリプトシェルをインタラクティブシェルと一致させる必要はありません。 (たとえば、ほとんどの(t)cshまたはzshユーザーはshスクリプトを作成します)。 Bourne Shell(zsh、bash、tcsh)よりも優れたインタラクティブシェルを持っているか、インストールできる場合は、それを選択してください。できない場合でも、Kshがあるかどうかを確認してください。これは、BourneShellよりもわずかに優れたインタラクティブ機能を備えている可能性があります。
echo '
と入力すると、タブキーが送信する文字を確認できます。 Ctrl+VTab' | od -t x1
Enter。 0000000 09 0a
(つまり、位置0、2文字、タブと改行)が期待される出力です。これが問題になるとは思わない。
快適な環境が得られない場合は、ローカルマシンを使用してできるだけ多くのことをリモートで実行してみてください。これには浮き沈みがあります。
/os390hostname:/path/on/remote/machine
を開くと完了します)を介してリモートファイルを簡単に参照できます。 Eshell を使用して、リモートシェルインターフェイス(Emacsの組み込みシェル)を取得することもできます。リモートディレクトリ(cd /os390hostname:/path/on/remote/machine
)に変更すると、起動した外部コマンドがリモートマシンで実行されます。 rootとしてコマンドを実行する必要がある場合、Tramp(およびそれに基づくEshell)は sshをsuまたはSudoと組み合わせる 。set -o emacs
を発行でき、エラーメッセージが表示されない場合は、bourne Shell
ではなく、ksh派生物を使用している可能性があります。
Korn ShellはESCでオートコンプリートを行いますが、試してみましたか?
ところで:履歴エディターとファイル名の補完でBourne Shellを本当に使用したい場合は、次の場所で私のポータブルBourneShellを試すことができます。
http://sourceforge.net/projects/schilytools/files/
これはsbrk()からmalloc()に変換されたBourne Shellであるため、UNIX以外の環境で実行されます。
移植にはまだいくつかの問題があるかもしれません:
OS/390環境でEBCDICを使用している場合、ctype *ファイルにはいくつかの作業が必要です。
ご使用の環境がfork()またはOpenVMSのようなvfork()エミュレーションをサポートしていない場合、数日間の労力なしにコンパイルして実行する方法がない可能性があります。
機能のクイックチェックについては、 http://schillix.sourceforge.net/man/man1/bosh.1.html を参照してください。