# 最新オレEmacs設定
created 2014-12-20 modified 2023-12-14
ここに貼るために行頭にスペース1文字を入れるコマンド
sed -e 's/^/ /' < .emacs > dot.emacs.txt
2023年12月
fedora39, emacs29.1
;; .emacs ;; emacs 29.1 の起動時Warning を消す (setq comp-async-report-warnings-errors nil) ;; 言語、文字コード関係 (progn (set-language-environment "Japanese") (prefer-coding-system 'utf-8-unix) ;; mozc ;;(progn ;; (require 'mozc) ;; (setq default-input-method "japanese-mozc") ;; (define-key global-map [zenkaku-hankaku] 'toggle-input-method) ;; (define-key global-map [henkan] 'toggle-input-method) ;; (define-key global-map [muhenkan] 'deactivate-input-method) ;; (defadvice mozc-handle-event (around intercept-keys (event)) ;; "Intercept keys muhenkan and zenkaku-hankaku, before passing keys ;;to mozc-server (which the function mozc-handle-event does), to ;;properly disable mozc-mode." ;; (if (member event (list 'zenkaku-hankaku 'muhenkan)) ;; (progn ;; (mozc-clean-up-session) ;; (toggle-input-method)) ;; (progn ;(message "%s" event) ;debug ;; ad-do-it))) ;; (ad-activate 'mozc-handle-event) ;; ) ) ;; 実行環境のパス、URLなど (progn (setq load-path (cons "~/.emacs.d/elisp" load-path)) (progn (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t) (package-initialize) ) ) ;;;; 自分用 機能、キー設定 (progn (progn (define-key global-map "\C-z" 'undo) ;;(define-key global-map [C-tab] 'other-window) ;; C-x o (define-key global-map "\C-\M-o" 'other-frame) ;; C-x 5 o (define-key global-map "\C-cg" 'goto-line) (define-key global-map "\C-s" 'isearch-forward-regexp) (define-key global-map "\M-o" 'ff-get-other-file) (define-key global-map [C-tab] 'ff-get-other-file) (define-key global-map "\M-p" 'backward-list) (define-key global-map "\M-n" 'forward-list) ) (progn (defun toggle-indent-tabs-mode () (interactive) (setq indent-tabs-mode (not indent-tabs-mode)) (message "indent-tabs-mode is %s" indent-tabs-mode) ) (defun toggle-dedicate () "toggle dedicate status" (interactive) (set-window-dedicated-p (selected-window) (not (window-dedicated-p))) (message "window-dedicated-p is %s" (window-dedicated-p)) ) (defun incr-tab () (interactive) (setq tab-width (+ tab-width 1)) (message "tab-width = %d" tab-width) (redraw-frame) ) (defun decr-tab () (interactive) (setq tab-width (- tab-width 1)) (message "tab-width = %d" tab-width) (redraw-frame) ) ) (progn (define-key global-map [f1] 'toggle-indent-tabs-mode) (define-key global-map [C-f1] 'toggle-truncate-lines) (define-key global-map [M-f1] 'toggle-dedicate) (define-key global-map [f6] 'bury-buffer) (define-key global-map [(shift f6)] 'unbury-buffer) (define-key global-map [f7] 'decr-tab) (define-key global-map [f8] 'incr-tab) (define-key global-map [f9] "\C-u0\C-l") (define-key global-map [f11] 'enlarge-window) (define-key global-map [C-f11] 'shrink-window) (define-key global-map [f12] 'enlarge-window-horizontally) (define-key global-map [C-f12] 'shrink-window-horizontally) ) ) ;;;; モードごとのカスタマイズ ;; dired (eval-after-load "dired" '(progn ;;(fset 'dired-find-file-eucjp "\C-x\C-mceuc-japan\C-mf") ;;(define-key dired-mode-map "e" 'dired-find-file-eucjp) ;; dired モードで 大文字S で 通常 -> .始まり隠す -> selinuxの表示 -> 通常 を切り替える (defun dired-toggle-dot-files () (interactive) (if (not (string-match "Z" dired-actual-switches)) (if (string-match "a" dired-actual-switches) (setq dired-actual-switches "-l") (setq dired-actual-switches "-laZ") ) (setq dired-actual-switches dired-listing-switches) ;; "-la" ) (revert-buffer) ) (define-key dired-mode-map "S" 'dired-toggle-dot-files) (setq dired-dnd-protocol-alist '(("^file:///" . dnd-open-local-file) ("^file://" . dnd-open-file) ("^file:" . dnd-open-local-file))) ) ) ;; speedbar ;; インストール ;; M-x package-install sr-speedbar ;; ... は、版が古い。2016年で止まっている。 ;; 起動 ;; M-x sr-speedbar-toggle ;; 左側にするには ;; M-x customize-apropos で sr-speedbar-right-side を探して、nil にする ;; (eval-after-load 'speedbar '(progn (speedbar-add-supported-extension ".rb") (speedbar-add-supported-extension ".src") (speedbar-add-supported-extension ".conf") (speedbar-add-supported-extension ".a") (speedbar-add-supported-extension ".so") )) ;; ;;(require 'sr-speedbar) ;; markdown (progn (autoload 'markdown-mode "markdown-mode" "Major mode for editing Markdown files" t) (add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode)) (add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode)) (autoload 'gfm-mode "markdown-mode" "Major mode for editing GitHub Flavored Markdown files" t) (add-to-list 'auto-mode-alist '("README\\.md\\'" . gfm-mode)) ) ;; C言語 (progn (defun my-c-mode-hook () ;;(setq indent-tabs-mode t) ;;(modify-syntax-entry ?_ "w") (define-key c-mode-base-map "/" 'self-insert-command) (define-key c-mode-base-map "*" 'self-insert-command) ) (add-hook 'c-mode-hook 'my-c-mode-hook) ;; 定義箇所に飛ぶやつ (eval-after-load 'xref '(progn (define-key xref--xref-buffer-mode-map (kbd "RET") #'xref-quit-and-goto-xref) (define-key xref--button-map (kbd "RET") #'xref-quit-and-goto-xref) )) ;; FindOtherFile ff-find-other-file .h と.cで切り替えるやつ (setq cc-search-directories '("." "../include" "../src" "../include/*" "../src/*" "../../include/*" "../../src/*" "../../../include/*" "../../../include/*/*" "../../../src/*/*" "/usr/include" )) ) ;; ファイル名とモードの対応 (progn (add-to-list 'auto-mode-alist '("/Makefile" . makefile-gmake-mode)) (add-to-list 'auto-mode-alist '("\\.h$" . c++-mode)) ;;(load-library "bison-mode") ;;(add-to-list 'auto-mode-alist '("\\.l$" . bison-mode)) ;;(add-to-list 'auto-mode-alist '("\\.y$" . bison-mode)) (add-to-list 'auto-mode-alist '("\\.php$" . php-mode)) (add-to-list 'auto-mode-alist '("\\.html$" . xml-mode)) ) ;; 見栄え (progn ;; FONT ;; フォント名の一覧 を知るには... ;; (dolist (x (x-list-fonts "*")) (print x)) ;; "Monospace" "Liberation Mono" "DejaVu Sans Mono" ;; "VL Pゴシック" "VL ゴシック" (set-face-attribute 'default nil :family "DejaVu Sans Mono" :height 102) (set-fontset-font t 'japanese-jisx0208 (font-spec :family "VL ゴシック")) ;; 英数と漢字のバランス ;; (setq face-font-rescale-alist '(("VL ゴシック" . 1.2))) ;; 1.2 だと 英2:日1 方式になる ;; 最近は、英数5文字に日本語3文字が対応するのが流行りらしい。 ;; 日本語を1.2倍すると等幅になるってことは、emacs標準でそうなってる…はずなんだけど、 ;; 英字のサイズによって狂うらしく、"DejaVu Sans Mono" 110 はきれいに英5:日3になるが、それ以外だとダメポ ;; abcdeABCDEabcdeABCDE ;; あいう日本語あいう日本語 ;; ;; 絵文字対策 (setq use-default-font-for-symbols nil) ;; ;; tab character ;;(standard-display-ascii ?\t "» ") ) ;; emacs標準機能によるカスタマイズ (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(ansi-color-names-vector ["black" "red3" "green3" "yellow3" "dodger blue" "magenta3" "cyan3" "gray90"]) '(auto-compression-mode t nil (jka-compr)) '(auto-revert-interval 1) '(backup-directory-alist '((".*" . "~/.emacsbak"))) '(c++-font-lock-extra-types '("\\sw+_t" "\\([iof]\\|str\\)+stream\\(buf\\)?" "ios" "string" "rope" "list" "slist" "deque" "vector" "bit_vector" "set" "multiset" "map" "multimap" "hash\\(_\\(m\\(ap\\|ulti\\(map\\|set\\)\\)\\|set\\)\\)?" "stack" "queue" "priority_queue" "type_info" "iterator" "const_iterator" "reverse_iterator" "const_reverse_iterator" "reference" "const_reference" "u_?\\(int\\|long\\|short\\|char\\)")) '(c-default-style '((c-mode . "cc-mode") (c++-mode . "cc-mode") (java-mode . "java"))) '(c-echo-syntactic-information-p t) '(c-font-lock-extra-types '("FILE" "\\sw+_t" "Lisp_Object" "u_?\\(int\\|long\\|short\\|char\\)")) '(c-offsets-alist '((inline-open . 0) (member-init-cont . c-lineup-multi-inher) (substatement-open . +) (case-label . 0))) '(c-tab-always-indent nil) '(comint-scroll-to-bottom-on-input t) '(default-frame-alist '((foreground-color . "white") (background-color . "gray16") (cursor-color . "red") (mouse-color . "red") (width . 98))) '(dired-listing-switches "-la") '(fill-column 86) '(gdb-many-windows t) '(generic-define-mswindows-modes t) '(global-auto-revert-mode t nil (autorevert)) '(global-whitespace-mode nil) '(grep-find-command '("find . -type d -name '.[a-z]*' -prune -o -type f -exec grep --color -nH -e '{}' +" . 76)) '(initial-buffer-choice t) '(initial-major-mode 'text-mode) '(ls-lisp-verbosity nil) '(package-selected-packages '(markdown-preview-mode php-mode web-mode markdown-mode markdonw-mode)) '(revert-without-query '(".log$")) '(same-window-regexps '("*shell*" "*Buffer List*")) '(scroll-step 1) '(show-trailing-whitespace t) '(skk-egg-like-newline t) '(speedbar-show-unknown-files t) '(sr-speedbar-right-side nil) '(tab-width 4) '(tags-case-fold-search nil) '(tool-bar-mode nil) '(tooltip-mode nil nil (tooltip)) '(truncate-lines t) '(visible-bell t) '(woman-fill-frame t) '(x-stretch-cursor t)) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(ansi-color-blue ((t (:background "royal blue" :foreground "royal blue")))) '(ansi-color-bright-blue ((t (:background "dodger blue" :foreground "dodger blue")))) '(dired-directory ((t (:foreground "SteelBlue1")))) '(ediff-even-diff-A ((t (:extend t :background "dim grey")))) '(ediff-even-diff-Ancestor ((t (:extend t :background "grey30")))) '(ediff-even-diff-B ((t (:extend t :background "dim grey")))) '(ediff-even-diff-C ((t (:extend t :background "dim grey")))) '(ediff-even-diff-face-Ancestor ((((class color)) (:background "Grey" :foreground "Blue")))) '(ediff-even-diff-face-B ((((class color)) (:background "Grey" :foreground "Blue")))) '(ediff-odd-diff-A ((t (:extend t :background "Grey50")))) '(ediff-odd-diff-B ((t (:extend t :background "Grey50")))) '(ediff-odd-diff-C ((t (:extend t :background "Grey50")))) '(ediff-odd-diff-face-A ((((class color)) (:background "Grey" :foreground "Blue")))) '(ediff-odd-diff-face-C ((((class color)) (:background "Grey" :foreground "Blue")))) '(escape-glyph ((t (:foreground "DeepSkyBlue4")))) '(font-lock-builtin-face ((t (:foreground "plum")))) '(font-lock-comment-face ((t (:foreground "medium sea green")))) '(font-lock-doc-face ((t (:foreground "gray")))) '(font-lock-function-name-face ((t (:foreground "goldenrod")))) '(font-lock-keyword-face ((t (:foreground "DodgerBlue")))) '(font-lock-string-face ((t (:foreground "peru")))) '(font-lock-type-face ((t (:foreground "deep sky blue")))) '(font-lock-variable-name-face ((t (:foreground "wheat")))) '(nxml-element-local-name ((t (:foreground "lightblue")))) '(speedbar-file-face ((t (:foreground "light gray")))) '(trailing-whitespace ((t (:background "dark slate gray"))))) (put 'narrow-to-region 'disabled nil)