init.el 作り直し #
40〜50歳代の方は経験あるのではなかろうか
- こだわってカスタマイズいていくのがめんどくさい → アプリをデフォ設定のまま使う
- 新しいものを試すのが億劫 → 古いのをそのまま使う
ワシの Emacs がそれ。本体はかろうじてアップデートしてるけど、ワーニングでたりしない限り init.el はそのまんま
Mozc + mozc-temp で「やっぱりモードレスな日本語入力は最高
」ってなって、
「次は emacs-slack
かなぁ」
とか
「久しぶりに mew
でもさわるかなぁ」
とかテンションあがってたけど、その前に、ベースの部分を見直してきれいにしとこかな、と。
数年来の煮しまった設定もあれば、今まで使ってなかった設定もあり
調べながら、削りながら、いろんな人のを参考にしながら、ひとまずここまで
- 等幅フォントだけはほんまめんどくさい。絵文字だったり○✕*☆だったり
- persistent-scratch
、やっと導入
- 横着してやってなかった scratch buffer の永続化こそ、横着者には必要だった
- 初 ido-vertical-mode 気持ちいい
- 初 recentf 便利。これでバンバン Kill buffer できる
- anzu
、数字出るだけで全然違うな
- swiper も試したけど、まだあやつりきらん
;; -*- Coding: utf-8 -*-
(setq inhibit-default-init t) ;; default.el を読み込まない
;; lang start
(set-language-environment "Japanese") ;; 言語環境
;;(set-default-coding-systems 'utf-8)
(prefer-coding-system 'utf-8) ;; デフォルト文字コード
;; lang end
;; set path start
(setq load-path
(append
(list
(expand-file-name "~/.emacs.d/my-lisp/"))
load-path))
(setq exec-path-from-shell-check-startup-files nil)
(exec-path-from-shell-initialize)
(setq default-directory "~/")
(setq command-line-default-directory "~/")
;; set path end
;; startup start
(setq inhibit-startup-message t) ;; スタートアップを表示しない
(tool-bar-mode 0) ;; ツールバーを表示しない
(line-number-mode t) ;; ステータスバーに行番号表示
(column-number-mode t);; ステータスバーに列番号表示
(show-paren-mode t) ;; カッコの対応関係をハイライト
(transient-mark-mode t) ;; 選択範囲をハイライト
(setq visible-bell t) ;; 警告音の代わりに画面フラッシュ
(setq require-final-newline t) ;; 最終行に改行を追加
(setq-default indicate-empty-lines t) ;; 終端の空行を明示
(setq-default indent-tabs-mode nil) ;; インデントをスペースに
;; startup end
;; key binding start
(global-set-key "\C-h" 'delete-backward-char)
(global-set-key "\C-xm" 'browse-url-at-point)
(when (and (eq system-type 'darwin) (eq window-system 'ns))
(setq ns-command-modifier (quote meta)) ;; Cmd キーを Meta に
;; (setq ns-alternate-modifier (quote super))) ;; option キーを Cmd に
(setq ns-alternate-modifier (quote meta))) ;; macOS キーバイドいらないので、option も Meta に
;; key binding end
;; 現在行のハイライト
(global-hl-line-mode)
(set-face-background 'highlight "#eee")
;;(setq hl-line-face 'underline)
;; set font start
(add-to-list 'default-frame-alist '(font . "MigMix 1M"))
(set-fontset-font t 'symbol (font-spec :family "Apple Color Emoji"))
(setq face-font-rescale-alist '(("Apple Color Emoji" . 0.772)))
;; いろはにほへと ちりぬるを わかよたれそ つねならむ
;; ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ
;; ○※○※○※○※○※○※○※ ○※○※○※○※○※○※
;; 😸🐕🦊🐼🐺😸🐕🦊🐼🐺😸🐕🦊 😸🐕🦊🐼🐺😸🐕🦊🐼🐺😸🐕🦊
;; set font end
;; ido mode start
(ido-mode t)
(require 'ido-vertical-mode) ;; 候補を縦に並べる
(ido-vertical-mode 1)
(setq ido-vertical-define-keys 'C-n-and-C-p-only)
;; ido mode end
;; recentf mode start
(recentf-mode t)
(setq recentf-max-saved-items 999)
(setq recentf-auto-cleanup 'never)
(setq recentf-exclude '("/recentf" "COMMIT_EDITMSG" "/.?TAGS" "/\\.emacs\\.d/\\.cask/" "/\\.emacs\\.d/elpa/"))
(run-with-idle-timer 30 t 'recentf-save-list) ;; 30 秒に 1 回保存
(global-set-key "\C-x\C-g" 'recentf-open-files)
;; recentf mode end
;; anzu-mode start
(require 'anzu)
(global-anzu-mode +1)
;;(setq anzu-use-migemo t)
(setq anzu-mode-lighter "") ;; マイナーモード名を空文字に
(setq anzu-deactivate-region t) ;; リージョン指定置換の際にハイライトしない
(setq anzu-search-threshold 1000)
(set-face-attribute 'anzu-mode-line nil :foreground "darkgreen")
;;anzu-mode end
;;;; swiper
;;(global-set-key "\C-s" 'swiper)
;;(global-set-key "\C-r" 'swiper-backward)
;; white-space start
(setq whitespace-style '(face
trailing
tabs
spaces
newline
spaces-mark
tab-mark
newline-mark))
(setq whitespace-space-regexp "\\(\x3000+\\)")
(setq whitespace-display-mappings
'((spaces-mark ?\x3000 [?\x25a1])
(tab-mark ?\t [?\x00bb ?\t] [?\\ ?\t])
(newline-mark ?\n [?\x2193 ?\n])))
(global-whitespace-mode 1)
;; white-space end
;; packages start
(require 'package)
(setq package-archives
'(("melpa" . "https://melpa.org/packages/")
("melpa-stable" . "https://stable.melpa.org/packages/")
("gnu" . "https://elpa.gnu.org/packages/")))
(package-initialize)
;;(package-refresh-contents) ;; 最新版
;; packages end
(setq mozc-helper-program-name "mozc_emacs_helper")
;;(global-set-key (kbd "M-n") #'toggle-input-method)
(global-set-key (kbd "M-j") #'mozc-temp-convert)
(global-set-key "\C-j" #'mozc-temp-convert)
;; markdown-mode
(setq auto-mode-alist (cons '("\\.md" . markdown-mode) auto-mode-alist))
;; wdired
(require 'wdired)
(define-key dired-mode-map "r" 'wdired-change-to-wdired-mode)
;; (require 'cl) を見逃す
(setq byte-compile-warnings '(not cl-functions obsolete))
;; for scratch buffer
(setq initial-scratch-message nil)
(setq initial-major-mode 'markdown-mode)
(persistent-scratch-setup-default)
;; 起動時にウィンドウを上下分割し、下側に最近開いたファイルリスト
(add-hook 'after-init-hook (lambda()
(setq initial-frame-alist '((width . 94) (height . 38)))
(setq w (selected-window))
(setq w2 (split-window w 25 nil));; 上下分割
(select-window w2)
(recentf-open-files))) ;; 最近開いたファイルリスト