init.el 作り直し

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))) ;; 最近開いたファイルリスト

See Also

Copyright © 髭。/ Hugo + hugo-book