Contenu connexe
Plus de Yuichiro Naito (20)
Tramp mode
- 3. 問題点
●
tramp-mode のターゲットに FreeBSD CURRENT のホ
ストを指定し、プロトコルに ssh を選択すると、 tramp-
mode が無応答となり使えなくなります。
●
dired-mode へも移行しません。
●
クライアントの OS は何でも構いません。
– FreeBSD, Linux, MacOS
●
クライアントの emacs バージョンも何でも良いです。
– Emacs 26, 24 で確認しました。
- 7. tramp-mode の動き
1.ssh でログインする
exec ssh -o ControlMaster=auto -o ControlPath='tramp.%C' -
o ControlPersist=no -e none <hostname>
2.sh を起動する。
exec env TERM='dumb'
INSIDE_EMACS='26.3,tramp:2.3.5.26.3' ENV=''
HISTFILE=~/.tramp_history PROMPT_COMMAND='' PS1=#
$ PS2='' PS3='' /bin/sh
3.端末環境を設定する( -echo があることに留意)
stty -inlcr -onlcr -echo kill '^U' erase '^H'
- 9. tramp-mode の誤動作
●
すると次のような結果が返ります。
_echo^M
#$ _ech ^H^M
#$ _ec ^H^M
#$ _e ^H^M
#$ _ ^H^M
#$ ^Hstty icanon erase ^H cols 32767_echo^M
#$ stty icanon erase ^H cols 32767_ech ^H^M
#$ stty icanon erase ^H cols 32767_ec ^H^M
#$ stty icanon erase ^H cols 32767_e ^H^M
#$ stty icanon erase ^H cols 32767_ ^H^M
#$ stty icanon erase ^H cols 32767 ^H^M
→ 返ってきた文字列を解釈できずに止まってしまいます。
- 10. tramp-mode の期待
●
tramp-mode としては “ stty -echo” を実行しているので sh
は入力文字列をエコーバックしないことを期待していると
思います。
●
“stty -echo” で sh がエコーバックしなければ、
” _echo^H^H^H^H ・・・” というコマンドは送られませ
ん。(前述の edit off の場合)
●
FreeBSD 12 以前では行の処理が tty に任されていたため
” _echo^H^H^H^H ・・・” の入力から ^H の処理が行われ
た結果を sh が受け取っていました。