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

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

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

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

Q&A

解決済

2回答

5800閲覧

Windows環境でのVimのチュートリアル、 日本語の問題

tf2014

総合スコア75

Vim

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

0グッド

0クリップ

投稿2017/07/02 18:43

編集2017/07/03 03:19

ウィンドウズ環境でVimのチュートリアルをはじめようと思って悪戦苦闘しています。コマンドプロンプトで「vimtutor」と入力すると、vimtutor.batからチュートリアル始まるのですが、文字化けしています。

そこで、

:set enc? :set fenc? :set fenc=uft-8

などを試してみたのですが、上手くいきません。そこで、諦めて、以下のファイル

C:\Program Files (x86)\Vim\vim80\tutor\tutor.ja.utf-8

を直接gvimで開いて問題解決できるのですが、ウィンドウズ版で

:Tutorial

vimtutor
の機能を正しく使う方法はありますか?

スクリーンショットは以下の通りです:イメージ説明

スクリーンショット2(バッチファイル変更後:vim -u NONE cmd "se fencs=utf-8" -c "set nocp" %TUTORCOPY%)
イメージ説明

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

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

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

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

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

guest

回答2

0

##対処1
http://vim-jp.org/vimdoc-ja/usr_01.html
をみるとスタートメニューのVimからチュートリアルを起動できるとあります。まずはそれを試してみてはいかがでしょう?

##対処2

対処1でダメだった場合・・・Linuxのvimのmanから問題の原因と対処を類推してみました。すみませんが、Windowsのコマンドプロンプトから起動できるvimを入れてないので正しく動作するか試せてません。Windowsのvimには通用しない内容かも知れませんのでその際はご容赦ください。

###原因の推測

vimは編集するファイルのエンコーディングをfileencodings(省略形fencs)変数に設定されたエンコーディングを順番に試して最初に成功したエンコーディングで読み込むというのがマニュアルに書いてありました。実際にどのエンコーディングで読み込んだのかを表す変数がfileencoding(短縮形fenc)です。fencは読み込んだ結果を表す変数であって、読み込んだ後に変更しても効果がないようです。

お使いの環境でどうなっているかを調べるにはvimを起動して(コマンドモードのまま)
:se fencs
とタイプすれば確認できます(seはsetコマンドの短縮形です)。例えば自分の環境(Linux:Ubuntu)では
fileencodings=ucs-bom,utf-8,default,latin1
となっており、ShiftJISなどのファイルは読み込めないようになっていました。
Linuxではvimtutorを起動直後に:se fencとするとencoding=utf-8と表示されるので、vimtutorがチュートリアルテキストを読み込む際にutf-8を仮定して読み込んだことが確認できました。
逆に、Windowsではfencsにutf-8が含まれていないのかも知れません。(そうだとするとtutorialのテキストがutf-8で用意されていることと矛盾するように思えますけど・・・)

###対処方法(推測)

vimtutorはバッチファイルとして提供されているとのことですが、最後の方にvimを起動するコマンドが書かれているはずです。Linuxでは以下のようになっています。

$VIM -f -u NONE -c "set nocp" $TUTORCOPY

Windowsでは次のようになっているかも知れません。

%VIM% -f -u NONE -c "set nocp" %TUTORCOPY%

この行に--cmd "se fencs=utf-8"を追加すると文字化けが解消できる気がします。

%VIM% -f -u NONE --cmd "se fencs=utf-8" -c "set nocp" %TUTORCOPY%

注意:-cではなく--cmdを使う必要があります。-cはファイルを読み込んだ後に実行されるので意味がなさそうです。

なお、Windows環境のVIMのfencs変数の内容にutf-8が含まれない場合、utf-8エンコーディングのファイルは開けないことになりますので、.vimrc(初期設定ファイル)にfencsの設定を追加してutf-8を含めておくようにすると良いかも知れません。(そうしていなくてもUTF-8のBOMがついていたら自動的にutf-8としてvimが読み込んでくれるかも知れません・・・その辺りは実際にやってみないとなんとも言えません)

投稿2017/07/03 02:09

KSwordOfHaste

総合スコア18392

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

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

mattn

2017/07/03 02:16

vimtutor は意図的にユーザの設定に依存させないように起動しているので、逆にユーザ fencs の設定が作用してはいけません。
KSwordOfHaste

2017/07/03 03:22

> vimtutor は意図的にユーザの設定に依存させないように起動しているので -u NONEとしていることからそういうことなのかなぁと思いましたが一時ファイルをセーブするところでどのようにエンコーディングが配慮されているかようわからず、「とりあえずの推測で回答」しちゃいました。失礼しました。コメントありがとうございました。>mattnさん
mattn

2017/07/03 03:27

はい。何も問題でありませんのでお気になさらず。
guest

0

ベストアンサー

Vim 本体にパッチを送る有志のグループ、vim-jp の mattn といいます。こんにちわ。
(兼、vimtutor の翻訳をしたのは僕です)

バグの可能性があるので少し教えて下さい。

化けた状態のキャプチャを見せて頂く事は出来るでしょうか。
また OS のバージョン、Vim の入手元を教えて下さい。

追記

追加でもう1つ教えて下さい。コマンドプロンプトから where gvim を実行すると何が表示されますか?

投稿2017/07/03 00:58

編集2017/07/03 02:24
mattn

総合スコア5030

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

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

tf2014

2017/07/03 03:20 編集

翻訳者の方ですか。よろしくお願いします。 OS: Windows 7 Professional, Service Pack1 Vim: 8.0.69, Windows 32-bit GUI version with OLE Support ダウンロード元:ftp://ftp.vim.org/pub/vim/pc/gvim80-069.exe (ダウンロード元は、覚えておりませんが、クロームのダウンロード暦より上記と思われます。) where gvim:C:\Program Files (x86)\Vim\vim80\gvim.exe スクリーンショットは質問に追加しました。
mattn

2017/07/03 03:21

ありがとうございます。今の所、今まで見た事がない現象です。 お手数ですが、あと2つ教えて下さい。 環境変数 LANG は設定されておられますか?あと、起動した Vim で :echo has("multi_byte") を実行して 1 が表示されるでしょうか? 0 が表示される場合、マルチバイト対応の Vim でない可能性があります。 改善しない場合は https://vim-jp.org の右上から kaoriya 版をインストールして頂くと直る可能性があります。
mattn

2017/07/03 03:33

ちなみに kaoriya 版を入れた場合、vimtutor.bat コマンドは付属していません。kaoriya 版では起動した Vim から :Tutorial で起動する様になっています。
K.Takata

2017/07/03 03:41

スクリーンショットを見るとフォントが欧文フォントのようです。あと、公式のVimインストーラをお使いのようですが、それを使うと通常はメニューも日本語化されるはずですが、そうなっていないのは奇妙ですね。
mattn

2017/07/03 03:54

@k.takata そうなのです。その割には tutor の内容は日本語文字(cp932 の latin-1 表記?)っぽいのですよね。なので v:lang は動いているだろうという推測です。
tf2014

2017/07/03 04:27

環境変数 LANGとは、ウィンドウズのことですよね?LANGがなかったので、LANG=ja_JP.utf-8に変更したら、メニューが化けてしまいました。Vimチュートリアルも相変わらず化けたままです。 ウィンドウズですが、私はオリジナル(US英語版)を使っています。恐らく、そこが原因だと思われます。 tutor.ja.utf-8ファイルを直接gvimで開いて問題がないので、他に不便がない限りこのまま使おうと思います。 色々ありがとうございました。
mattn

2017/07/03 04:42

承知しました。ただ、最近はオフィシャル版もマルチバイト対応版を配っていたと思うので、一度アップデートされると良いかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問