私はUbuntuを実行しているコンピュータを使用し、SSHを介してRedHatコンピュータに接続します。 RedHatコンピュータは、Matlabをコマンドラインモード(matlab -nodesktop)として使用します。 Matlabのバージョンは7.10.0.499 (R2010a)
。
ñ「特殊文字」(例:など)を生成するキーを入力するとá問題が発生します...
このエイリアスをmatlabに設定してこの問題を解決しました。
alias mat 'xmodmap -e "keycode 47 = Escape" -e "keycode 34 = Escape"; matlab -nodesktop; setxkbmap;'
...しかし、このソリューションはグローバルにこれらの変更を実行するため、他のアプリケーション(ターミナル、ブラウザなどを含む)でこれらの文字を入力することはできません(matlabの実行中)。
これはこのバージョンのMatlabに問題があることを読みましたが、この場合は新しい質問が発生します。別のコンピュータに接続されている端末(xterm)でxmodmapを使用している場合、これらの変更が私のセッションにグローバルに伝播されるのはなぜですか?
ベストアンサー1
ローカルおよびリモートシステムのロケール設定が一致していることを確認してください。echo $LC_CTYPE
ローカル端末とSSHセッションで実行します。一致しない場合は、Matlabを使用して再試行してLC_CTYPE
正しい値に設定してください。それでもうまくいかない場合は、withexport LC_CTYPE=C
またはwithを使用してみてくださいexport LC_CTYPE=en_US
(暗い場所での撮影、Matlabエラーの性質がわかりません)。
UTF-8ロケールを使用している場合は、latin1などの8ビットロケールを試してください。
LC_CTYPE=en_US luit ssh redhat-host
ロケールを調整しても役に立たない場合は、より根本的なアプローチを試してください。つまり、stty istrip
Matlabを起動する前に端末で実行してください。入力した文字の8番目のビットが削除されます。アクセント文字を入力すると、MatlabはガベージASCII文字を受け取りますが、混乱を招くことはありません。en_US
latin-1ロケール(たとえば)に切り替えるだけでなく、これを行う必要があります。他のロケール、特にUTF-8では、ガベージ文字が制御文字になる可能性があります。
多くのstty設定がありますが、ASCII以外の文字を無視する設定は考えられません。試している場合は、stty
通常のデフォルトに戻すことができますstty sane
。これらの変更は端末にローカルに適用されます。