blau_araujo/bmacs
Minhas configurações para o Emacs
- Emacs Lisp 98.9%
- Shell 1.1%
| mods | Correção do problema de mudar para o dashboard ao fechar o vterm. | |
| templates | Aviso sobre o arquivo das funções. | |
| bmacs.org | várias atualizações | |
| bmacs.png | Print da configuração. | |
| LICENSE | Initial commit | |
| README.org | várias atualizações | |
Minhas configurações do Emacs (BMACS)
- Importante!
- Configurações gerais
- Alguns mapeamentos de teclas globais
- Definições de arquivos de trabalho
- Funções e variáveis customizadas para o BMACS
- Gerenciamento de pacotes
- O melhor dos dois mundos
- Aparência
- Aprimoramento nas interfaces de seleção
- Complemento de texto/código
- Destaque de pares
- Rainbow Mode (visualização de cores)
- Projetos
- Suporte a linguagens
- Verificação de sintaxe e servidores de linguagens
- Snippets (YASnippet)
- Verificação ortográfica
- Terminal
- Org Mode
- Mapeamento de leader keys (General)
- Definições pessoais
Importante!
- Altere a localização das suas configurações na propriedade
:tangle, acima. - Após alterar este arquivo, tecle
C-c C-v tpara gerar um novo arquivoinit.el. - As minhas funções estão no arquivo bmacs.org.
/blau_araujo/bmacs/media/branch/main/bmacs.png
Configurações gerais
O que temos até agora...
Coleta de lixo
(setq gc-cons-threshold 16777216)
Desativar buffer de boas-vindas
(setq inhibit-startup-message t)
Ajustes gerais
(menu-bar-mode -1) ; no menu bar
(tool-bar-mode -1) ; no tools bar
(scroll-bar-mode -1) ; no scroll bars
(tooltip-mode -1) ; no tooltips
(set-fringe-mode 10) ; frame edges set to 10px
(column-number-mode 1) ; modeline shows column number
(save-place-mode 1) ; remember cursor position
(recentf-mode 1) ; remember recent files
(savehist-mode 1) ; enable history saving
(electric-pair-mode 1) ; enable keep pairs balanced
(global-auto-revert-mode t) ; Load external changes
(global-hl-line-mode 1) ; Current line highlight
(delete-selection-mode t) ; Overwrite/delete selected text
Texto inicial do buffer de rascunho (scratch)
(setq initial-scratch-message ";; BMACS: Scratch buffer...\n\n")
Numeração de linhas
(setq display-line-numbers-type 'relative)
(dolist (mode '(prog-mode-hook
conf-mode-hook))
(add-hook mode (lambda () (display-line-numbers-mode 1))))
Rolagem mais suave
(setq mouse-wheel-scroll-amount '(2 ((shift) . 1))
mouse-wheel-progressive-speed nil
mouse-wheel-follow-mouse 't
scroll-step 1)
Prompt yes/no mais curto
(fset 'yes-or-no-p 'y-or-n-p)
Evita o uso de diálogos gráficos do sistema
(setq use-dialog-box nil)
Impedir o dired de abrir novos buffers
(setq dired-kill-when-opening-new-dired-buffer t)
Seguir links simbólicos ao abrir arquivos
(setq vc-follow-symlinks t)
Alguns mapeamentos de teclas globais
Desativar C-z
(global-unset-key (kbd "C-z"))
Teclar ESC para fechar o minibuffer
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
Zoom in/out mais prático
(global-set-key (kbd "C-=") 'text-scale-increase)
(global-set-key (kbd "C--") 'text-scale-decrease)
Definições de arquivos de trabalho
Adicionar modos automáticos segundo nomes de arquivos
(add-to-list 'auto-mode-alist '("\\.bash_aliases\\|\.bash_functions\\'" . sh-mode))
Arquivo custom.el
(setq custom-file (locate-user-emacs-file "custom.el"))
(load custom-file 'noerror 'nomessage)
Enviar arquivos de backup para a lixeira
(setq backup-directory-alist '((".*" . "~/.local/share/Trash/files")))
Funções e variáveis customizadas para o BMACS
Definições de variáveis
Localização dos arquivos de configuração
(setq bmacs-git-config "~/git/bmacs/")
Localização do arquivo README.org
(setq readme-org-file (expand-file-name "README.org" bmacs-git-config))
Localização do arquivo bmacs.org
(setq bmacs-functions-file (expand-file-name "bmacs.org" bmacs-git-config))
Diretório de templates
(setq bmacs-templates-dir (expand-file-name "templates/" bmacs-git-config))
Diretório de módulos
(setq bmacs-mods-dir (expand-file-name "mods/" bmacs-git-config))
Carga das funções (bmacs.el)
(load (expand-file-name "bmacs.el" user-emacs-directory))
Carga e hook do dashboard (mods/bmacs-dashboard.el)
Ainda não está publicado, por isso o comentário.
(load (expand-file-name "bmacs-dashboard.el" bmacs-mods-dir))
(add-hook 'emacs-startup-hook 'bmacs/dashboard)
Hook para forçar mudança do cursor no terminal (evil-mode)
(add-hook 'post-command-hook 'bmacs/evil-update-cursor)
Gerenciamento de pacotes
Configurações e inicialização do package
(require 'package)
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
("elpa" . "https://elpa.gnu.org/packages/")))
(package-initialize)
(unless package-archive-contents
(package-refresh-contents))
Configurações do use-package
(unless (package-installed-p 'use-package)
(package-install 'use-package))
(require 'use-package)
(setq use-package-always-ensure t)
;; (setq use-package-verbose t)
O melhor dos dois mundos
Evil Mode
(use-package evil
:init
(setq evil-want-integration t
evil-want-keybinding nil
evil-vsplit-window-right t
evil-split-window-below t
evil-undo-system 'undo-redo)
(evil-mode))
Evil Collection
(use-package evil-collection
:after evil
:config
(add-to-list 'evil-collection-mode-list 'help)
(evil-collection-init))
Evil Terminal Cursor Changer
(use-package evil-terminal-cursor-changer
:ensure t
:config
(unless (display-graphic-p)
(evil-terminal-cursor-changer-activate)))
Aparência
Doom Themes
(use-package doom-themes
:config
(setq doom-themes-enable-bold t
doom-themes-enable-italic t)
(load-theme 'doom-moonlight t)
(doom-themes-org-config))
Doom Modeline
(use-package doom-modeline
:ensure t
:hook
(after-init . doom-modeline-mode)
:config
(setq doom-modeline-enable-word-count t))
Dashboard (apenas para registro)
;; Dashboard
;; (use-package dashboard
;; :init
;; (progn
;; (setq dashboard-items '((recents . 5)
;; (projects . 5)))
;; (setq dashboard-show-shortcuts t)
;; (setq dashboard-center-content t)
;; (setq dashboard-set-file-icons t)
;; (setq dashboard-set-heading-icons t)
;; (setq dashboard-startup-banner "~/pic/emacs-typo-03.png"))
;; :config
;; (dashboard-setup-startup-hook))
Diminish (reduz excesso de informações na modeline)
(use-package diminish)
(diminish 'visual-line-mode "")
(diminish 'eldoc-mode "")
(diminish 'flyspell-mode "Spell")
(diminish 'evil-collection-unimpaired-mode "")
Keycast (não funciona com a Doom Modeline)
(use-package keycast
:init
(add-to-list 'global-mode-string '("" mode-line-keycast)))
Aprimoramento nas interfaces de seleção
Vertico
(use-package vertico
:bind (:map vertico-map
("C-j" . vertico-next)
("C-k" . vertico-previous)
("C-f" . vertico-exit)
:map minibuffer-local-map
("M-h" . backward-kill-word))
:custom
(vertico-cycle t)
:init
(vertico-mode))
Marginalia
(use-package marginalia
:after vertico
:custom
(marginalia-annotators '(marginalia-annotators-heavy marginalia-annotators-ligh nil))
:init
(marginalia-mode))
Orderless
(use-package orderless
:config
(setq completion-styles '(orderless basic)))
Consult
(use-package consult)
Which key
(use-package which-key
:defer 0
:diminish
:config
(which-key-mode 1)
(setq which-key-side-window-location 'bottom
which-key-sort-order #'which-key-key-order-alpha
which-key-allow-imprecise-window-fit nil
which-key-sort-uppercase-first nil
which-key-add-column-padding 1
which-key-max-display-columns nil
which-key-min-display-lines 6
which-key-side-window-slot -10
which-key-side-window-max-height 0.25
which-key-idle-delay 0.8
which-key-max-description-length 25
which-key-allow-imprecise-window-fit nil
which-key-separator " → " ))
Complemento de texto/código
Company
(use-package company
:defer 2
:diminish
:custom
(company-begin-commands '(self-insert-command))
(company-idle-delay .1)
(company-minimum-prefix-length 2)
(company-show-numbers t)
(company-tooltip-align-annotations t)
(global-company-mode t)
(company-require-match nil)
:config
;; TAB não navega nem completa no company
(define-key company-active-map (kbd "TAB") nil)
(define-key company-active-map (kbd "<tab>") nil)
;; ENTER aceita a seleção
(define-key company-active-map (kbd "RET")
#'company-complete-selection)
;; Priorizar snippets no menu
(setq company-backends
'((company-yasnippet company-capf company-files))))
Company Box (exibe ícones no Company)
(use-package company-box
:after company
:diminish
:hook (company-mode . company-box-mode))
Destaque de pares
Rainbow Delimiters
(use-package rainbow-delimiters
:hook ((prog-mode . rainbow-delimiters-mode))
:config
(set-face-foreground 'rainbow-delimiters-depth-1-face "#c66")
(set-face-foreground 'rainbow-delimiters-depth-2-face "#6c6")
(set-face-foreground 'rainbow-delimiters-depth-3-face "#69f")
(set-face-foreground 'rainbow-delimiters-depth-4-face "#cc6")
(set-face-foreground 'rainbow-delimiters-depth-5-face "#6cc")
(set-face-foreground 'rainbow-delimiters-depth-6-face "#c6c")
(set-face-foreground 'rainbow-delimiters-depth-7-face "#ccc")
(set-face-foreground 'rainbow-delimiters-depth-8-face "#999")
(set-face-foreground 'rainbow-delimiters-depth-9-face "#666"))
Rainbow Mode (visualização de cores)
(use-package rainbow-mode
:hook (prog-mode . rainbow-mode))
Projetos
Gerenciamento de Git (MaGit)
(use-package magit
:defer 2
:custom
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1))
Projectile
(use-package projectile
:diminish projectile-mode
:config
(projectile-mode))
NeoTree
(use-package neotree
:bind (("C-\\" . 'neotree-toggle))
:config
(setq neo-smart-open t
projectile-switch-project-action 'neotree-projectile-action))
Treemacs
(use-package treemacs
:ensure t
:defer t
:config
;; Ajustes visuais
(setq treemacs-width 30
treemacs-indentation 2
treemacs-position 'right
treemacs-is-never-other-window t
treemacs-show-hidden-files t)
;; Ativar ícones (se tiver fonts compatíveis)
(when (fboundp 'treemacs-resize-icons)
(treemacs-resize-icons 14)))
;; Integração LSP + Treemacs
(use-package lsp-treemacs
:after (lsp-mode treemacs)
:ensure t
:config
;; Opções adicionais (customizáveis)
(setq lsp-treemacs-error-list-current-project t) ;; mostrar erros só do projeto atual
(setq lsp-treemacs-sync-mode t)) ;; mantém erros e símbolos atualizados
Suporte a linguagens
Common Lisp (Sly)
Requer sbcl e quicllisp instalados!
(use-package sly
:commands (sly)
:hook (lisp-mode . sly)
:config (setq inferior-lisp-program "/usr/bin/sbcl"))
Web Mode
(use-package web-mode
:mode ("\\.html?\\'" "\\.css\\'" "\\.php\\'")
:config
(setq web-mode-enable-css-colorization t)
(setq web-mode-enable-auto-pairing t)
(setq web-mode-enable-comment-keywords t)
(setq web-mode-enable-current-element-highlight t))
PHP Mode
(use-package php-mode
:mode "\\.php\\'"
:config
(add-hook 'php-mode-hook
(lambda ()
(set (make-local-variable 'company-backends)
'((company-php company-files))))
(setq php-manual-path "/usr/share/doc/php-doc/manual")
(setq php-manual-url "http://www.php.net/manual/en/")))
C Mode
(use-package cc-mode
:config
(defun bmacs/c-mode-config ()
"Configuração personalizada para C-mode."
(c-set-style "k&r")
(setq c-default-style "k&r"
c-basic-offset 4
indent-tabs-mode nil))
:hook ((c-mode-common . bmacs/c-mode-config)))
Assembly NASM
(use-package nasm-mode
:mode "\\.asm\\'")
Markdown
(use-package markdown-mode
:mode "\\.md\\'"
:config
(setq markdown-command "pandoc")
(setq markdown-asymmetric-header t)
(setq markdown-header-scaling t)
(setq markdown-enable-math t))
Markdown Preview
(use-package markdown-preview-mode
:commands markdown-preview)
Correção ortográfica em markdown
(add-hook 'markdown-mode-hook 'flyspell-mode)
Verificação de sintaxe e servidores de linguagens
Flycheck
(use-package flycheck
:init (global-flycheck-mode))
LSP Mode (PHP, Web, C/C++)
(use-package lsp-mode
:hook ((web-mode . lsp)
(php-mode . lsp)
(c-mode . lsp)
(c++-mode . lsp))
:commands lsp
:config
(setq lsp-clients-clangd-executable "/usr/bin/clangd")
(setq lsp-completion-provider :capf))
LSP UI
(use-package lsp-ui
:commands lsp-ui-mode
:after lsp-mode
:hook (lsp-mode . lsp-ui-mode))
Snippets (YASnippet)
(use-package yasnippet
:init (setq yas-snippet-dirs '("~/git/bmacs/yas"))
:hook ((prog-mode . yas-minor-mode))
:config (yas-reload-all))
Verificação ortográfica
Flyspell (aspell/pt-BR)
(use-package flyspell
:init
(setq ispell-program-name "aspell")
(setq ispell-extra-args '("--sug-mode=ultra" "--lang=pt_BR"))
:hook ((text-mode . flyspell-mode)
(prog-mode . flyspell-prog-mode))
:config
(setq flyspell-issue-welcome-flag nil
flyspell-issue-message-flag nil))
Flyspell Correct (interfaces adicionais para o Flyspell)
(use-package flyspell-correct
:after flyspell
:custom
(flyspell-correct-interface #'flyspell-correct-completing-read))
Terminal
Vterm
(use-package vterm
:defer 2
:config
(setq shell-file-name "/bin/bash"
vterm-max-scrollback 5000))
Vterm Toggle
(use-package vterm-toggle
:after vterm
:config
(evil-define-key 'normal vterm-mode-map (kbd "<escape>") 'vterm--self-insert)
(setq vterm-toggle-fullscreen-p nil)
(setq vterm-toggle-scope 'project)
(add-to-list 'display-buffer-alist
'((lambda (buffer-or-name _)
(let ((buffer (get-buffer buffer-or-name)))
(with-current-buffer buffer
(or (equal major-mode 'vterm-mode)
(string-prefix-p vterm-buffer-name (buffer-name buffer))))))
(display-buffer-reuse-window display-buffer-at-bottom)
(reusable-frames . visible)
(window-height . 0.3))))
Org Mode
Org Tempo (templates de blocos)
(with-eval-after-load 'org
(require 'org-tempo)
(setq org-structure-template-alist
'(("b" . "src bash :results code")
("c" . "comment")
("e" . "example")
("el" . "src emacs-lisp")
("h" . "export html")
("l" . "src lisp :results org")
("m" . "center")
("q" . "quote")
("s" . "src")
("t" . "src emacs-lisp :tangle FILENAME")
("T" . "src emacs-lisp :tangle FILENAME :mkdirp yes")
("x" . "export"))))
Evita fechamento de pares <> em Org Mode
(add-hook 'org-mode-hook (lambda ()
(setq-local electric-pair-inhibit-predicate
`(lambda (c)
(if (char-equal c ?<) t (,electric-pair-inhibit-predicate c))))))
Org Indent
(require 'org-indent)
(setq org-edit-src-content-indentation 0)
(add-hook 'org-mode-hook 'org-indent-mode)
(eval-after-load 'org-indent '(diminish 'org-indent-mode))
Quebra de linhas na coluna 80
(add-hook 'org-mode-hook (lambda () (setq fill-column 80)))
Visual Fill Column (para centralizar texto)
(use-package visual-fill-column
;; Descomentar se quiser iniciar sempre com org mode centralizado.
;; :hook (org-mode . visual-fill-column-mode)
:config
(setq visual-fill-column-width 90)
(setq-default visual-fill-column-center-text t))
Org Appear (exibir/ocultar marcações)
(use-package org-appear
:hook (org-mode . org-appear-mode)
:config
(setq org-hide-emphasis-markers t)
(setq org-appear-autolinks t
org-appear-autosubmarkers t
org-appear-autokeywords t
org-appear-delay 0))
Estilos dos cabeçalhos
(with-eval-after-load 'org
(set-face-attribute 'org-level-1 nil :foreground "#93b7FF" :weight 'bold)
(set-face-attribute 'org-level-2 nil :foreground "#60B093" :weight 'bold)
(set-face-attribute 'org-level-3 nil :foreground "#A865FF" :weight 'bold)
(set-face-attribute 'org-level-4 nil :foreground "#DDBB67" :weight 'bold)
(set-face-attribute 'org-level-5 nil :foreground "#4E9EB4" :weight 'bold)
(set-face-attribute 'org-level-6 nil :foreground "#E97A83" :weight 'bold)
(set-face-attribute 'org-level-7 nil :foreground "#6D89CF" :weight 'bold)
(set-face-attribute 'org-level-8 nil :foreground "#96A8D4" :weight 'bold))
Org Bullets
(use-package org-bullets
:hook (org-mode . org-bullets-mode)
:config
(setq org-bullets-bullet-list '("✸" "❖" "◆だいやまーく" "⯈" "◇" "•" "•" "•")))
Substituição das reticências
(setq org-ellipsis " ⤵ ")
Exportações
Requisitos:
- O pacote
ox-pandocrequer a instalação dopandocno sistema. - A exportação para LaTeX/PDF requer
texliveetexlive-latex-extrainstalados no sistema.
Pandoc
(use-package ox-pandoc
:after org
:defer 2
:config
;; Ativar a exportação pandoc como backend de exportação padrão
(setq org-pandoc-options-for-html5 '((standalone . t)))
(setq org-pandoc-options-for-markdown '((standalone . t)))
;; Definir os formatos adicionais de exportação
(add-to-list 'org-export-backends 'pandoc))
GFM
(use-package ox-gfm
:after org
:defer 2
:config
;; Adicionar 'gfm' ao backend de exportação
(add-to-list 'org-export-backends 'gfm))
EPUB
(use-package ox-epub
:after org
:defer 2
:config
;; Adicionar 'epub' ao backend de exportação
(add-to-list 'org-export-backends 'epub))
Mapeamento de leader keys (General)
(use-package general
:after evil
:config
(general-evil-setup)
;; set up 'SPC' as the global leader key
(general-create-definer bmacs/leader-keys
:states '(normal insert visual emacs)
:keymaps 'override
:prefix "SPC" ;; set leader
:global-prefix "M-SPC") ;; access leader in insert mode
(bmacs/leader-keys
"RET" '(consult-bookmark :wk "Open bookmark")
"TAB" '(:ignore t :wk "Comment")
"TAB TAB" '(comment-line :wk "Comment lines"))
;; Buffer/bookmarks
(bmacs/leader-keys
"b" '(:ignore t :wk "Buffers/Bookmarks")
"b b" '(consult-buffer :wk "Switch to buffer")
"b i" '(ibuffer :wk "Ibuffer")
"b k" '(kill-current-buffer :wk "Kill current buffer")
"b s" '(basic-save-buffer :wk "Save buffer")
"b m" '(:ignore t :wk "Bookmark")
"b m m" '(bookmark-set :wk "Set bookmark")
"b m l" '(list-bookmarks :wk "List bookmarks")
"b n" '(bmacs/select-new-buffer-type :wk "Create new buffer")
"q" '(:ignore t :wk "Quit Emacs")
"q q" '(save-buffers-kill-terminal :wk "Are you sure?"))
;; Windows
(bmacs/leader-keys
"w" '(:ignore t :wk "Windows")
"w w" '(evil-window-next :wk "Next window")
"w l" '(evil-window-right :wk "Window right")
"w k" '(evil-window-up :wk "Window up")
"w j" '(evil-window-down :wk "Window down")
"w h" '(evil-window-left :"Window left")
"w L" '(evil-window-move-far-right :wk "Swap to the right")
"w H" '(evil-window-move-far-left :wk "Swap to the left")
"w K" '(evil-window-move-very-top :wk "Swap to the top")
"w J" '(evil-window-move-very-bottom :wk "Swap to the bottom")
"w c" '(evil-window-delete :wk "Close window")
"w q" '(evil-quit :wk "Close window, buffer, frame")
"w n" '(evil-window-new :wk "New window")
"w s" '(evil-window-split :wk "Horizontal split window")
"w v" '(evil-window-vsplit :wk "Vertical split window")
"w =" '(balance-windows :wk "Balance windows sizes")
"w m" '(delete-other-windows :wk "Maximize window"))
;; Sly
(bmacs/leader-keys
"s" '(:ignore t :wk "Sly")
"s o" '(sly :wk "Start Sly")
"s e" '(sly-eval-last-expression :wk "Eval last expression")
"s r" '(sly-eval-region :wk "Eval region")
"s l" '(sly-loaf-file :wk "Load file")
"s k" '(sly-compile-and-load-file :wk "Compile and load file")
"s c" '(sly-compile-defun :wk "Compile top level form"))
;; Files
(bmacs/leader-keys
"f" '(:ignore t :wk "Files")
"." '(find-file :wk "Find file")
"f f" '(find-file :wk "Find file")
"f b" '(bmacs/open-bmacs-file :wk "Open BMACS functions")
"f r" '(consult-recent-file :wk "Recent files")
"f e" '(bmacs/open-emacs-settings-dir :wk "Open Emacs config dir")
"f p" '(project-find-file :wk "Open project file")
"f o" '(bmacs/open-org-dir :wk "Open org file")
"f t" '(bmacs/open-bmacs-templates-dir :wk "Open templates dir")
"f l" '(bmacs/open-lisp-projects-dir :wk "Open Lisp projects dir")
"f c" '(bmacs/open-emacs-config :wk "Open Emacs config"))
;; Insert
(bmacs/leader-keys
"i" '(:ignore t :w "Insert")
"i l" '(org-insert-link :w "Org insert link")
"i t" '(org-time-stamp :w "Org date/time"))
;; Jumps
(bmacs/leader-keys
"j" '(:ignore t :wk "Jump")
"j g" '(consult-line :wk "Grep this buffer")
"j o" '(consult-outline :wk "Outline headers"))
;; Toggles
(bmacs/leader-keys
"t" '(:ignore t :wk "Toggle")
"t f" '(bmacs/visual-fill-column-toggle :wk "Visual fill column")
"t c" '(display-fill-column-indicator-mode :wk "Column indicator")
"t l" '(org-toggle-link-display :wk "Org expand links")
"t n" '(org-toggle-narrow-to-subtree :wk "Narrow to subtree")
"t r" '(rainbow-mode :wk "Color preview")
"t s" '(flyspell-mode :wk "Spell checking")
"t t" '(vterm-toggle :wk "Terminal")
"t T" '(consult-theme :wk "Themes")
"t k" '(keycast-tab-bar-mode :wk "Keycast"))
;; Open
(bmacs/leader-keys
"o" '(:ignore t :wk "Open")
"o g" '(magit :wk "Magit")
"o r" '(ielm :wk "Emacs Lisp REPL")
"o t" '(vterm-toggle :wk "Terminal"))
;; Eval
(bmacs/leader-keys
"e" '(:ignore t :wk "Eval/Reload settings")
"e e" '(eval-last-sexp :wk "Eval expression")
"e r" '(eval-region :wk "Eval region")
"e b" '(eval-buffer :wk "Eval buffer")
"e i" '(bmacs/reload-settings :wk "Reload Emacs settings"))
;; Restart Emacs
(bmacs/leader-keys
"r" '(:ignore t :wk "Restart")
"r r" '(restart-emacs :wk "Restart Emacs"))
;; Flyspell
(bmacs/leader-keys
"z" '(:ignore t :wk "Spell")
"z =" '(flyspell-correct-at-point :wk "Correct word at point")
"z g" '(bmacs/add-word-to-dict :wk "Add word to dictionary"))
;; LSP-Treemacs
(bmacs/leader-keys
"l" '(:ignore t :wk "LSP-treemacs lists")
"l e" '(lsp-treemacs-errors-list :wk "Errors")
"l s" '(lsp-treemacs-symbols :wk "Symbols")
"l r" '(lsp-treemacs-references :wk "References"))
;; Help
(bmacs/leader-keys
"h" '(:ignore t :wk "Help")
"h p" '(describe-package :wk "Describe package")
"h s" '(describe-symbol :wk "Describe symbol")
"h v" '(describe-variable :wk "Describe variable")
"h f" '(describe-function :wk "Describe function")
"h k" '(describe-key :wk "Describe key")))
Definições pessoais
Diretório de projetos em Common Lisp (pessoal)
(setq bmacs/local-projects-dir "~/git/lclisp/quicklisp/local-projects/")
Arquivo de dicionário pessoal
(setq ispell-personal-dictionary "~/.config/personal.dict")
Fontes
(set-face-attribute 'default nil :font "JetBrainsMono NF ExtraLight 13")
(set-face-attribute 'variable-pitch nil :font "JetBrainsMono NF ExtraLight 13")
(set-face-attribute 'fixed-pitch nil :font "JetBrainsMono NF ExtraLight 13")
Comentários em itálico
(set-face-attribute 'font-lock-comment-face nil :slant 'italic)