Linux環境の設定
Lemur Proを買ったので、開発に使えるようベース環境の設定をした。
Emacsとzshの設定ファイルはMacと共有で設定することにした。
Zsh
macでは、.zshrc
と.zprofile
を使っている。実体はDropboxにあり、シンボリックリンクを貼っていた。さらにgitでバージョン管理もしている。これを基本的にそのままLinux側でも使う。
macOSとLinuxの切り替え
必要があれば、こんなふうにOSTYPE
で切り替える。
case ${OSTYPE} in
darwin*)
export PATH=$(brew --prefix)/smlnj/bin:"$PATH"
;;
linux*)
;;
esac
.zprofileが読まれない
が、Linux側で.zprofile
が読み込まれない。GNOME TerminalでRun command as login shell
をオンにする必要があった。
Emacs
同じinit.elを共有し、window-system
がmac
なのかx
なのか、またはsystem-type
がdarwin
なのかgnu/linux
なのかで切り替える。
フォントの設定
Noto Fontはひととおり最初から入っているので、日本語はNoto Sans JPを選ぶ。欧文フォントは、ずっと使っているSource Code Proにした。試行錯誤した結果、以下の設定にした。
(when (equal window-system 'x)
(let* ((size 12)
(asciifont "Source Code Pro")
(jpfont "Noto Sans CJK JP")
(h (* size 10))
(fontspec (font-spec :family asciifont))
(jp-fontspec (font-spec :family jpfont :size 15)))
(set-face-attribute 'default nil :family asciifont :height h)
(set-fontset-font nil 'japanese-jisx0213.2004-1 jp-fontspec)
(set-fontset-font nil 'japanese-jisx0213-2 jp-fontspec)
(set-fontset-font nil 'katakana-jisx0201 jp-fontspec)
(set-fontset-font nil '(#x0080 . #x024F) fontspec)
(set-fontset-font nil '(#x0370 . #x03FF) fontspec)
)
)
クリップボード
GNOMEのクリップボードとEmacsのkill/yankを相互に行き来できるようにする。
(when (equal window-system 'x)
(setq x-select-enable-clipboard t)
(setq x-select-enable-primary t)
)
日本語入力
最初はGNOMEのibus-mozcをそのまま使っていたが、Emacs上ではインライン変換にならないのが気持ち悪くて、emacs-mozcをいれた。emacs-mozcは、mozc.elのほかに、サポート用のバイナリemacs-mozc-binが必要になる。mozc.elはmelpaにもあるが、init.el
をまるごとMacと共有する関係上aptで入れることにした。(なお、melpaのmozcをMac側のEmacsにいれても、特に問題は起きなかった)
emacs-mozcパッケージのインストール
sudo apt install emacs-mozc # これでmozc.elと、emacs-mozc-binが両方インストールされる
init.el
(when (equal system-type 'gnu/linux)
(require 'mozc)
(setq default-input-method "japanese-mozc")
)
最初は(set-language-environment "Japanese")
を入れていたのだが、ただこれだけ行うと非ASCII文字の入ったファイルは、文字コードがEUC-JP(!)になる。set-language-environment
はヘルプによると
This sets the coding system priority and the default input method and sometimes other things.
とのことだ。UTF-8がデフォルトでよくて、mozcを明示的に指定する場合には特にメリットもなさそうだ。また、MacのEmacsではずっと、set-language-environment
なしで特に問題なくつかってきた。
Emacs上でC-\
を使って日本語入力するのはとても久しぶりでなつかしい感覚だ。そういえばMacのEmacsでもC-\
を使ってみるとEmacs標準の使いやすいとはいえない日本語入力が起動した。Emacsの設定ではもともとMac特有のものは別にしていたこともあり(fontの設定・Markdownプレビューアプリの設定など)、この程度の追加で普通にいつもの環境でEmacsが使えるようになった。RustやRubyのコードをLinux側でも編集し動かしてみているが、特に違和感なく使えている。
このブログはJekyllで構築しており、記事の編集中はtextlintが動作するようにしている。その環境もLinux側で問題なく動いていている。この記事はLemur Proで書いている。