ずっとVim派でしたが、思うところあって(することがないので)Emacsを勉強することにしました。
Emacsは27.2、環境はPlamo Linuxをget_pkginfo -aで2022/04/15時点で最新にしたものです。
やったことで悩んだのは、
・起動時にエラーになる問題の対応
・twittering-modeを使用できるようにする
・起動時にエラーになる問題の対応
古いテンプレートを使用しているためか、私の環境では起動時にエラーが発生しました。
--debug-initを付けてEmacsを起動すると下記のように表示されます。
Debugger entered--Lisp error: (void-function set-default-font)
(set-default-font "Noto Sans Mono-8")
(progn (set-default-font "Noto Sans Mono-8") (set-fontset-font (frame-parameter nil 'font) 'japanese-jisx0208 '("Migu 2M" . "iso10646-1")) (set-fontset-font (frame-parameter nil 'font) 'japanese-jisx0212 '("Migu 2M" . "iso10646-1")))
(if (>= emacs-major-version 23) (progn (set-default-font "Noto Sans Mono-8") (set-fontset-font (frame-parameter nil 'font) 'japanese-jisx0208 '("Migu 2M" . "iso10646-1")) (set-fontset-font (frame-parameter nil 'font) 'japanese-jisx0212 '("Migu 2M" . "iso10646-1"))))
(progn (global-font-lock-mode 1) (if (>= emacs-major-version 21) (progn (blink-cursor-mode nil) (menu-bar-mode 1) (mouse-wheel-mode) (setq initial-frame-alist (append (list))) (set-frame-size (selected-frame) 97 30))) (if (>= emacs-major-version 23) (progn (set-default-font "Noto Sans Mono-8") (set-fontset-font (frame-parameter nil 'font) 'japanese-jisx0208 '("Migu 2M" . "iso10646-1")) (set-fontset-font (frame-parameter nil 'font) 'japanese-jisx0212 '("Migu 2M" . "iso10646-1")))))
(if window-system (progn (global-font-lock-mode 1) (if (>= emacs-major-version 21) (progn (blink-cursor-mode nil) (menu-bar-mode 1) (mouse-wheel-mode) (setq initial-frame-alist (append (list))) (set-frame-size (selected-frame) 97 30))) (if (>= emacs-major-version 23) (progn (set-default-font "Noto Sans Mono-8") (set-fontset-font (frame-parameter nil 'font) 'japanese-jisx0208 '("Migu 2M" . "iso10646-1")) (set-fontset-font (frame-parameter nil 'font) 'japanese-jisx0212 '("Migu 2M" . "iso10646-1"))))) (progn (global-font-lock-mode 1)))
eval-buffer(#<buffer *load*-942743> nil "/home/takahiro/.emacs.d/site-start.d/look.el" nil t) ; Reading at buffer position 2422
load-with-code-conversion("/home/takahiro/.emacs.d/site-start.d/look.el" "/home/takahiro/.emacs.d/site-start.d/look.el" nil nil)
load("/home/takahiro/.emacs.d/site-start.d/look")
(while files (load (car files)) (setq files (cdr files)))
(let* ((dir "~/.emacs.d/site-start.d") (el-suffix "\\.el\\'") (files (mapcar #'(lambda (path) (replace-regexp-in-string el-suffix "" path)) (directory-files dir t el-suffix)))) (while files (load (car files)) (setq files (cdr files))))
eval-buffer(#<buffer *load*> nil "/home/takahiro/.emacs.d/init.el" nil t) ; Reading at buffer position 316
load-with-code-conversion("/home/takahiro/.emacs.d/init.el" "/home/takahiro/.emacs.d/init.el" t t)
load("/home/takahiro/.emacs.d/init" noerror nomessage)
startup--load-user-init-file(#f(compiled-function () #<bytecode 0x32fe55>) #f(compiled-function () #<bytecode 0x32fe6d>) t)
command-line()
normal-top-level()
~/.emacs.d/site-start.d/look.elの下記の部分をコメントアウトするとエラーが出なくなりました。
;;; Emacs23 以上の設定 (TrueType/OpenType フォントの使用)
;; (if (>= emacs-major-version 23)
;; (progn
;; (set-default-font "Noto Sans Mono-8")
;; (set-fontset-font
;; (frame-parameter nil 'font)
;; 'japanese-jisx0208
;; '("Migu 2M" . "iso10646-1"))
;; (set-fontset-font
;; (frame-parameter nil 'font)
;; 'japanese-jisx0212
;; '("Migu 2M" . "iso10646-1"))
;; ;; Ascii フォントと日本語フォントの幅を調整する
;;; (setq face-font-rescale-alist
;;; '((".*Migu.*" . 1.3)
;;; (".*VL ゴシック.*" . 1.3)
;;; ("-cdac$" . 1.3)))
;; )) ; Emacs23 以上の設定
・twittering-modeを使用できるようにする
;;twittering-mode
(add-to-list 'load-path "~/.emacs.d/package/twittering-mode/")
(require 'twittering-mode)
(setq twittering-use-master-password t)
(defalias 'epa--decode-coding-string 'decode-coding-string)
(setq twittering-icon-mode t)
(defalias 'epa--decode-coding-string 'decode-coding-string)
と記述することにより起動するようになりました。廃止された関数を使っているのかな。
あと、マスターパスワードの入力がターミナルからになっているため、例えば多くのウィンドウマネージャーのAlt + F2でアプリ起動ダイアログ(?)が開きますが、これを使用してEmacsをウィンドウモードで起動するとパスワードを聞かれずにエラーになってしまいます。
xfce4-terminalからEmacsをウィンドウモードで起動するとxfce4-terminalにパスワード入力画面が表示されます。
これは、~/.gnupg/gpg-agent.confに下記の記述をすることで、GUIのパスワード入力ダイアログにして対応しました。
pinentry-program /usr/bin/pinentry-gtk-2
この記述をした後、Xを終了してさらにログアウトし、再度ログインしてstartxした後に有効になりました。
多分何かのプロセスを再起動すれば良かったのかと思います。
0 件のコメント:
コメントを投稿