ホストにあるUNIXに接続して、
プログラムを書いたりしたいのですが、
viエディタを使ってすると日本語入力がうまくいきません。

telnetで接続して、
viエディタを起動させて、
日本語を入力すると文字化けを起こしてしまいます。
receiveの設定もtransmitのコード設定も間違っていないはずなんですが、
ほかに原因がわかりません。

muleを使うっていう方法もあるのですが、
個人的にviが使いやすいので、なんとかviでやりたいです。

ほかに原因が分かる方教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

> unixのバージョンはSunOS vega 4.1.4 1 sum4mで、


> viのバージョンはSVR3.1でした。

ちょっと古めなんですね。vi 自体が日本語を扱えない可能性あり。
でも、

> % echo あああ と入力すると’あああ’の部分が消えてしまいます。

とあるので、vi だけの問題ではないかも。

環境変数 LANG と TERM がきちんとなっているか確認してみてください。

あと、stty の設定があっているかどうかも。私は普段このあたりで
あまり苦労したことがないので詳しくないのですが、istrip が OFF に
なっているかどうか、のあたり。

でも、入力した日本語が消えてしまうのですよね。istrip を間違って
いたら、化けるだけだしなあ…

他の方が回答されているように、vi 自体が日本語を扱えないと思うので、
とりあえずは日本語が扱える vi のクローン jvim や nvi を導入して
おきましょう。

# あまり回答になってなくて、申し訳ない m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

本当に助かりました。
とりあえず、viのクローンを入れてやってみます。
sttyの方も調べてみます。

ありがとうございました。

お礼日時:2001/06/18 09:34

Sun 側の端末設定はきちんと行えていますか?


vi 実行前に一度、次のコマンドを実行してみて下さい。

stty -istrip
    • good
    • 0

私も以前、Viで日本語入力がうまく出来ると便利と思って色々やったんですけど、純正?Viは、文字を1バイトで扱うので、基本的にだめみたいです。


だから、日本語のテキストファイルを呼び出して、どっか適当なところで一文字削除するとその後ろ全部おかしくなっちゃいます。二つ削除だと大丈夫なようですが、表示が化けたままだったりすることがありました。また、その文字コードによっては、改行コードのところから変になっちゃったりします。

だから、どうしてもViで日本語をやりたければ(操作法になれているとか)jvimなどのViのクローンから探すよりないでしょう。
    • good
    • 0

あと、環境変数 LANGの値も。



$ echo $LANG
の結果を見せてください。ただの空行だったり、
C
の場合、それを日本語を使えるように設定してやると直ったりします。
(それがまた環境に応じてja_JP.ujisだったり別だったりいろいろですけどね)

# a-kumaさんの補足要求で十分かと思いましたが最近のは
# LANG=Cじゃなくてもメッセージは「command not found」だったり
# することがあるので蛇足ながら。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
本当に助かりました。

お礼日時:2001/06/18 09:37

以前にも同様の質問が有りましたが、結論は日本語対応のviエディタを使っていなかったと言う落ちでした。


本来viは日本語に対応していません。日本語が使える場合はjvimなどにリンクされている場合です。

それから「UNIX」と言う名称のOSは現在存在しないので、実際のOS名・バージョン(例えばSolaris8等)を記述した方が正確な回答が得られやすいと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
本当に助かりました。

お礼日時:2001/06/18 09:35

状況が良く分からないので、まず、vi の問題なのか、vi 以外の問題なのかを


はっきりさせましょう。

vi 以外では日本語が使えているのでしょうか?
例えば、

% aaaaa ← ありえないコマンドを打ってみて

「コマンドが見つからんよ」というシェルのメッセージが日本語になっているか?

% echo あああ ← 日本語を扱うコマンドを使って

「あああ」ときちんと表示されるか?

両方がクリアされていれば、vi の問題である可能性が高いですね。
ただ、

> muleを使うっていう方法もあるのですが、

とあるので、mule では日本語を使えるのだ、と言うことのような気もするので、
vi の問題である可能性が高いような気がします。

unix の種類もよくわからないので、はっきりしたことは言えませんが、その
unix についている vi 自体が日本語を扱えない可能性があります。

とりあえずは、vi 自体の問題かどうかをはっきりさせることと、unix と vi の
バージョンを調べることで、もう少し詳しい回答が得られるかも。

unix のバージョンは uname -a の出力を、vi のバージョンは、vi を立ち上げて
:ver と打った出力を、ここに書き込んでみてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

説明不足ですみませんでした。
unixのバージョンはSunOS vega 4.1.4 1 sum4mで、
viのバージョンはSVR3.1でした。

あと、muleではきちんと日本語が入力できます。
viは日本語がenterキーを押すと文字化けを起こすのです。

% echo あああ と入力すると’あああ’の部分が消えてしまいます。

すみませんが何か原因が以上の説明でわかるときは回答をください。
お願いします。

お礼日時:2001/06/17 02:12

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qブラウザ以外の入力フォームに日本語入力できない。

ブラウザ以外の入力フォームに日本語入力できない。

ウィンドウズ7の付箋機能、最初は、日本語入力できたのですが、
ある日、ローマ字でしか入力できなくなりました。半角/全角キーを押しても変わりません。

どうやら、検索エンジンやokwaveとかブラウザの入力フォームにはふつうに日本語入力できるのですが、
付箋とか、ファイルの名前の変更とか、ブラウザ以外の入力フォームにはローマ字でしか入力できないみたいです。
ブラウザ以外で日本語入力するにはどうすればいいでしょうか?

ウィンドウズ7初心者ですのでお願いします。

Aベストアンサー

> 最初は、日本語入力できたのですが、・・・

マイクロソフト製以外の何かのプログラムをインストールした、ということはありませんか?。

> ウィンドウズ7初心者ですのでお願いします。

下記の確認チェック程度は行なってみてください。
1. レジストリを確認
※キー:Keyboard Layoutsの末尾が「s」であることに留意。(「s」の付かないキーもあるので間違わないように)
キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts
2. 8桁の国別サブキーが表示されているので、サブキーの下4桁が xxxx0411 であるものをチェックします。
例えば、下記のようなキーがあれば、ValueName(名前)、Value(データ)チェックする。
※ 00000411 は必ず存在するはずですが、他のキーはPC環境によって異なるので、無くても構わない)
00000411
E0010411
e2000411
3. ValueName(名前):Layout File の Value(データ)が KBDJPN.DLL となっていることを確認する。
KBDJPN.DLL は 小文字 kbdjpn.dll でもいい。
4. KBDJPN.DLL (または kbdjpn.dll )になっていない場合は 変更する。
5. すべての xxxx0411 について確認する。
6. 変更結果はPC再起動後から反映される。
---
この内容は下記の回答No.2 と同じものです。
http://oshiete.goo.ne.jp/qa/6221726.html
---
残るチェックポイントはキーボード ドライバーが「日本語キーボード」になっているか、ということですが先ずは上記の確認を行なってみてください。

> 最初は、日本語入力できたのですが、・・・

マイクロソフト製以外の何かのプログラムをインストールした、ということはありませんか?。

> ウィンドウズ7初心者ですのでお願いします。

下記の確認チェック程度は行なってみてください。
1. レジストリを確認
※キー:Keyboard Layoutsの末尾が「s」であることに留意。(「s」の付かないキーもあるので間違わないように)
キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts
2. 8桁の国別サブキーが表示されているので、サブキーの...続きを読む

QWindowsでtelnet経由のviを使用した場合

Redhat9にWindows2000よりtelnet接続しviを使用しています。

長文(1画面に収まらないもの)を編集する際のことでお尋ねします。

カーソルを下に移動して、そして、カーソルが画面の一番下に達した時、Redhatのターミナルでのviでは画面全体がスクロールする(下に新しい行が追加されると上の行が消える)のですが、Windowsのtelnetからのviだと、最下行のみ新しい行に置き換わって残りの上部の行はそのままで残ります。


これは仕様なのか何か設定が悪いのかどうなんでしょうか?

Aベストアンサー

このような現象は、接続した祭にターミナルから通知される端末タイプの設定が適切でない場合が多いです。

Windows2000のtelnetにおいては、デフォルトの端末タイプはANSIとなっています。
この設定をVT100などに変更して繋げば解消する可能性があります。
変更は引数無しで、telnetを起動しhelpと叩くと使い方がいろいろでますので、参照してください。
端末タイプの変更は、set TERM VT100 等となります。

Q日本語入力できない

インターネットエクスプローラーを使っていると突然日本語入力できなくなることがあります。(入力モードが日本語入力にならない)
別にIEを開くとそちらでは日本語入力できます。
原因をご存知の方いらっしゃいましたら教えてください。

Aベストアンサー

これは昔から内在しているバグです。
その症状が発生したら、アドレスバーを軽くクリックすると、日本語変換モードが選択できるようになる(漢字キーが有効になる)と思います。
95や98時代には頻発した現象でした。

Qviエディタの使い方

困っています。素人さんです。
Turbolinuxを使っているのですがviエディタを使っている時に”BS”キーを使うと”^?”と出てきて機能しません。
当然入力モードにはなっています。
挿入モードでも置換モードでも同じです。
なんとかならいのでしょうか?
よろしくお願いします。
 

Aベストアンサー

#1の方へのお礼に
>.confファイルを編集しようとしても#を消すことすらできない状態です。
とあるので気になったのですが、
ひょっとして # の次の位置にカーソルを持ってゆき、
そこでそのままBSなり、挿入モード(テキストモード)に入ってBSなりしてませんか?
基本的に、BSでは現在の挿入モードで書いた文字しか消せません。
ですから、たとえば挿入モードで
abcd
と書いて、一旦ESCでモードを抜け、
そのまま a で挿入モードに入って
efgh
を入力した状態(まだ挿入モード)では、
現在の挿入モードで書いたefghまではBSで消せますが、
それ以前に書いたabcdはBSでは消すことができません。

ということで、ご所望の操作としましては、
カーソル移動モード(コマンドモード)で消したい文字(例では#ですね)の上へカーソルを持ってゆき、
そこで x を押せば、その文字を削除することができます。
その他、使い方は#3の方のご紹介URLが簡潔でわかりやすいと思います。

QOffice系ソフトで日本語入力ができない

業務で使っているPCで、一部ソフトで日本語入力をすることができません。
使用PC:Dell LATITUDE
OS:Windows 2000 SP4

文字入力のツールバーは、ひらがな状態になっていますが、入力できる文字はすべて、半角英数になってしまいます。

DellのパソコンにWindows2000をインストールすると、101キーボードになる現象があるようなので、ドライバを日本語キーボードに変更しましたが、日本語入力できるようになりません。

できること
・メモ帳、ワードパットには、日本語入力可能
・IE6のアドレス部分には、日本語入力可能

できないこと
・Office系のソフトで、日本語入力不可能
・IE6の検索フォーム部分に、日本語入力不可能

業務で使用するパソコンなので、大変困っています。
助けてください。

Aベストアンサー

こんちには、キーボードが101キーボードになっていては
業務にも差し支えが起こりますね。

まず、SP4適用という事なのですがSP2適用前の
解決方法を示させて頂きます。

解決方法は3通り。
(1)ドライバを日本語キーボードに変更
これは既に試されている用なので無意味ですね。私も
以前当現象になった時、変更しても駄目でした。
(2)レジストリの[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
\Services\i8042prt\Parameters]の値が
"kbd106.dll"である事を確認して下さい。
もし"kbd101.dll"となっている場合は"kbd106.dll"
へ変更して下さい。
私は(2)の方法で以前問題を解決したことがあります。
(3)SP2を適用する
こちらも既にSP4適用済との事ですので不要と考え
ます。

まずは、(2)をご確認下さい。そして試されてみて問題が
解決されない場合は、レジストリの値を元に戻しておい
て下さい。
※レジストリエディタ起動方法は、コマンドプロンプト
 より regedit で起動。

ソース・詳細はこちらの「キーボードの配列が変です/
101 キーボードとして認識されます」項目参照
>http://homepage2.nifty.com/winfaq/w2k/device.html#971

もしも、上記方法で解決できない場合は briony さんが
仰る通り、Officeの入れ直しをお勧め致します。

参考までに当問題が発生する原因の一つに Microsoft
IntelliPoint Software Version 4.1 Windows 版 アッ
プデート プログラム(マイクロソフトマウスドライバ)
があります。以下にドライバ適用時注意事項を抜粋します


※ Windows 2000 および Windows NT 4.0 をお使い
 の場合、IntelliPoint 4.1 をインストールした後
 に Microsoft Office XP および Microsoft IME
 2002 をインストールすると、ログオン時にキーボー
 ド配列が英語キーボード配列に切り替わり、IME 言
 語バーが表示されなくなるという問題が発生すること
 があります。その結果、ユーザー名やパスワードを日
 本語キーボードのキー配置で入力できなくなります。

ソースはこちら
>http://www.microsoft.com/japan/hardware/mouse/download_win98.asp

以上、微力ですが問題が解決されることをお祈り致します。

こんちには、キーボードが101キーボードになっていては
業務にも差し支えが起こりますね。

まず、SP4適用という事なのですがSP2適用前の
解決方法を示させて頂きます。

解決方法は3通り。
(1)ドライバを日本語キーボードに変更
これは既に試されている用なので無意味ですね。私も
以前当現象になった時、変更しても駄目でした。
(2)レジストリの[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
\Services\i8042prt\Parameters]の値が
"kbd106.dll"である事を確認して下さい。
もし"kbd101.dl...続きを読む

Qエディタのviで行数を指定せずに、複数行をコピー&ペースト

エディタのviで、
複数行を選択してコピーして、それを別のところに貼り付けたいのですが、
やり方を教えてください。

nY のあとに Pなどとすれば、n行をコピー&ペーストできる、
というのはわかります。
でも、このやりかたでは、コピーするまえに行数がわかってないといけないと思います。(わたしは行数をいちいち数えている。)

わたしの知りたいのは、n行という行数を指定しなくてもできるやり方です。

たとえば、
Windowsのメモ帳なら、
シフトキー+矢印キーで範囲指定し、Control+Cでコピーし、コピー先の場所に移動し、Control+Vで貼り付けできます。
行数がわからなくても、コピー&ペーストできますよね。
そういうやりかたが知りたいのです。

行番号の表示がない状態でできるやりかたがいいです。(それがデフォルトの状態なので。)

わたしは、端末(PC)でエミュレータを立ち上げて、UNIXマシンに入っているのですが、
エミュレータの機能をつかったりとかマウスをつかったりはしないやり方を教えてください。

エディタのviで、
複数行を選択してコピーして、それを別のところに貼り付けたいのですが、
やり方を教えてください。

nY のあとに Pなどとすれば、n行をコピー&ペーストできる、
というのはわかります。
でも、このやりかたでは、コピーするまえに行数がわかってないといけないと思います。(わたしは行数をいちいち数えている。)

わたしの知りたいのは、n行という行数を指定しなくてもできるやり方です。

たとえば、
Windowsのメモ帳なら、
シフトキー+矢印キーで範囲指定し、Control+Cでコ...続きを読む

Aベストアンサー

No.3 の方の回答が、どの vi でも通用するやり方です。
行単位ではなくなりますが、3)~4)のところを : を押してコマンドモードに
移らずとも、コピー範囲の終了地点にカーソルを移動して y'a と打っても
OK です。

# 行単位ではなくなりますが

後、どの vi でも通用するやり方ではないのですが、vi クローンのうちのひとつ
で、vim というのを使うと、やや直感的になります。

V を押すと、行単位の範囲選択モードに入り、Windows に近い、選択範囲を
目で確認しつつ、複写することができます。

複写開始行にカーソルを移動して V 、選択範囲が反転表示されるので、終了行に
カーソルを移動して Y 。複写先の行に移動して、p or P で複写。

伝統的な vi の使い方を理解しつつ、便利な vi クローンを使えれば、使う
というのが良いのではないでしょうか?

# emacs 系に流れる、というのもひとつの選択肢かも (^^;

Qインターネットブラウザで、日本語入力ができない

1週間ほど前から、日本語が入力できないのです。ワードや、スカイプなどでは日本語入力可能ですが、Internet ExploreやSleipnirで、日本語入力が出来ないのです。
ちなみにこの質問はワードで打った文章を、コピーしました。
回復方法を教えてください。検索エンジンなども使えないのです。。。

Aベストアンサー

IE で日本語入力ができません
http://homepage2.nifty.com/winfaq/c/ietrouble.html#93

で対処出来なかった場合

(MSN Messengerを入れてる場合)
[ツール] - [オプション] から、[電話] タブの [自分の国/地域番号] を [日本(81)]に設定を行ってください。



(メモ帳等を起動して) IMEツールバーが表示されている状態にして、ツールバーを
右クリックし、[設定] をクリックします。
[詳細設定] タブをクリックし、[互換性の構成] 内にある[詳細なテキストサービスのサポートを
プログラムのすべてに拡張する(E)] にチェックを入れ、再起動。

あと考えられるとすると
[ツール]→[インターネットオプション]→[アドオンの管理]
の中身を一度全て無効にしてみて下さい。
それで直るようであれば、1つずつ有効にして原因を突き止めてみて下さい。

Q[vi]エディタ;ファイルを開く・閉じるコマンドとは?

質問させていただきます。[vi]エディタで、新規にファイルを開くコマンドを教えてください。[vi]を起動させるとき[vi]にファイル名を書いて起動させれば新しくファイルが作れますが、[vi]に何か書いているとき新しいファイルを開くにはどのようにすればよいのでしょうか。[:e]らしいのですが、今書いている[vi]の画面のまま、それまで書いていたものが消えて「新規のファイル」が開くというコマンドは無いのでしょうか。
 それと、[vi]を終了させずに[vi]の画面を閉じるというようなコマンドはありますか。初心者なので本で調べたのですが見つかりませんでした。[vi]を終了させれば閉じることはできますが、[vi]を終了させずに[vi]を閉じるなどという芸当はできるものなのでしょうか。ご存知でしたら教えてください。よろしくお願いいたします。

Aベストアンサー

普通に考えて、

:!vi (new filename)

ではどうでしょうか?
あとはもう一人ログインするとか。
(telnetの場合)
telnetクライアントをもう一つ起動

(X-Windowの場合)
ターミナルをもう一つ開く。

(マシンの前に座っててXを使ってない場合)
Alt+F*で複数ログインする

等。

Ctrl+ZでSuspendってのも一つの方法ですね。
他に方法がなかったら、私ならそれを使うかも。
(本当はAlt+F*でログインし直してますが)

Q半角/全角キーを押しても日本語入力できないときがあります

突然アルファベットしか入力できなくなり、半角/全角キーを押しても日本語入力に切り替えられないことがあります。
関係があるかは分かりませんが、IE7で日本語入力しているときにこのようにおかしくなることがあります。このときに他のソフトでは日本語入力可能です。一度他のソフトに切り替えて戻るとできるようになることもあります(できないこともあります)。
OSはWindows XPです。よろしくお願いいたします。

Aベストアンサー

IEの伝統的バグは7でも解決されていないのですね

http://homepage2.nifty.com/winfaq/c/ietrouble.html#93

IMEやCTFMONをタスクマネージャーで一旦終了してから再起動させてやるのもあり。

QエディタのViで、検索する文字列をテキスト中からコピーしてきたいのですが。

Viで、テキスト中にある文字列(パターン)を検索したいのですが、どうすればよいのでしょうか。

/tangoと入力すれば、tangoというパターンを検索できるのはわかるのですが、
tangoというパターンをキーボードから打つのではなくて、
テキスト中にtangoというパターンがあるのを見つけて
「あ、このtangoというのを検索したいな~~」
と思って、テキスト中からコピーしてきて検索する方法が知りたいのですが。

あと、Viの操作方法でよくわからないことが出てくるので、
やさしく解説しているサイトを教えていただけるとありがたいです。

Aベストアンサー

普通の vi では、簡単には無理です。

vi クローンのうちのひとつ vim であれば、単語にカーソルを合わせて
* と打つと、/\<tango\> としたのと同じことになります。
# と打つと、?\<tango\> としたのと同じことになります。

「どうしてもやりたい」ということであれば、以下のような手順で、出来ない
ことは無いです。

(1) 単語の先頭にカーソルを合わせる
(2) yw として単語を yank する
(3) 適当な空白行に行って、p として単語を copy する
(4) 行の先頭に / を挿入する
(5) その行を yy とやって copy する
(6) @@ と打つと、その単語を探す
(7) 探し終わったら、ファイルに加えた変更を戻しておく

どこまで vi を知っているか分からないので、一応解説を。

vi は、「バッファ」というものを持ってます。例えば、コピーする領域が
幾つもあると思ってください。

@ は、そのバッファをコマンドだと思って実行する機能があります。

先に紹介したやり方は、名前なしのバッファを使ったやり方ですが、探しながら
編集をしていくと、バッファの内容が変わってしまうので、いまいち使い勝手が
良くありません。

例えば、z という名前を持つバッファを使う場合には、"zyy とやって取り込み
実行するときには "z@ とやります。

複雑な操作をやるときや、一連の操作を繰り返し行ないたいときには、重宝します。

普通の vi では、簡単には無理です。

vi クローンのうちのひとつ vim であれば、単語にカーソルを合わせて
* と打つと、/\<tango\> としたのと同じことになります。
# と打つと、?\<tango\> としたのと同じことになります。

「どうしてもやりたい」ということであれば、以下のような手順で、出来ない
ことは無いです。

(1) 単語の先頭にカーソルを合わせる
(2) yw として単語を yank する
(3) 適当な空白行に行って、p として単語を copy する
(4) 行の先頭に / を挿入する
(5) その行を yy とや...続きを読む


人気Q&Aランキング