青ポスの部屋

旅と技術とポエムのブログ

【win10】インラインでemacsが使えない【解決済】

今年初めての投稿で縁起がよくない記事だが、どうしても解決しないので投稿しようと思う。

先日windows10のPCを購入し、開発環境を整えようとしたのだが、今まで使ってきたEmacsがうまく動く方法を見つけることができなかった。その顛末をまとめようと思う。

1.bash on windows

windows10の最大の目玉といっていい機能が、bash on windowsだ。これはwindowsでネイティブなbashやapt-getが使える機能で、当然Emacsも使用することができる。

bash on windowsEmacsやその他gccなどソフトを使うことができた。しかしひとつ決定的に困ったものがある。それは、cygwinでの「cygstart」に相当するものがないということだ。
cygwinでは、たとえば

cygstart ./

でカレントディレクトリをエクスプローラで開くことができる。またパスを指定すればそこを開くこともできるし、ファイルを指定すれば対応するソフトで開くことができる。

bashでもexplorerを直接うちこめばエクスプローラを開くことができる。しかしbash on windowsdosのシステムとパスの指定の仕方がことなるので、パスを指定しても読み込めず開けないのである。
また、表記が欠けたりとbash on windows自体まだ発展途上な部分がある。

追記(2017.09.17):Powershellでは次のコマンドでカレントディレクトリをエクスプローラで開くことができる。

explorer .

2.MSYS2

結局bash on windows以外の環境をいれることになったのだが、MSYS2がいいと聞いたので使ってみることにした。

MSYS2はMinGW系のパッケージで、minttyというcygwinと同じターミナルソフトからLinuxライクなターミナル環境を構築するパッケージだ。
これでpacmanを使ってEmacsを入れてみた。すると別ウィンドウで開くGUIでは使うことができた。

Emacsをインラインで使う場合は-nwというオプションをつければよい。しかしそれではエラーメッセージが出て起動できなかった。

調べたところ、win8からminttyの入出力の問題で対話型ソフトがほとんど使えないらしい。しかしそれを修正するwinptyというラッパーができているとのことだったのでインストールして使ってみた。すると起動できずにプロンプトに戻ってしまい、その上入出力がめちゃくちゃになってしまった。pythonなどに対しても同じことになったのでwinptyの問題らしく、winptyをpacmanではなくソースからビルドしたりもしてみたが、直らなかった。それにそもそもMSYS2もcygstartは使えない(ただし調べていないだけで調べればそれっぽい機能はあるかもしれない)。

2017.02.08 追記:windows7でも同様の問題を確認した。さらにMSYS2ではリンクを張るのが少々面倒なようだ。

3.cygwin

というわけで、結局cygwinを入れてみた。インストールの仕方はwin7と変わらない。インストールはうまくいった。しかし動作はもっさりする。

まずはapt-cygからEmacsを入れてみたが、起動せずにそのままプロンプトに戻るという状態だった。しかしpythonは使うことができた。

cygwinにもwinptyをビルドしてみたが、MSYS2の場合と同じことになった。またソースからビルドもしてみたがうまくいかなかった。

4.AtomEmacs

というわけでEmacsCUIで使うのは断念して、Atomに乗り換えてみることにした。

Atomもインラインで使うことはできないが、コマンドラインから起動することができる。なので現在はcygwinからatomを起動して使っている。

AtomにはEmacsに近いキーバインドを使うパッケージatomic-emacsが用意されている。コメントアウトするときのM-;などが異なるが、大まかには同じようなショートカットが使える。

というわけなので、もしwindows10のLinuxライクなシステムでいい感じにEmacsCUIで使える方法を知っている人がいたら教えてください。

2017.10.14 追記
BoWのアップデートで解決しました。
bluepost69-tech.hatenablog.com

指定席券 きらきらうえつ

f:id:bluepost69:20170107213348j:plain

きらきらうえつは全車指定席の快速列車である。そのため青春18きっぷで使うには指定席券を買うことになる。

JR東日本では快速列車でも指定席の車内改札は省略されており、きらきらうえつも例外ではない。しかし記念スタンパーがあり車掌に希望すれば押してもらえるという案内が車内放送であったので、押してもらった。一応日付が入っているが、これは18きっぷの日付印として使えるのだろうかという疑問がわいた。

また酒田駅では「指定席券も一緒に出せ」と放送されていたので回収されるかと少しドキッとしたが、持ち帰りたいと申し出れば記念印を押して渡してくれた。シンプルなので無効印にも見えるが、乗車記念と書かれているので乗車記念印とわかる。

 

20161217 東北旅行 その3

明けましておめでとうございます。今年もよろしくお願いします。今年は旅行記の続きから始まります。

---

3日目はまるまる帰路に費やした。ひたすら東北本線東海道本線をたどったのだが、今回は黒磯~熱海というグリーン車が運行されている区間を長距離含んでいるので、グリーン車を使うことにした。

首都圏の普通列車グリーン車自由席は距離に関しては51kmを境に2段階しかない。また改札を出ないで同一方向に乗り継ぐ場合は通し料金で済むので、今回のように長距離乗車する場合は割安になる。黒磯~熱海は1本で運行されている本数は少なく乗り継ぐことになる。

今回は黒磯から乗車して上野で乗り継ぎ、熱海まで乗車した。かつては上野~東京はグリーン車が運行されておらずこのような乗り継ぎはできなかったが、上野東京ラインの開業によって可能となった。

感想としては、やはり非常に楽だった。前に一度熱海から小金井までボックスシートで行ったことがあったが、グリーン車はいすが柔らかい以外にリクライニングがあるので、とても快適に過ごすことができた。

熱海では伊東線のリゾート列車のようなものが止まっていた。

f:id:bluepost69:20161222003005j:plain

その後は東海道線を西へ進んでいったのだが、熱海から島田行きに乗って興津で乗り継いだ。というのもこの次に乗り継ぐ浜松行きは興津始発なので、終点まで行かず興津で乗り換えることによって座れる確率が高くなるのである。静岡地区ではよくあることで、時刻表を見れば気づくことができることだ。下りではこの先掛川でも乗り換えたほうがいいこともあり、上りでは興津行きの静岡乗換えなどがある。

帰りは途中でだんだん頭が痛くなり、大変だった。変な姿勢で寝すぎたからかもしれない。おかげで京都駅での締めのラーメンもミニサイズしか食べられなかった。

---

今回はなんとか夏に断念した旅程をたどることはできたが、やっぱり疲れた。今度からやっぱり新幹線も使いたい。