gedit
XWindowSystem
Xming
BashOnUbuntuOnWindows

BoUoWでGUIテキストエディタ(gedit)を使う。

備忘録。

環境は、
Windows10
bash on ubuntu on windows(gensim Doc2Vecで日本語処理したいため)
python3

問題発生

Doc2vecを使うにあたって、学習用で利用するらしい「.txt」ファイルをPythonがうまく読み込めない。
正確には、読み込める場合と読み込めない場合がある。
不安定。

どうも、Bash on ubuntu on windows特有の問題らしい。
http://aoe-tk.hatenablog.com/entry/2017/09/22/000459
(原文?)
https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

思いっきり、やってました。これ。
今回の問題は、ハードルが高そうな予感が(;´∀`)

では、早速対応。

上の記事では、Windows10側からのUbuntu側のファイルの操作(読み書き)を禁止しているように読み取れます。

なので、Ubuntu側でファイルを操作すれば問題なさそうにも考えられます。

それならば、
bashのvimエディタで「.txt」ファイルの作成。
日本語で1万文字くらいのテキストデータを、bash上でvimエディタに挿入してみましたが、何度やっても300文字くらいでフリーズしてしまいます。
vimエディタの使い方じたい、よくわかっていないので、すんなりあきらめ。

コマンドラインインターフェースじたい、僕にはちょっと、、、(-_-;)、、、むずしいかも。

思い切って、GUI導入することに。
ここからは、手順。

Xmingのインストール

次の2つの記事を参考に。ありがとうございます。
http://wgg.hatenablog.jp/entry/20161022/1477125614
http://verifiedby.me/adiary/0101

ここから、ダウンロード。
https://ja.osdn.net/projects/sfnet_xming/releases/

Xmingの実態?として、
Xming-6-9-0-31-setup.exe

フォントは
Xming-fonts-7-7-0-10-setup.exe

exeファイルなので、インストール方法は、Windows10側でダブルクリック。全部「Yes」でインストール完了。

Xmingの起動確認。

bashで

$ export DISPLAY=localhost:0.0
$ sudo apt install x11-apps

完了。

次のコマンドで、目玉ウィンドウ登場。
目玉がカーソルを追えば、とりあえず正常にインストールできたっぽい。

$ xeyes &

xming上で動かしたい軽量エディタ「gedit」をインストール。

$ sudo apt install gedit

このままだと、geditを起動しても日本語が麻雀パイのような表記になってしまう。
いろいろしらべ、フォントの問題だとわかり、次のフォントをインストール。

$ sudo apt-get install unifont

日本語フォントインストール。

$ sudo apt install fonts-ipafont

見やすくなりました。

かな漢字変換システムをインストール

$ sudo apt install uim uim-xim uim-anthy

次のコマンドで、日本語入力可能なgeditを起動。

$ DISPLAY=localhost:0.0 XMODIFIERS="@im=uim" GTK_IM_MODULE=uim QT_IM_MODULE=uim gedit &

無事、起動。日本語入力OK(*´Д`)

ただし、こっちのleafpadのほうが、フォントとか使い勝手がよさそうです。

$ DISPLAY=localhost:0.0 XMODIFIERS="@im=uim" GTK_IM_MODULE=uim QT_IM_MODULE=uim leafpad &

学習用データ(テキストファイル)を作成

Windows10のエディタで作成した学習用テキストデータをコピーして、bash on ubuntu on windows上のxmingで起動したgedit(ubuntu側のエディア)に貼り付けて保存。

bashを使ってdirコマンドで見てみると、とりあえず作成した「.txt」ファイルの存在確認はできました。

さて、pythonは読み込んでくれるか?(;´∀`)

jupyter notebook上で実行してみると、
無事成功(;・∀・)