えっ! Windows10から Vim が簡単に使えるぞ Windows Subsystem for Linux


win10vim_01

WinでVim! 今までできないことはなかったんですが、まぁ環境構築が面倒かったり完璧に動作しなかったりで使いにくかったんですがやっとその問題も解放された!? なんと! Win10 の標準機能で Ubuntu が使えるようになってたんですね。
LinuxカーネルとWindowsカーネルコンポーネントの間でうまく連携してくれているとか。いや ありがたい。結構前から話題になってたみたいですけど、職場では Win7 使っていたので全然気づきませんでした。ということで検証備忘録です。

Windows Subsystem for Linux を有効に

Windwos10 Home バージョン1607 を使っています。Windows Subsystem for Linux は現時点ではまだベータ版なので標準設定では使えません。使えるように設定します。

win10vim_02
まずは、コントロールパネルを開きます。コントロールパネルの開き方はいくつかありますが、今回は以下の方法で開きました。

  • 「Windows」キー+「x」
  • コントロールパネル をクリック

win10vim_03
コントロールパネルで、プログラム をクリックします。

win10vim_04
Windowsの機能の有効化または無効化 をクリックします。

win10vim_05

Windows Subsystem for Linux (Beta) をチェックします。

win10vim_06
再起動を促されるので、再起動します。

開発モード を有効に

まずは、Windowsの設定 を開きます。Windowsの設定 の開き方はいくつかありますが、今回は以下の方法で開きました。

  • 「Windows」キー+「i」

win10vim_07
更新とセキュリティ をクリックします。

win10vim_08
開発者向け > 開発モード を選択します。
開発モードのパッケージインストールが開始され、「PCを再起動するまで、一部の機能は動作しない可能性があります。」のメッセージが表示されます。再起動します。

Ubuntu のインストール

コマンドプロンプトを開きます。そして以下のコマンドを叩きます。

bash

C:\Users\hoge>bash
-- ベータ機能 --
これにより Windows に Ubuntu がインストールされます。Ubuntu は Canonical によって配布される製品であり、
次のサイトに示される条件に基づいてライセンスされています。
https://aka.ms/uowterms

続行するには、"y" を入力してください: y
Windows ストアからダウンロードしています... 100%
ファイル システムを展開しています。この処理には数分かかります...
既定の UNIX ユーザー アカウントを作成してください。ユーザー名は、Windows のユーザー名と一致する必要はありません。
詳細: https://aka.ms/wslusers を参照してください
新しい UNIX ユーザー名を入力してください: hoge
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
インストールが正常に終了しました
環境が間もなく開始されます...
ドキュメントを参照できる場所: https://aka.ms/wsldocs
hoge@DESKTOP-A1HMUG3:/mnt/c/Users/hoge$

まだ、Ubuntu がインストールされていない場合は、インストールが開始します。
Unixユーザ作成のため ユーザ名とパスワード の入力を促されるので、入力します。Windowsのユーザ名と一致する必要はありません。
インストールが自動で始まるのでしばらく待ちます。インストールが終了すると UbuntuモードになっているのでLinuxコマンド が使える状態になっています。

Ubuntu と コマンドプロンプトの切り替え

現在、Ubuntuモードだけどどうやってコマンドプロンプトに戻すのだろうと思って試しに次のコマンドを叩きました。

exit

hoge@DESKTOP-A1HMUG3:/mnt/c$ exit
exit

C:\Users\hoge>

ビンゴ!コマンドプロンプトに戻りました。再度「bash」と叩くと

bash

C:\Users\hoge>bash
hoge@DESKTOP-A1HMUG3:/mnt/c/Users/hoge$

Ubuntuモードになりました。切り替えかんたん!

Windows と Ubuntu のマウント

さて、Ubuntu から Vim でWindwosのファイル触りたいけどパスはどこに?

C:\Users\hoge>bash
hoge@DESKTOP-A1HMUG3:/$ cd /mnt/
hoge@DESKTOP-A1HMUG3:/mnt$ ls
c
hoge@DESKTOP-A1HMUG3:/mnt$

標準では、Ubuntu の「/mnt/c/」が Windows の「C:\」と対応しているようです。
win10vim_09

hoge@DESKTOP-A1HMUG3:/mnt/c/demo$ pwd
/mnt/c/demo
hoge@DESKTOP-A1HMUG3:/mnt/c/demo$ ll
total 8
drwxrwxrwx 2 root root 0 Jul 23 13:24 ./
drwxrwxrwx 2 root root 0 Jul 23 13:23 ../
drwxrwxrwx 2 root root 0 Jul 23 13:23 demo_dir/
-rwxrwxrwx 1 root root 7 Jul 23 13:24 demo.txt*

うん!完全一致!

Vim を使う

win10vim_10
まず、WindowsのGUIツールでテキストを記入。

win10vim_11

vim demo.txt

Vimは標準でインストールされているので、Ubuntuモードでそのまま操作できます。
ちゃんと日本語も化けずに表示されている。OK!

win10vim_12
次にVimから「Ubuntuより記述」と入力します。
あれ?あれあれ? 日本語入力ができない・・・

Windows Subsystem for Linux で日本語可能に

どうやら、Windows Subsystem for Linux の デフォルトで提供されているコンソールでは日本語入力ができないらしい。
調べてみると、Xming + FEP など結構複雑なインストールや設定で日本語している記事も多いのですが、コンソールが対応していないならコンソール変えちゃえ!って方向性で対応してみました。
私は「ConEmu」というコンソールツールを使いました。日本語も、Win Bashも対応しています。

win10vim_13
https://www.fosshub.com/ConEmu.html にアクセスして ConEmu をダウンロードします。
私は、「ConEmu Stable, Installer (32-bit, 64-bit) - 5.23 MB 」をダウンロードしました。
ダウンロードしたら、インストールします。すべてデフォルトで進めました。

win10vim_14
ConEmu を起動します。デフォルトなら コマンドプロンプト 画面が表示されています。
このままだと日本語やカーソルの動作がおかしいので少し設定を変更します。右上のハンバーガメニューをクリックし、Sttings・・・をクリックします。

win10vim_15
Monspaceのチェックを外します。これで日本語の重なりがなくなります。

win10vim_16
Tasks > Predefined tasks : {Bash:bash} の Start Consoles **** に以下のコードを追加します。

%windir%\system32\bash.exe -cur_console:p

これで、十字キーが使えなかったのが使えるようになりました。Linuxの過去に入力したコマンドを[↑]キーや[↓]キーで再実行できると楽ですしね。

win10vim_17

bash

bash コマンドを叩いて Ubuntuモードにします。

win10vim_18
きちんと日本語入力できました。まだ少し日本語操作しずらいので Vim や ConEmu の微調整が必要ですが、少しづつやっていこうと思います。保存もちゃんとできました

まとめ

Windwos の標準で linuxコマンドが使えるようになるのは、非常に大きな機能拡張ではないかと思います。これで、GUIツールを使わずに Windows と 外部のLinuxサーバとのファイルのやり取りがコマンドだけ(Windowsの機能だけ)でできるようになります。
ベータ版なのでまだまだ発展途上ですが、非常に期待できる機能なのでこれからが楽しみです。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です