end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

Emacs 28.2 での日本語フォント指定は、set-face-attribute

これまで、emacs 27.2 を使用していましたが、28.2をinstallしたところ、 emacs起動時に以下のfont指定部でエラー

;(set-default-font "MS ゴシック-9")
(add-to-list 'default-frame-alist '(font . "MS ゴシック-14"))

どうやら、最近のemacsでは set-face-attribute を使用する必要があるらしい。

(set-face-attribute 'default nil :family "MS ゴシック" :height 110)

(参考) init.el 全体

いい機会ですので、init.el をスリムにしました

; -*- Mode: Emacs-Lisp ; Coding: utf-8 -*-

;参考command
;M-x query-replace-regexp                  ;正規表現による文字列の置換
;M-x replace-regexp                        ;正規表現による文字列の無条件置換
;M-x set-buffer-file-coding-system         ;文字+改行コードの変更
;M-x untabify ,M-x tabify                  ;タブ->スペース,スペース->タブ
;M-=                                       ;文字数,行数をカウント
;C-x RET c euc-jp-unix C-x C-f             ;文字コードを指定しfileを開く
;C-x RET r                                 ;文字コードを指定しfileを再度、開く
;M-x upcase-region, M-x downcase-region    ;大文字<->小文字
;C-/                                       ;undo
;M-x japanese-hankaku-region               ;全角->半角 変換
;M-x set-variable[RET]tab-width[RET]4[RET] ;tab幅変更
;M-x kill-rectangle                        ;矩形でcut
;M-x yank-rectangle                        ;矩形でpaste
;置換文字列 = C-q C-m(CR), C-q C-j(LF)     ;置換文字列に改行コードを使う
;置換コマンドを実行後、「C-q C-j」         ;改行置換
;M-x sort-lines                            ;sort
;C-u 2 M-x sort-fields                     ;no2 columnでsort
;C-c C-m                                   ;web-modeによる対応タブ表示
;C-c C-f                                   ;web-modeによるタグの折り畳み/展開
;C-c > or C-c <                            ;pythonでタブ幅を深く or 浅く


(prefer-coding-system 'utf-8-unix)      ; defaultの文字code
(set-face-attribute 'default nil :family "MS ゴシック" :height 110)

; 画面sizeと位置
(setq default-frame-alist
      (append (list
               '(width .  83)
               '(height . 56)
               '(top . 20)
               '(left . 800))
              default-frame-alist))

(show-paren-mode 1)                             ;対応するカッコを表示
(tool-bar-mode 0)                               ;tool bar表示
(setq inhibit-startup-message t)                ;start page非表示
(setq frame-title-format      "%f")             ;title barにfileのfull path表示
(setq line-number-mode t)                       ;行番号表示
(setq column-number-mode 1)                     ;列番号表示
(setq auto-save-default nil)                    ;自動保存
(setq-default make-backup-files nil)            ;BackUp File
(set-scroll-bar-mode 'right)                    ;スクロールバーを右側に表示
(global-set-key "\C-h" 'backward-delete-char)   ;C-h でBackSpace

;;;; keisen.el - Shift+矢印で簡単に罫線を描画 ;;;;;;;;;;;;;;;;;;;;;;
(global-set-key [S-right] 'keisen-right-move )
(global-set-key [S-left] 'keisen-left-move )
(global-set-key [S-up] 'keisen-up-move )
(global-set-key [S-down] 'keisen-down-move )

(autoload 'keisen-up-move "keisen" nil t)
(autoload 'keisen-down-move "keisen" nil t)
(autoload 'keisen-left-move "keisen" nil t)
(autoload 'keisen-right-move "keisen" nil t)

;;;;全角空白、タブ文字、行末空白の表示 ;;;;;;;;;;;;;;;;;;;;;

;;   http://homepage1.nifty.com/blankspace/emacs/color.html
(defface my-face-b-1 '((t (:background "bisque"))) nil)
(defface my-face-b-2 '((t (:background "LemonChiffon2"))) nil)
(defface my-face-u-1 '((t (:foreground "SteelBlue" :underline t))) nil)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
(defvar my-face-u-1 'my-face-u-1)
(defadvice font-lock-mode (before my-font-lock-mode ())
  (font-lock-add-keywords
   major-mode
   '((" " 0 my-face-b-1 append)
     ("\t" 0 my-face-b-2 append)
     ("[ \t]+$" 0 my-face-u-1 append)
     )))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)


;;;; japanese-holidays.el ;;;;;;;;;;;;;;;;;;;;
; http://emacs.rubikitch.com/japanese-holidays/

(with-eval-after-load "calendar"
  (require 'japanese-holidays)
  (setq calendar-holidays ; 他の国の祝日も表示させたい場合は適当に調整
        (append japanese-holidays holiday-local-holidays holiday-other-holidays))
  (setq calendar-mark-holidays-flag t)    ; 祝日をカレンダーに表示
  ;; 土曜日・日曜日を祝日として表示する場合、以下の設定を追加します。
  ;; 変数はデフォルトで設定済み
  (setq japanese-holiday-weekend '(0 6)    ; 土日を祝日として表示
        japanese-holiday-weekend-marker    ; 土曜日を水色で表示
        '(holiday nil nil nil nil nil japanese-holiday-saturday))
  (add-hook 'calendar-today-visible-hook 'japanese-holiday-mark-weekend)
  (add-hook 'calendar-today-invisible-hook 'japanese-holiday-mark-weekend)
  ;; “きょう”をマークするには以下の設定を追加します。
  (add-hook 'calendar-today-visible-hook 'calendar-mark-today)
  ;; org-agendaで祝日を表示する
  (setq org-agenda-include-diary t))


;;;; for python-mode ;;;;

(add-hook 'python-mode-hook
          '(lambda()
             (setq indent-tabs-mode nil)
             (setq indent-level 4)
             (setq python-indent 4)))

参考url