質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

3回答

5592閲覧

Amazon Linuxで`man vim`を実行したら、文字化けしていた。なぜ?

yuji38kwmt

総合スコア437

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2018/05/03 10:34

編集2018/05/08 15:35

環境

ホスト

  • Xubuntu 18.04 LTS
  • xfce4-terminal 0.8.7.3
  • VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 10 2018 21:31:58)

リモート

  • Amazon Linux AMI release 2018.03
  • VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Mar 24 2017 18:24:58)

問題

AWSのEC2インスタンスにSSHで接続しています。
リモート先で、man vimコマンドを実行したら、マニュアルページが以下のように文字化けしていました。

イメージ説明

環境変数LANGは以下の通りです。

plain

1$ echo $LANG 2ja_JP.UTF-8

質問

ホストのXubuntuで、man vimを実行したところ、問題なく日本語が表示されていました。
(マニュアルページを日本語にするため、yum -y install man-pages-jaを実行した)
リモート先のAmazon Linuxで、マニュアルページが文字化けしているのは、なぜでしょうか?

また、解決方法がございましたら教えてください。
vimのマニュアルはブラウザで閲覧できるので、困ってはいません。

参考サイト

補足1 ターミナルの文字コード

ホストで使っているターミナルの文字コードはUTF-8です。

イメージ説明

補足2 vimのmanual page

以下のコマンドで、vimのman pageを確認しました。

$ whereis vim vim: /usr/bin/vim /usr/share/vim /usr/share/man/man1/vim.1.gz $ echo $LANG ja_JP.UTF-8 $ cp /usr/share/man/ja/man1/vim.1.gz . $ gunzip vim1.gz

vim.1ファイルをUTF-8で開いた結果です。文字化けしていました。

.TH VIM 1 "2006 Apr 11" .SH 名前 vim \- Vi IMproved, プログラマのテキストエディタ .SH 書式 .br .B vim [options] [file ..] .br .B vim [options] \- .br .B vim [options] \-t tag .br .B vim [options] \-q [errorfile] .PP .br .B ex .br .B view 〜〜〜〜

ホストのmanページは、文字化けていませんでした。

.TH VIM 1 "2006 Apr 11" .SH 名前 vim \- Vi IMproved, プログラマのテキストエディタ .SH 書式 .br .B vim [options] [file ..] .br .B vim [options] \- .br .B vim [options] \-t tag .br .B vim [options] \-q [errorfile] .PP .br .B ex .br .B view 〜〜〜〜

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

Amazon Linuxのベースとなっている(?)RHELの更に源流であるFedoraで報告され、すでに修正が取り込まれている不具合と同様の事象に見えます。

https://bugzilla.redhat.com/show_bug.cgi?id=1035606

どういった不具合かというと、RPMパッケージのビルド処理のうち、Vimのソースに含まれるマニュアルページの元ファイルをUTF-8に変換する処理において、
「「UTF8の元ファイルをlatin1として扱ってUTF8に変換する」というおかしな処理内容」が実行され、データが破損する、というもので、
RPMパッケージのビルド処理内で元ファイルの文字コードを判定し、もともとUTF-8であれば変換をスキップするといった内容がFedora 22で取り込まれています。
しかし、RHEL7はFedora 19をベースとしている関係上、上記の不具合への対処が取り込まれていないようで、Amazon Linuxも同様の影響を受けているのではないでしょうか。

Amazon Linuxではなく手元のCentOS7で確認した内容で恐縮ですが、
VimのSRPMに対して上記のRed Hat Bugzillaで提案されているのとほぼ同様の修正をSPECファイルに適用した上でパッケージをビルドし、得られたRPMパッケージをインストールしたところ、CentOS7で同様に発生していた日本語環境でのVim関係のmanページの文字化けが解消しました。

vim.specの差分は下記の通りです。

--- vim.spec.org 2018-06-14 22:35:24.008653501 +0900 +++ vim.spec 2018-06-14 22:34:40.351096102 +0900 @@ -772,6 +772,9 @@ rm -f %{buildroot}/%{_datadir}/vim/%{vimdir}/tutor/tutor.gr.utf-8~ ( cd %{buildroot}/%{_mandir} for i in `find ??/ -type f`; do + if [[ "`file --exclude soft $i`" == *UTF-8\ Unicode\ text* ]]; then + continue + fi bi=`basename $i` iconv -f latin1 -t UTF8 $i > %{buildroot}/$bi mv -f %{buildroot}/$bi $i

投稿2018/06/14 13:58

IWATAmutsumi

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuji38kwmt

2018/06/15 14:49

ありがとうございます! 理解できました! バグレポートが2013年と古いですね。 う〜ん闇が深い?
guest

0

あなたの使ってるターミナルソフトの文字コード設定をUTF8にしましょう


ってこれ、SJISできてるんじゃね?
インストールしたmanpageがSJISのものだったってことのような

投稿2018/05/03 10:36

編集2018/05/03 10:42
y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuji38kwmt

2018/05/08 15:37

man pageを確認しましたが、UTF-8, EUC-JP, Shift_JISのいずれの場合も、文字化けしていました。
guest

0

つLANG=C man vim

投稿2018/05/03 12:53

hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuji38kwmt

2018/05/08 15:36

ありがとうございます。このコマンドで、一時的に解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問