scoop版emacsのセットアップ

Windos10、scoop版emacsのセットアップ

scoopでWindowsを入れられるようになったので、セットアップしてみた。

tr-imeを使用することで、scoopでインストールする普通のemacsでも日本語入力がストレスなくできる。

なお、この項は随時アップデートする予定だ。 現在、wsl版を使いつつ、Windows版に移行しているので、ついwsl版を使ってしまう。 それをちょっとずつ移行しているので、記載事項、今後も増える予定だ。

環境によって設定を変える

共通の設定ファイルで、基本的には大丈夫なのだけれど、パスとかウインドウ設定などが異なるので、OS固有の設定を自動で切り替えている。

(cond ; OSによって設定を切り替える
  ((eq system-type 'gnu/linux) ; X on WSL
   (load "~/.emacs.d/conf/setting-wsl.el"))
  ((eq system-type 'windows-nt) ; Windows
     (load "~/.emacs.d/conf/setting-win.el"))
  ((or (eq window-system 'mac) (eq window-system 'ns))
   (load "~/.emacs.d/conf/setting-mac.el")
   )
 )

use-packageを使っているので、起動時に足りないパッケージは自動で取得してくれる。 なので、基本的にはemacsをインストールして、設定ファイル軍を配置して、emacsを起動してしばらく待てばいつもの環境が得られる。

ただ、それだけではうまくいかないこともやはりある。 そのへんの問題を解決するメモを中心に書いておく。

magitを使う

emacsといえばmagit

magit使いたいためにemacsをWindowsにもセットアップしたと言っても過言ではない。

magit自体はinstall-package githubでインストールできるし、特に設定も必要ない。 (なんでかな?気になるけど、自由研究課題としてとりあえず放置)

magitというか、github

まずはgithubの自分のリポジトリを使えるようにする。

以前はデフォルトの状態で、ユーザ名とパスワードを入力すれば使用できた。今はこの方法は推奨されておらず、廃止予定のようだ。

そこで、sshのキーで接続できるようにする。 公式サイトの説明を順番どおりにやればできる。

余談だけど、分からないことがあるとついつい検索してしまうけれど、公式ドキュメントが一番便利ということが多い。

ssh-agentを自動起動する設定は以下がわかりやすい。 https://qiita.com/tmak_tsukamoto/items/c72399a4a6d7ff55fcdb

それと、URLはgit@github.comだ。 ユーザ名のところを自分のユーザ名にしてしまい<ユーザ名>@github.comとすると、エラーが出る。 以下のメッセージが出る。

Error: Permission denied (publickey)

正しく設定すると、.git/configのエントリは以下のようになる。

url = git@github.com:<ユーザ名>/リポジトリ名.git

wslからwindowsへの移行

普段使っているwslのemacsからの移行に際して、all-the-iconsを手動でインストールする必要があった。 (たぶん、以下の設定を書いておけば、自動でインストールしてくれるはず。)

(use-package all-the-icons)

all-the-iconsというのは、アイコンのことだ。ディレクトリとかファイル、Gitのリポジトリなど記号が収録されている。これと、doom-themeなどを併用すると、文字だけではイメージしにくい画面に記号を表示してくれる。テキストだけのときよりもいろいろと分かりやすい。

モードラインなどに、E2569などの記号が色付きで表示されて、「なにこれ?」となるときは、フォントのインストールがされていない可能性がある。フォントのインストールはパッケージのインストールとは別で、しかも手動だ。

公式サイトに手順が載っている。 M-x all-the-icons-install-fonts でフォントをダウンロードするので、ダウンロードしたフォントを手動(例えばダブルクリック)して、システムにインストールする。

blogを書く

blogは、hugoを使用している。 easy-hugoというツールが便利でこれもやはりemacsを使う理由になっている。

easy-hugo-pull-imageで、指定した画像ファイルを公開用のページにコピーできるのがかなり便利。

Windows移行時のhugoのエラー

特に問題はなかったのだが、一つだけ。

template for shortcode "mermaid" not found

というエラーについては、以下を参考に、サブモジュールをダウンロードすれば解決した。 このエラーは、僕がサブモジュールについてよく理解できていなくて、ミスっただけだ。

recurse-submodulesを忘れて、普通に git cloneしてしまい、今回のようなエラーに見舞われる (出所:「Hugo serverでショートコードエラー - Scribble」

tr-ime

ドキュメント通りの設定で使用。 ただし、doom-modelineとの関係で日本語の状態がうまく表示されない。

そこで、doom-modelineを以下のように設定しておく。まだ設定はよくわからないので、ドキュメントそのまま。

(use-package doom-modeline
  :ensure t
  :init (doom-modeline-mode 1)
)

このあとに、after-initのhookでw32-ime-initializeを走らせると、modelineの一番端に現在のIMEの状態が表示される。 正直、ちょっぴりかっこ悪い。。。なくてもいいかもなあ。

(use-package tr-ime
  :ensure t
  :init
  (tr-ime-advanced-install)
  :hook
  (after-init . w32-ime-initialize)
 
  :config
  (setq default-input-method "W32-IME")
  (setq-default w32-ime-mode-line-state-indicator "[--]")
  (setq w32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))
  (w32-ime-wrap-function-to-control-ime 'universal-argument)
  (w32-ime-wrap-function-to-control-ime 'read-string)
  (w32-ime-wrap-function-to-control-ime 'read-char)
  (w32-ime-wrap-function-to-control-ime 'read-from-minibuffer)
  (w32-ime-wrap-function-to-control-ime 'y-or-n-p)
  (w32-ime-wrap-function-to-control-ime 'yes-or-no-p)
  (w32-ime-wrap-function-to-control-ime 'map-y-or-n-p)
  (w32-ime-wrap-function-to-control-ime 'register-read-with-preview)
  (add-hook 'minibuffer-setup-hook 'deactivate-input-method)
)

忘れがちなことのメモ

ファイル形式の変換

文字コードを指定して開きなおす。微妙によく忘れるのでメモ。

C-x ENTER c (文字コード) C-x C-v

開いているファイルの文字コードを(次の保存時に)変更する。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。