init.el
changeset 109 3718d6c24e45
parent 108 459d16e3e34e
child 110 7a84acce27ec
equal deleted inserted replaced
108:459d16e3e34e 109:3718d6c24e45
    65 
    65 
    66 ;;;; Packages ;;;;
    66 ;;;; Packages ;;;;
    67 (require 'package-require)
    67 (require 'package-require)
    68 (package-require '(rg company exec-path-from-shell expand-region vertico
    68 (package-require '(rg company exec-path-from-shell expand-region vertico
    69  orderless consult marginalia magit forge magit-todos markdown-mode hgignore-mode move-text paredit
    69  orderless consult marginalia magit forge magit-todos markdown-mode hgignore-mode move-text paredit
    70  rainbow-delimiters json-mode json-reformat flycheck treesit-auto
    70  rainbow-delimiters json-mode json-reformat flycheck treesit-auto ibuffer-project
    71  solarized-theme terraform-mode visual-regexp yasnippet yaml-mode
    71  solarized-theme terraform-mode visual-regexp yasnippet yaml-mode
    72  emmet-mode))
    72  emmet-mode))
    73 
    73 
    74 ;; (custom-set-variables
    74 ;; (custom-set-variables
    75 ;;  '(package-selected-packages
    75 ;;  '(package-selected-packages
   109    (local-set-key (kbd "M-S-n") 'org-move-subtree-down)))
   109    (local-set-key (kbd "M-S-n") 'org-move-subtree-down)))
   110 
   110 
   111 
   111 
   112 ;;; ibuffer
   112 ;;; ibuffer
   113 (global-set-key (kbd "C-x C-b") 'ibuffer)             ; better buffer browser
   113 (global-set-key (kbd "C-x C-b") 'ibuffer)             ; better buffer browser
   114 (require 'ibuffer)
   114 (add-hook 'ibuffer-hook
   115 (require 'ibuf-ext)
   115           (lambda ()
   116 (defun ibuffer-generate-filter-groups-by-major-mode ()
   116             (ibuffer-project-set-filter-groups)
   117   (flet
   117             (unless (eq ibuffer-sorting-mode 'project-file-relative)
   118       ((mode-group
   118               (ibuffer-do-sort-by-project-file-relative))))
   119         (mode)
   119 (setq ibuffer-show-empty-filter-groups nil)
   120         (let ((mode-title
       
   121                (capitalize (car (split-string (symbol-name mode) "-" t)))))
       
   122           (cons mode-title `((mode . ,mode)))))
       
   123        (buffer-modes
       
   124         ()
       
   125         (flet ((buffer-mode (buffer) (buffer-local-value 'major-mode buffer)))
       
   126           (ibuffer-remove-duplicates (remq nil (mapcar 'buffer-mode (buffer-list)))))))
       
   127     (mapcar 'mode-group (buffer-modes))))
       
   128 
       
   129 (defun ibuffer-major-mode-group-hook ()
       
   130   (interactive)
       
   131   (setq-default ibuffer-filter-groups (ibuffer-generate-filter-groups-by-major-mode))
       
   132   (ibuffer-update nil t)
       
   133   (message "ibuffer-major-mode: groups set"))
       
   134 
       
   135 (setq-default ibuffer-show-empty-filter-groups nil)
       
   136 (add-hook 'ibuffer-hook (lambda () (ibuffer-major-mode-group-hook)))
       
   137 
   120 
   138 
   121 
   139 ;;; shell
   122 ;;; shell
   140 (global-set-key (kbd "C-c s") 'eshell)  ; start shell
   123 (global-set-key (kbd "C-c s") 'eshell)  ; start shell
   141 (exec-path-from-shell-copy-env "PYTHONPATH")
   124 (exec-path-from-shell-copy-env "PYTHONPATH")