- ベストアンサー
viの動作が異常
環境:FreeBSD4.3 FreeBSDサーバーに対して、windows98からtelnetでのリモートアクセスで 作業をしているのですが、おかしな事象が発生してしまいました。 viエディターで、ある文書を開きます。(例えばreadme.txt) その状態から、画面を下にスクロールさせるために下キーを押すとします。 すると画面が下にスクロールせずにアルファベットの「B」が入力されてしまうのです。 同様に上キーを押すと「A」が、左キーだと「D」が、右キーだと「C」が入力されてしまい、 どうにもなりません。 それ以降は「:q」を入力しても何をしても無視されてしまいます。 telnetを強制終了するしか、そこを抜け出す手段がなくなります。 こうなってしまったタイミングはわかりません。 気がついたらこんな状態でした。 コマンド入力とかは普通にできます。 「vi」の動きだけがおかしくなってしまったのです。 ちなみにこの事象が起きるのはリモート操作の時のみです。 直接UNIXマシンで作業をすれば、正常にviを使えます。 こんなワケのわからない状態なのですが、何か解決方法があるのでしょうか? すみませんがアドバイスをよろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
おかしいですね。 手元の環境ではwindowsのteraterm proからtelnetでログインして環境変数をvt100に設定している状態では矢印キーも効きます。 試したのはPC互換機のwin2000でHHKの場合とノート(IBM ThinPad)win2000日本語キーボードの2つです。 利用しているtelnetクライアントソフトがなにか知りませんが、矢印キーを押したときに送信されるキーコードがfreebsdのターミナル設定(terminfo)で定義されている矢印キーのキーコードと一致していないだけかもしれません。 これを確認するために初めてviで矢印キーを使いました。普通はhjklでしょう? windowsで使っているtelnetクライアントソフトがなにか知りませんが、そいつのマニュアルとログインしているfreebsdマシンの環境変数(term)を確認するのが最初かとおもいます。 freebsdとnetbsdにログインして確認したところterminfoはありませんでした。失礼。 /usr/share/etc/termcapがあるのでman 5 termcapをみながらオリジナルターミナル設定ファイルを書けばなんとでもなるでしょう。
その他の回答 (4)
- mph
- ベストアンサー率54% (39/72)
winのtelnetクライアントが送信するキーコードがサーバもしくはviの理解できない(または変なエスケープシーケンス)になっているのではないでしょうか? ファンクションキーや矢印キーやテンキーはキーコードが別なのでそれが原因だと思います。 今、netbsdとfreebsdにteraterm proのsshプラグインとteratermでログインしたらそのような現象には遭いませんでした。 telnetクライアントを交換すればよいと思います。 もちろん、端末設定をサーバがわにする方法もありますが、terminfo書けます?わたしはかけません。 あと、キーボートも多少関係するかもしれませんね。 今、HHKです。
- ken1-skillup
- ベストアンサー率33% (135/409)
私も似たようになることがあります。 矢印キーはなったことはありませんが・・・ SSHでログインしているとまずテンキーがまったく使えません。(Viの時だけ) :q もつかえなくなるときがあります。 :q! で対応できるときもありますが不確実です。 ご存知かもしれませんが!を付加してあげれば強制的に終了になります。又書き換えもW!とすればリードオンリでも書き換えできます。 私が推測したことはキーボードの設定が違うことからうまく認識しないのでは?ということです。 何も解決策がでなくて申し訳ないです。
私は、PCからtelnetでAIXにつなぐときになったことがあります。 上下などのボタンを押す前にESCキーを押せば使えました。 (理由はわかりませんが。)
補足
ESCキーを押した後、上下左右ボタンを押しても 結果が同じなんですよね。。すみません。
- mixi
- ベストアンサー率40% (143/356)
こんにちわ。 私はSolarisマシンへコンソール端末から接続した際になりました。この時はコンソール端末のせいでした。別のコンソール端末なら問題が無かったのですよ。 矢印キーの変わりに、HJKLの各キーでカーソルが動きます。これはどうでしたか?
補足
HJKLの各キーなら上下左右の移動が可能です。 これらのキーに慣れるしかないんですかねぇ。。。 ちなみに、別のコンソール端末でも同様の事象が起きてしまいます。
補足
telnetする端末が違っても結果は同じなんですよね。 クライアント側から操作する限りは。 ということはサーバー側の問題なんでしょうか。 ということはterminfoとかいうのをいじらなければならないんですか? そんなもの見たことも聞いたこともありません(^_^;