私はユーザーとホストで構成されたLDAPベースのネットワークで作業しています。私のユーザーはLDAPユーザーなので、すべてのホストに存在し、私のユーザーのホームディレクトリはマウントポイントとしてすべてのホストに存在します。
~/.bash_profile
ソースが~/.bashrc
あれば設定しておきました。
~/.bashrc
私の最後の行の中にset -o emacs
。
ローカルシェルは、ログイン後にemacsスタイル行編集を有効にするようにemacsオプションを正しく設定します。
ただし、他のホストでsshを実行すると、他~/.bashrc
のすべてをロードしてもset -o emacs
適用されないか、適用され上書きされます。
そのため、現在はset -o emacs
他のホストにSSHで接続するたびに手動で行う必要があります。
set -o emacs
Emacsライン編集が有効になっている間にインタラクティブシェルに入るとすぐに自動的に実行されるように、別のホストでSSH経由で実行する方法はありますか?
答え1
いくつかのコマンドを使用してmyの後にロードされ、myをオーバーライドする呼び出しが含まれていることstrace
がわかりました。私のローカルコンピュータには問題が存在しないため、localhostでは問題は発生しません。/etc/inputrc
~/.bashrc
set editing-mode vi
set -o emacs
/etc/inputrc
また、straceは代替アイテムとしてロードする~/.inputrc
前に何を見つけるべきかを決定します。/etc/inputrc
だから私たちはtouch ~/.inputrc
空のものを作成し、絞り込むinputrc
、set -o emacs
今SSHを使用してログインすることができます:)
答え2
ssh
標準入力と標準出力がssh
ローカル端末に渡されるリモートホストで新しいシェルを起動します。したがってset -o emacs
、実行する必要があります。離れてローカルホストではなくホスト。emacs
スタイルラインの編集が既定値なので、リモートファイルにすでに類似した行が含まれている可能性があるため、削除する必要がありますset -o vim
。