#+TITLE: サブ環境の Emacs の設定ファイル * はじめに サブ環境用の Emacs の設定ファイル。 可能な限りの可搬性を優先し、自動化や一部の詳細な設定はこのファイルではおこなわない。 ** 設定すること/しないこと 可搬性を優先するため下記の設定はこのファイルではない。 - 見た目に関連する設定 - フォントの設定 - テーマの設定 - Gnus の設定 それに対して org 関連は重要なため設定する。 どの環境も =~/org= を使う org のファイル置き場と仮定する。 なお、メイン環境との =~/org= の共有はしないとする。 * 環境構築の仕方 ホームディレクトリで下記を実行する。 #+begin_src shell :eval no git clone https://git.tojo.tokyo/init.el.git #+end_src =~/.emacs.d/init.el= の先頭に下記を追記。 #+begin_example (org-babel-load-file "~/init.el.git/init.org") #+end_example Emacs を起動したら下記をを実行して、SKK の辞書をダウンロードする。 #+begin_example M-x skk-get #+end_example 設定はこれで完了。 環境依存の設定はこのファイルを変更するのではなくて、 =~/.emacs.d/init.el= に設定を追記するように。 * パッケージマネージャの導入 =straight.el= を導入する。 #+begin_src emacs-lisp (defvar bootstrap-version) (let ((bootstrap-file (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) (bootstrap-version 5)) (unless (file-exists-p bootstrap-file) (with-current-buffer (url-retrieve-synchronously "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" 'silent 'inhibit-cookies) (goto-char (point-max)) (eval-print-last-sexp))) (load bootstrap-file nil 'nomessage)) #+end_src * バックアップファイルを作らないようにする 助けられた経験よりも邪魔に感じたことの方が明らかに多いため。 #+begin_src emacs-lisp (setq make-backup-files nil) #+end_src * インデントの設定 デフォルト設定は空白とタブを混ぜてインデントしてしまう。 空白のみを使ってインデントする。 #+begin_src emacs-lisp (setq-default indent-tabs-mode nil) #+end_src * 文字コードの設定 #+begin_src emacs-lisp (prefer-coding-system 'utf-8-unix) #+end_src * undo-tree-mode の設定 #+begin_src emacs-lisp (straight-use-package 'undo-tree) #+end_src #+begin_src emacs-lisp (setq undo-tree-auto-save-history nil) (global-undo-tree-mode) #+end_src * ベルを無効化する ベルが鳴らないようにする。 #+begin_src emacs-lisp (setq ring-bell-function 'ignore) #+end_src * SKK =ddskk= をインストールする。 #+begin_src emacs-lisp (straight-use-package 'ddskk) #+end_src SKK をデフォルトの入力メソッドに設定する。 #+begin_src emacs-lisp (setq default-input-method "japanese-skk") #+end_src システムサイドの辞書には =skk-get= コマンドでダウンロードした辞書を使う。 #+begin_src emacs-lisp (setq skk-large-jisyo "~/.emacs.d/skk-get-jisyo/SKK-JISYO.L") #+end_src * Helm Helm をインストールする。 #+begin_src emacs-lisp (straight-use-package 'helm) #+end_src 基本的な設定をする。 #+begin_src emacs-lisp (helm-mode t) (global-set-key (kbd "M-x") 'helm-M-x) (global-set-key (kbd "C-h") 'helm-command-prefix) #+end_src * which-key-mode うろ覚えでもキーバインドを叩けるようにする。 #+begin_src emacs-lisp (straight-use-package 'emacs-which-key) #+end_src which-key-mode を有効にする。 #+begin_src emacs-lisp (which-key-mode) #+end_src * Projectile #+begin_src emacs-lisp (straight-use-package 'projectile) #+end_src projectile-mode を有効にし、キーコンフィグを設定する。 #+begin_src emacs-lisp (projectile-mode 1) (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) #+end_src * 常に時刻が日本語で表示されるようにする 日本語で時刻が表示されるようにする。 この設定の必要性については [[https://www.tojo.tokyo/org-mode-japanese-timestamp.html][Emacs の時刻表記が日本語から英語に変わる問題の解決法]] を参照。 #+begin_src emacs-lisp (setq system-time-locale nil) #+end_src * Emacs を再起動する #+begin_src scheme (install emacs-restart-emacs) #+end_src * Paredit Lisp の構造的な編集を実現するのに必要。 #+begin_src scheme (install emacs-paredit) #+end_src 下記の設定は [[https://wikemacs.org/wiki/Paredit-mode][Paredit-mode - WikEmacs]] を参考にしている。 #+begin_src emacs-lisp (autoload 'enable-paredit-mode "paredit" "Turn on pseudo-structural editing of Lisp code." t) (add-hook 'emacs-lisp-mode-hook #'enable-paredit-mode) (add-hook 'eval-expression-minibuffer-setup-hook #'enable-paredit-mode) (add-hook 'ielm-mode-hook #'enable-paredit-mode) (add-hook 'lisp-mode-hook #'enable-paredit-mode) (add-hook 'lisp-interaction-mode-hook #'enable-paredit-mode) (add-hook 'scheme-mode-hook #'enable-paredit-mode) (add-hook 'racket-mode-hook #'enable-paredit-mode) #+end_src * facemenu を require する なんかよくわからんけど facemenu を Require しないと警告がでる。 #+begin_src emacs-lisp (require 'facemenu) #+end_src