<commit_before>;; パッケージ読み込み
(package-initialize)
(require 'package)
(add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t) ; Org-mo

;; 環境を日本語、UTF-8にする
(set-locale-environment nil)
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq buffer-file-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(prefer-coding-system 'utf-8)
(set-default 'buffer-file-coding-system 'utf-8)
(setq coding-system-for-read 'utf-8)
(setq coding-system-for-write 'utf-8)

;;; 右から左に読む言語に対応させないことで描画高速化
(setq-default bidi-display-reordering nil)

;; C-u C-SPC C-SPC …でどんどん過去のマークを遡る
(setq set-mark-command-repeat-pop t)

;;; ファイルを開いた位置を保存する
(require 'saveplace)
(setq-default save-place t)
(setq save-place-file (concat user-emacs-directory "places"))

;;; ミニバッファ履歴をemacs終了時も保存する
(savehist-mode 1)

;;; ログの記録行数を増やす
(setq message-log-max 10000)

;;; 履歴をたくさん保存する
(setq history-length 1000)

;; ;; make what-whereでSKK modulesで表示されるディレクトリを指定
;; (add-to-list 'load-path "/usr/local/share/emacs/24.3/site-lisp/skk")
;; ;; M-x skk-tutorialでNo file found as 〜とエラーが出たときにskk-tut-fileを設定
;; ;; make what-whereでSKK tutorialsで表示されるディレクトリ上のSKK.tutを指定
;; (setq skk-tut-file "/usr/share/skk/SKK.tut")
;; (require 'skk)
;; (require 'dired-x)
;; (global-set-key "\C-x\C-j" 'skk-mode)

;; アルファベットで日本語検索
(when (locate-library "migemo")
  (defvar migemo-command "/usr/bin/cmigemo") ; HERE cmigemoバイナリ
  (defvar migemo-options '("-q" "--emacs"))
  (defvar migemo-dictionary
        "/usr/share/cmigemo/utf-8/migemo-dict") ; HERE Migemo辞書
  (defvar migemo-user-dictionary nil)
  (defvar migemo-regex-dictionary nil)
  (defvar migemo-coding-system 'utf-8-unix)
  (load-library "migemo")
  (migemo-init))

;; 画面内検索
(require 'ace-jump-mode)
(setq ace-jump-mode-gray-background nil)
(setq ace-jump-word-mode-use-query-char nil)
(setq ace-jump-mode-move-keys
      (append "asdfghjklqwertyuiopzxcvbnm,." nil))
(global-set-key (kbd "C-o") 'ace-jump-word-mode)

;; mwim C-a, C-eでコードの先頭から行頭
(global-set-key (kbd "C-a") 'mwim-beginning-of-code-or-line)
(global-set-key (kbd "C-e") 'mwim-end-of-code-or-line)
;; 行頭からコードの先頭に
;; (global-set-key (kbd "C-a") 'mwim-beginning-of-line-or-code)
;; (global-set-key (kbd "C-e") 'mwim-end-of-line-or-code)

;; 一括インデント
(defun all-indent ()
  (interactive)
  (mark-whole-buffer)
  (indent-region (region-beginning) (region-end))
  (point-undo))
(global-set-key (kbd  "C-M-i") 'all-indent) 

;; 2画面ファイラー
(defvar dired-dwim-target t)

;; wdired
(require 'wdired)
(setq wdired-allow-to-change-permissions t)
(define-key dired-mode-map "e" 'wdired-change-to-wdired-mode)

;; counsel, ivy ;候補選択インターフェース (idoみたいな)
(ivy-mode 1)

;;; 下記は任意で有効化
;(global-set-key "\C-s" 'swiper)
(global-set-key (kbd "C-c C-r") 'ivy-resume)
(global-set-key (kbd "<f6>") 'ivy-resume)
(global-set-key (kbd "M-x") 'counsel-M-x)
(global-set-key (kbd "C-x C-f") 'counsel-find-file)
(global-set-key (kbd "<f1> f") 'counsel-describe-function)
(global-set-key (kbd "<f1> v") 'counsel-describe-variable)
(global-set-key (kbd "<f1> l") 'counsel-load-library)
(global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
(global-set-key (kbd "<f2> u") 'counsel-unicode-char)
(global-set-key (kbd "C-c g") 'counsel-git)
(global-set-key (kbd "C-c j") 'counsel-git-grep)
(global-set-key (kbd "C-c k") 'counsel-ag)
(global-set-key (kbd "C-x l") 'counsel-locate)
(global-set-key (kbd "C-S-o") 'counsel-rhythmbox)
;(define-key read-expression-map (kbd "C-r") 'counsel-expression-history)

;; query-replace fix
(defun query-replace-read-from--fix-error (&rest them)
  (condition-case _
      (apply them)
    (error (setq query-replace-defaults nil)
           (apply them))))
(advice-add 'query-replace-read-from :around
            'query-replace-read-from--fix-error)

;; recentf 最近使ったファイルを開く C-x f
;; 最近のファイルを無限個保存する
(defvar recentf-max-saved-items nil)
;; 最近使ったファイルに加えないファイルを正規表現で指定する
(setq recentf-exclude
      '("/TAGS$" "/var/tmp/"))
(require 'recentf-ext)
(global-set-key (kbd "C-x f") 'recentf-open-files)

;; カーソルを戻す
(require 'point-undo)
(global-set-key [f7] 'point-undo)
(global-set-key [M-f7] 'point-redo)

;; bs バッファリスト
(global-set-key (kbd "C-x C-b") 'bs-show)

;; 変更履歴を戻る
(require 'goto-chg)
(global-set-key [f8] 'goto-last-change)
(global-set-key [M-f8] 'goto-last-change-reverse)

;; browse-kill-ring M-y
(global-set-key (kbd "M-y") 'browse-kill-ring)

;; C-\でredo
(require 'redo+)
(global-set-key (kbd "C-\\") 'redo)

;; フォント
(set-face-attribute 'default nil :family "Ricty for Powerline")

;; fish-mode
(require 'fish-mode)
(add-to-list 'auto-mode-alist '("\\.fish\\'" . fish-mode))

;; powerline
(require 'powerline)
(powerline-default-theme)

;; (set-face-attribute 'mode-line nil
;;                     :foreground "#fff"
;;                     :background "#FF0066"
;;                     :box nil)

;; (set-face-attribute 'powerline-active1 nil
;;                     :foreground "#fff"
;;                     :background "#FF6699"
;;                     :inherit 'mode-line)

;; (set-face-attribute 'powerline-active2 nil
;;                     :foreground "#000"
;;                     :background "#ffaeb9"
;;                     :inherit 'mode-line)

;; スタートアップメッセージを表示させない
(setq inhibit-startup-message t)

;; バックアップファイルを作成させない
;; (setq make-backup-files nil)

;; 終了時にオートセーブファイルを削除する
;; (setq delete-auto-save-files t)

;; 自動保存ファイルのリストファイル作成しない
(setq auto-save-list-file-prefix nil)

;; バッファ読み込み
(global-set-key [f5] 'eval-buffer)

;; カーソル位置から行頭まで削除する
(defun backward-kill-line (arg)
  "Kill chars backward until encountering the end of a line."
  (interactive "p")
  (kill-line 0))
;; C-M-kに設定
(global-set-key (kbd "C-M-k") 'backward-kill-line)

;; テーマ
(load-theme 'spacemacs-dark t)
;; (add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
;; (load-theme 'dracula t)

;; (custom-set-faces
;;  '(default ((t
;;              (:background "black" :foreground "#55FF55")
;;              ))))

;; 括弧を虹色表示
(require 'rainbow-delimiters)
(add-hook 'prog-mode-hook 'rainbow-delimiters-mode)
;; 括弧の色を強調する設定
(require 'cl-lib)
(require 'color)
(defun rainbow-delimiters-using-stronger-colors ()
  (interactive)
  (cl-loop
   for index from 1 to rainbow-delimiters-max-face-count
   do
   (let ((face (intern (format "rainbow-delimiters-depth-%d-face" index))))
     (cl-callf color-saturate-name (face-foreground face) 30))))
(add-hook 'emacs-startup-hook 'rainbow-delimiters-using-stronger-colors)

;; フレーム位置設定
(setq initial-frame-alist
      (append
       '((top . 0)    ; フレームの Y 位置 (ピクセル数)
         (left . 200)    ; フレームの X 位置 (ピクセル数)
         (width . 61)    ; フレーム幅 (文字数)
         (height . 53)   ; フレーム高 (文字数)
         ) initial-frame-alist))

;; タブにスペースを使用する
(setq-default tab-width 4 indent-tabs-mode nil)

;; ページスクロールの際に５行かぶらせる
(setq next-screen-context-lines 5)

;; ページスクロールの際にカーソル位置保持
(setq scroll-preserve-screen-position t)

;; スクロールマージン
(setq scroll-margin 10)

;; 反対側のウィンドウにいけるように
(setq windmove-wrap-around t)

;; バッファ読み込み
(global-set-key
 [f5] 'eval-buffer)

;; C-M-kで行頭からカーソル位置まで削除
(defun backward-kill-line (arg)
  "Kill chars backward until encountering the end of a line."
  (interactive "p")
  (kill-line 0))
;; C-M-kに設定
(global-set-key (kbd "C-M-k") 'backward-kill-line)

;; C-M-{h,m,l}でウィンドウ内移動
;; (global-set-key (kbd "C-M-h") (lambda () (interactive) (move-to-window-line 0)))
;; (global-set-key (kbd "C-M-m") (lambda () (interactive) (move-to-window-line nil)))
;; (global-set-key (kbd "C-M-l") (lambda () (interactive) (move-to-window-line -1)))

;; カーソルキーでウィンドウ間を移動
(define-key global-map (kbd "<up>") 'windmove-up)
(define-key global-map (kbd "<down>") 'windmove-down)
(define-key global-map (kbd "<right>") 'windmove-right)
(define-key global-map (kbd "<left>") 'windmove-left)

;; 改行コードを表示する
(setq eol-mnemonic-dos "(CRLF)")
(setq eol-mnemonic-mac "(CR)")
(setq eol-mnemonic-unix "(LF)")

;; 複数ウィンドウを禁止する
(setq ns-pop-up-frames nil)

;; ウィンドウを透明にする
;; アクティブウィンドウ／非アクティブウィンドウ（alphaの値で透明度を指定）
(add-to-list 'default-frame-alist '(alpha . (0.86 0.86)))

;; メニューバーを消す
(menu-bar-mode -1)

;; ツールバーを消す
(tool-bar-mode -1)

;; 列数を表示する
(column-number-mode t)

;; 行番号表示
(global-linum-mode t)
;; 5行分スペース確保
(setq linum-format "%5d")

;; カーソル行番号をハイライトする
(require 'hlinum)
;; 前景色を黒，背景色を赤にする．
(custom-set-faces '(linum-highlight-face ((t (:foreground "black" :background "red")))))

;; カーソル行ハイライト
;; (global-hl-line-mode t)
;; (custom-set-faces '(hl-line ((t (:background "#242424")))))

;; カーソルの点滅をやめる
(blink-cursor-mode 0)

;; 対応する括弧を光らせる
(show-paren-mode 1)

;; ウィンドウ内に収まらないときだけ、カッコ内も光らせる
(setq show-paren-style 'mixed)
(set-face-background 'show-paren-match-face "grey")
(set-face-foreground 'show-paren-match-face "black")

;; スペース、タブなどを可視化する

;; スクロールは１行ごとに
(setq scroll-conservatively 1)

;; 行頭C-kで改行文字も削除する
(setq kill-whole-line t)

;; dired設定
(require 'dired-x)
;; diredを2つのウィンドウで開いている時に、デフォルトの移動orコピー先をもう一方のdiredで開いているディレクトリにする
(setq dired-dwim-target t)
;; ディレクトリを再帰的にコピーする
(setq dired-recursive-copies 'always)
;; diredバッファでC-sした時にファイル名だけにマッチするように
(setq dired-isearch-filenames t)
;; "yes or no" の選択を "y or n" にする
(fset 'yes-or-no-p 'y-or-n-p)

;; 時間表示
(display-time)

;; デフォルトブラウザ
(setq browse-url-browser-function 'browse-url-generic)
(setq browse-url-generic-program
      (if (file-exists-p "/usr/bin/google-chrome")
          "/usr/bin/google-chrome"))
;; おまけで yahtml も同じのに設定しちゃうのもアリかも。
(setq yahtml-www-browser browse-url-generic-program)<commit_msg>defvar -> setq<commit_after>;; パッケージ読み込み
(package-initialize)
(require 'package)
(add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t) ; Org-mo

;; 環境を日本語、UTF-8にする
(set-locale-environment nil)
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq buffer-file-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(prefer-coding-system 'utf-8)
(set-default 'buffer-file-coding-system 'utf-8)
(setq coding-system-for-read 'utf-8)
(setq coding-system-for-write 'utf-8)

;;; 右から左に読む言語に対応させないことで描画高速化
(setq-default bidi-display-reordering nil)

;; C-u C-SPC C-SPC …でどんどん過去のマークを遡る
(setq set-mark-command-repeat-pop t)

;;; ファイルを開いた位置を保存する
(require 'saveplace)
(setq-default save-place t)
(setq save-place-file (concat user-emacs-directory "places"))

;;; ミニバッファ履歴をemacs終了時も保存する
(savehist-mode 1)

;;; ログの記録行数を増やす
(setq message-log-max 10000)

;;; 履歴をたくさん保存する
(setq history-length 1000)

;; ;; make what-whereでSKK modulesで表示されるディレクトリを指定
;; (add-to-list 'load-path "/usr/local/share/emacs/24.3/site-lisp/skk")
;; ;; M-x skk-tutorialでNo file found as 〜とエラーが出たときにskk-tut-fileを設定
;; ;; make what-whereでSKK tutorialsで表示されるディレクトリ上のSKK.tutを指定
;; (setq skk-tut-file "/usr/share/skk/SKK.tut")
;; (require 'skk)
;; (require 'dired-x)
;; (global-set-key "\C-x\C-j" 'skk-mode)

;; アルファベットで日本語検索
(when (locate-library "migemo")
  (setq migemo-command "/usr/bin/cmigemo") ; HERE cmigemoバイナリ
  (setq migemo-options '("-q" "--emacs"))
  (setq migemo-dictionary
        "/usr/share/cmigemo/utf-8/migemo-dict") ; HERE Migemo辞書
  (setq migemo-user-dictionary nil)
  (setq migemo-regex-dictionary nil)
  (setq migemo-coding-system 'utf-8-unix)
  (load-library "migemo")
  (migemo-init))

;; 画面内検索
(require 'ace-jump-mode)
(setq ace-jump-mode-gray-background nil)
(setq ace-jump-word-mode-use-query-char nil)
(setq ace-jump-mode-move-keys
      (append "asdfghjklqwertyuiopzxcvbnm,." nil))
(global-set-key (kbd "C-o") 'ace-jump-word-mode)

;; mwim C-a, C-eでコードの先頭から行頭
(global-set-key (kbd "C-a") 'mwim-beginning-of-code-or-line)
(global-set-key (kbd "C-e") 'mwim-end-of-code-or-line)
;; 行頭からコードの先頭に
;; (global-set-key (kbd "C-a") 'mwim-beginning-of-line-or-code)
;; (global-set-key (kbd "C-e") 'mwim-end-of-line-or-code)

;; コード折りたたむ
(add-hook 'python-mode-hook
          '(lambda ()
             (hs-minor-mode 1)))
(add-hook 'web-mode-hook
          '(lambda ()
             (hs-minor-mode 1)))

(define-key global-map (kbd "C-t") 'hs-toggle-hiding)

;; 一括インデント
(defun all-indent ()
  (interactive)
  (mark-whole-buffer)
  (indent-region (region-beginning) (region-end))
  (point-undo))
(global-set-key (kbd  "C-M-i") 'all-indent) 

;; 2画面ファイラー
(setq dired-dwim-target t)

;; wdired
(require 'wdired)
(setq wdired-allow-to-change-permissions t)
(define-key dired-mode-map "e" 'wdired-change-to-wdired-mode)

;; counsel, ivy ;候補選択インターフェース (idoみたいな)
(ivy-mode 1)

;;; 下記は任意で有効化
;(global-set-key "\C-s" 'swiper)
(global-set-key (kbd "C-c C-r") 'ivy-resume)
(global-set-key (kbd "<f6>") 'ivy-resume)
(global-set-key (kbd "M-x") 'counsel-M-x)
(global-set-key (kbd "C-x C-f") 'counsel-find-file)
(global-set-key (kbd "<f1> f") 'counsel-describe-function)
(global-set-key (kbd "<f1> v") 'counsel-describe-variable)
(global-set-key (kbd "<f1> l") 'counsel-load-library)
(global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
(global-set-key (kbd "<f2> u") 'counsel-unicode-char)
(global-set-key (kbd "C-c g") 'counsel-git)
(global-set-key (kbd "C-c j") 'counsel-git-grep)
(global-set-key (kbd "C-c k") 'counsel-ag)
(global-set-key (kbd "C-x l") 'counsel-locate)
(global-set-key (kbd "C-S-o") 'counsel-rhythmbox)
;(define-key read-expression-map (kbd "C-r") 'counsel-expression-history)

;; query-replace fix
(defun query-replace-read-from--fix-error (&rest them)
  (condition-case _
      (apply them)
    (error (setq query-replace-defaults nil)
           (apply them))))
(advice-add 'query-replace-read-from :around
            'query-replace-read-from--fix-error)

;; recentf 最近使ったファイルを開く C-x f
;; 最近のファイルを無限個保存する
(setq recentf-max-saved-items nil)
;; 最近使ったファイルに加えないファイルを正規表現で指定する
(setq recentf-exclude
      '("/TAGS$" "/var/tmp/"))
(require 'recentf-ext)
(global-set-key (kbd "C-x f") 'recentf-open-files)

;; カーソルを戻す
(require 'point-undo)
(global-set-key [f7] 'point-undo)
(global-set-key [M-f7] 'point-redo)

;; bs バッファリスト
(global-set-key (kbd "C-x C-b") 'bs-show)

;; 変更履歴を戻る
(require 'goto-chg)
(global-set-key [f8] 'goto-last-change)
(global-set-key [M-f8] 'goto-last-change-reverse)

;; browse-kill-ring M-y
(global-set-key (kbd "M-y") 'browse-kill-ring)

;; C-\でredo
(require 'redo+)
(global-set-key (kbd "C-\\") 'redo)

;; フォント
(set-face-attribute 'default nil :family "Ricty for Powerline")

;; fish-mode
(require 'fish-mode)
(add-to-list 'auto-mode-alist '("\\.fish\\'" . fish-mode))

;; powerline
(require 'powerline)
(powerline-default-theme)

;; (set-face-attribute 'mode-line nil
;;                     :foreground "#fff"
;;                     :background "#FF0066"
;;                     :box nil)

;; (set-face-attribute 'powerline-active1 nil
;;                     :foreground "#fff"
;;                     :background "#FF6699"
;;                     :inherit 'mode-line)

;; (set-face-attribute 'powerline-active2 nil
;;                     :foreground "#000"
;;                     :background "#ffaeb9"
;;                     :inherit 'mode-line)

;; スタートアップメッセージを表示させない
(setq inhibit-startup-message t)

;; バックアップファイルを作成させない
;; (setq make-backup-files nil)

;; 終了時にオートセーブファイルを削除する
;; (setq delete-auto-save-files t)

;; 自動保存ファイルのリストファイル作成しない
(setq auto-save-list-file-prefix nil)

;; バッファ読み込み
(global-set-key [f5] 'eval-buffer)

;; カーソル位置から行頭まで削除する
(defun backward-kill-line (arg)
  "Kill chars backward until encountering the end of a line."
  (interactive "p")
  (kill-line 0))
;; C-M-kに設定
(global-set-key (kbd "C-M-k") 'backward-kill-line)

;; テーマ
(load-theme 'spacemacs-dark t)
;; (add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
;; (load-theme 'dracula t)

;; (custom-set-faces
;;  '(default ((t
;;              (:background "black" :foreground "#55FF55")
;;              ))))

;; 括弧を虹色表示
(require 'rainbow-delimiters)
(add-hook 'prog-mode-hook 'rainbow-delimiters-mode)
;; 括弧の色を強調する設定
(require 'cl-lib)
(require 'color)
(defun rainbow-delimiters-using-stronger-colors ()
  (interactive)
  (cl-loop
   for index from 1 to rainbow-delimiters-max-face-count
   do
   (let ((face (intern (format "rainbow-delimiters-depth-%d-face" index))))
     (cl-callf color-saturate-name (face-foreground face) 30))))
(add-hook 'emacs-startup-hook 'rainbow-delimiters-using-stronger-colors)

;; フレーム位置設定
(setq initial-frame-alist
      (append
       '((top . 0)    ; フレームの Y 位置 (ピクセル数)
         (left . 200)    ; フレームの X 位置 (ピクセル数)
         (width . 61)    ; フレーム幅 (文字数)
         (height . 53)   ; フレーム高 (文字数)
         ) initial-frame-alist))

;; タブにスペースを使用する
(setq-default tab-width 4 indent-tabs-mode nil)

;; ページスクロールの際に５行かぶらせる
(setq next-screen-context-lines 5)

;; ページスクロールの際にカーソル位置保持
(setq scroll-preserve-screen-position t)

;; スクロールマージン
(setq scroll-margin 10)

;; 反対側のウィンドウにいけるように
(setq windmove-wrap-around t)

;; バッファ読み込み
(global-set-key
 [f5] 'eval-buffer)

;; C-M-kで行頭からカーソル位置まで削除
(defun backward-kill-line (arg)
  "Kill chars backward until encountering the end of a line."
  (interactive "p")
  (kill-line 0))
;; C-M-kに設定
(global-set-key (kbd "C-M-k") 'backward-kill-line)

;; C-M-{h,m,l}でウィンドウ内移動
;; (global-set-key (kbd "C-M-h") (lambda () (interactive) (move-to-window-line 0)))
;; (global-set-key (kbd "C-M-m") (lambda () (interactive) (move-to-window-line nil)))
;; (global-set-key (kbd "C-M-l") (lambda () (interactive) (move-to-window-line -1)))

;; カーソルキーでウィンドウ間を移動
(define-key global-map (kbd "<up>") 'windmove-up)
(define-key global-map (kbd "<down>") 'windmove-down)
(define-key global-map (kbd "<right>") 'windmove-right)
(define-key global-map (kbd "<left>") 'windmove-left)

;; 改行コードを表示する
(setq eol-mnemonic-dos "(CRLF)")
(setq eol-mnemonic-mac "(CR)")
(setq eol-mnemonic-unix "(LF)")

;; 複数ウィンドウを禁止する
(setq ns-pop-up-frames nil)

;; ウィンドウを透明にする
;; アクティブウィンドウ／非アクティブウィンドウ（alphaの値で透明度を指定）
(add-to-list 'default-frame-alist '(alpha . (0.86 0.86)))

;; メニューバーを消す
(menu-bar-mode -1)

;; ツールバーを消す
(tool-bar-mode -1)

;; 列数を表示する
(column-number-mode t)

;; 行番号表示
(global-linum-mode t)
;; 5行分スペース確保
(setq linum-format "%5d")

;; カーソル行番号をハイライトする
(require 'hlinum)
;; 前景色を黒，背景色を赤にする．
(custom-set-faces '(linum-highlight-face ((t (:foreground "black" :background "red")))))

;; カーソル行ハイライト
;; (global-hl-line-mode t)
;; (custom-set-faces '(hl-line ((t (:background "#242424")))))

;; カーソルの点滅をやめる
(blink-cursor-mode 0)

;; 対応する括弧を光らせる
(show-paren-mode 1)

;; ウィンドウ内に収まらないときだけ、カッコ内も光らせる
(setq show-paren-style 'mixed)
(set-face-background 'show-paren-match-face "grey")
(set-face-foreground 'show-paren-match-face "black")

;; スペース、タブなどを可視化する

;; スクロールは１行ごとに
(setq scroll-conservatively 1)

;; 行頭C-kで改行文字も削除する
(setq kill-whole-line t)

;; dired設定
(require 'dired-x)
;; diredを2つのウィンドウで開いている時に、デフォルトの移動orコピー先をもう一方のdiredで開いているディレクトリにする
(setq dired-dwim-target t)
;; ディレクトリを再帰的にコピーする
(setq dired-recursive-copies 'always)
;; diredバッファでC-sした時にファイル名だけにマッチするように
(setq dired-isearch-filenames t)
;; "yes or no" の選択を "y or n" にする
(fset 'yes-or-no-p 'y-or-n-p)
(global-set-key (kbd "C-c C-v") 'browse-url-of-dired-file)

;; 時間表示
(display-time)

;; デフォルトブラウザ
(setq browse-url-browser-function 'browse-url-generic)
(setq browse-url-generic-program
      (if (file-exists-p "/usr/bin/google-chrome")
          "/usr/bin/google-chrome"))
;; おまけで yahtml も同じのに設定しちゃうのもアリかも。
(setq yahtml-www-browser browse-url-generic-program)
{'fraction_non_alphanumeric': 0.18737531331525908, 'fraction_numerical': 0.01012839531433833, 'mean_word_length': 3.7951925435369143, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 24, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '866126', 'n_tokens_mistral': 9738, 'n_tokens_neox': 9432, 'n_words': 1505}