UbuntuでEmacsを別ウィンドウで開くための設定備忘録

WindowsのUbuntuでEmacsを別ウィンドウで開けるようにするためになんかいろいろやったのでいろいろ書きました。

行った作業を最初から記録してるのでちょっと余計な情報があります(gccとか)。またなぜこの作業が必要かの説明は割愛します。


Linuxを有効化する

コントロールパネル→プログラム→プログラムと機能→Windowsの機能の有効化または無効化→「Linux用Windowsシステム」にチェックを入れてOKを押す でLinuxが有効化できました。

コントロールパネルは検索ボックスにぶち込んだ方が早いけど一応スタートボタン→Windowsシステムツール(Wまでスクロールするとある)から出すこともできます。


Ubuntuをインストールする

Microsoft Storeを起動して「Ubuntu」と検索して数字が書かれてないものをインストールします。私はこの過程で誤タップして全然いらないToDoアプリをインストールしてしまいました。

起動してユーザーIDとパスワードを設定します。パスワード打つときカーソル(?)が動かなくて怖かったけどなんとかなりました。

そのあとは

sudo apt update
sudo apt upgrade -y

と打つとアップグレードができるっぽいです。これはこのあとの話全部そうだけど、スペースとか正確に入れないといけないので記号の前後とか特に気をつけてください。私は5敗しました。


gccとEmacsを導入する

gccは

sudo apt install build-essential -y

Emacsは

sudo apt install emacs-gtk -y

と打ち込んだらそれぞれインストールできました。何が起こってるのか全然わかりません。

gccは

gcc —-version

と打ち込んでバージョンが出たら、Emacsは

emacs

と打ち込んで何かが起動したら成功です。Googleで「Emacs」と検索して出てくる画像となんか違うものが出てくるかもしれませんが大丈夫です。


VcXsrvをインストールする

Googleで「VcXsrv」と検索すると公式サイトが出てくるのでそこからインストールします。いろいろ出てくるけどNextを押してればいいです。ファイアウォールの警告みたいなやつは許可してください。

VcXsrv(名前がXLaunchとかになってるかも)を起動して、Multiple windows→Start no clientを選択して次に進みます。

その次に出てくるDisable access controlのチェックを外して、Additional parameters for VcXsrvに

-ac -xkblayout jp

と入力すると、日本語キーボード(JISキーボード)が使えるようになります。

Save configurationを押すと設定を保存することができます。完了を押すと、おそらくバックグラウンドでVcXsrvが起動するはずです。右下にある^←こんな感じのやつからインジケーターを表示すると、VcXsrvのアイコンがあるのがわかると思います。これに気付かずに何重もVcXsrvを起動しないように気をつけてください。私は4敗しました。


VcXsrvを自動起動させる

VcXsrvは前もって立ち上げておく必要がある→毎回設定するのダルい→自動起動させよう という考えです。多分やらなくてもいいんですが、起動忘れを防ぐために一応やりました。

スタートボタンを右クリックして「ファイル名を指定して実行」を選択し、「shell:startup」と入力するとスタートアップが出てきます。ここにVcXsrvのショートカットをコピペすると、VcXsrvが自動起動するようになります。

再起動させたらバックグラウンドでVcXsrvが起動していることがわかると思います。


UbuntuとVcXsrvを繋ぐ

VcXsrvを起動させた状態でUbuntuに

sudo apt install x11-apps

と入力してx11appsをインストールします。インストールしますか?という質問にはYと答えます。

そのあと

export DISPLAY=:0

と打ち込みました。このままエンターを押しても何も起きないんですが、その後Emacsを起動したら別ウィンドウになってました。ワオ。

別ウィンドウにならない場合は再起動してみるといいかもしれません。最初全然うまくいかなかったんですけど数時間置いたら急にできるようになってました。これ何?なんで?怖…

今のところUbuntuを起動するたびにこれを打ち込まなきゃいけないのでちょっと面倒です。自動化のコマンドも試したけどうまくいかなかったので改善策を探しています…。(追記:自動化できました。下で書きます)

あと

xeyes

と打つとマウスカーソルを追いかける目が出てきます。


vimを使う

(公開時は失敗していたので余談として書きましたが、解決方法がわかったので編集しました)

上のUbuntuとVcXsrvを繋ぐ作業は、vimを使って自動化できます。

x11appsをインストール後、

vi ~/.bashrc

と打ち込むと青い文字がいっぱい出てきます。

aとかを押すと「Insert」という白文字が下の方に出てきて、編集できるようになります。その中にさっきの

export DISPLAY=:0

を打ち込みます。とりあえず一行目に入れたけど場所によって何か変わるのかはわかりません。

編集が終わったらEscボタンを押したあとに「:wq」と入力すると保存されて元の画面に戻ります。このEscボタンで編集モードのオンオフができるみたいです。:wqは下の方に打ち込まれるけど「Insert」が出てなければ編集モードじゃないので大丈夫です。

そのあとUbuntuを再起動してEmacsを立ち上げると別ウィンドウになっていると思います。これでいちいち打つ必要がなくなりました。やったね!


おわり

おわりです。

さようなら。


参考