You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

9.9 KiB

Interface tweaks

Some GUI optimizations

  (setq inhibit-x-resources t)     ; avoid problems with emacs daemon and cursor colors
  (set-face-attribute 'default nil :family "Mensch" :foundry "PfEd" :height 158)
  (setq inhibit-startup-message t) ; Eliminate FSF startup msg
  (setq frame-title-format "%b")   ; Put filename in titlebar
  (setq visible-bell t)            ; Flash instead of beep
  (set-scroll-bar-mode 'right)     ; Scrollbar placement
  (show-paren-mode t)              ; Blinking cursor shows matching parentheses
  (electric-pair-mode t)           ; electric-pair-mode on
  (setq column-number-mode t)      ; Show column number of current cursor location
  (mouse-wheel-mode t)             ; wheel-mouse support
  (setq fill-column 78)
  (setq auto-fill-mode t)                   ; Set line width to 78 columns...
  (setq-default indent-tabs-mode nil)       ; Insert spaces instead of tabs
  (setq-default tab-width 4)                ; set default tab 4 spaces
  (global-set-key "\r" 'newline-and-indent) ; turn autoindenting on
  ;(set-default 'truncate-lines t)          ; Truncate lines for all buffers
  (fset 'yes-or-no-p 'y-or-n-p)
  (setq sentence-end-double-space nil)
  ; delete trailing whitespace before saving
  (add-hook 'before-save-hook 'delete-trailing-whitespace)
  ;; Enable line numbers for some modes
  (dolist (mode '(;;text-mode-hook
                  prog-mode-hook
                  conf-mode-hook))
    (add-hook mode (lambda () (display-line-numbers-mode 1))))

  ;; Override some modes which derive from the above
  (dolist (mode '(org-mode-hook))
    (add-hook mode (lambda () (display-line-numbers-mode 0))))

Set encoding

Use utf-8 please

  ;; Set encoding
  (prefer-coding-system 'utf-8)

Some shortcuts

Useful shortcuts:

  • Revert buffer (recargar)
  • fichero org de configuración de emacs
  • fichero org ppal, aquí está todo
  • journal org file
  • org para el blog público, ideas para el blog
  • org para el blog privado
  • org notes file: para tomar una nota rápida, no lo uso mucho
  • phone org file: por si tomo notas en el teléfono, no lo uso mucho
  (global-set-key (kbd "<f5>") 'revert-buffer)
  ;; emacs configuration org file
  (global-set-key
   (kbd "\e\ec")
   (lambda () (interactive) (find-file "~/.emacs.d/myconfig.org")))
  ;; Main org file
  (global-set-key
   (kbd "\e\ei")
   (lambda () (interactive) (find-file "~/Dropbox/orgfiles/i.org")))
  ;; journal org file
  (global-set-key
   (kbd "\e\ej")
   (lambda () (interactive) (find-file "~/Dropbox/orgfiles/journal.org")))
  ;; Notes file
  (global-set-key
   (kbd "\e\en")
   (lambda () (interactive) (find-file "~/Dropbox/orgfiles/notes.org")))
  ;; public blog org file
  (global-set-key
   (kbd "\e\eb")
   (lambda () (interactive) (find-file "~/Dropbox/orgfiles/b.org")))
  ;; private blog file
  (global-set-key
   (kbd "\e\ep")
   (lambda () (interactive) (find-file "~/work/repos/Personal/blog/comacero_priv/content-org/blog_privado.org")))
  ;; phone org file
  (global-set-key
   (kbd "\e\eh")
   (lambda () (interactive) (find-file "~/share/Mob_orgzly/phone.org")))

  (global-set-key [C-tab] 'hippie-expand)                    ; expand
  (global-set-key [C-kp-subtract] 'undo)                     ; [Undo]
  (global-set-key [C-kp-multiply] 'goto-line)                ; goto line
  (global-set-key [C-kp-add] 'toggle-truncate-lines)         ; truncate lines
  (global-set-key [C-kp-divide] 'delete-trailing-whitespace) ; delete trailing whitespace
  (global-set-key [C-kp-decimal] 'completion-at-point)       ; complete at point
  (global-set-key [C-M-prior] 'previous-buffer)              ; previous-buffer
  (global-set-key [C-M-next] 'next-buffer)                   ; next-buffer

Own map

Defines own key map

  (define-prefix-command 'own-map)
  (global-set-key (kbd "C-ñ") 'own-map)
  (define-key own-map (kbd "y") 'aya-create)
  (define-key own-map (kbd "e") 'aya-expand)

Syntax highlight

Set maximum colors

  (cond ((fboundp 'global-font-lock-mode)        ; Turn on font-lock (syntax highlighting)
         (global-font-lock-mode t)               ; in all modes that support it
         (setq font-lock-maximum-decoration t))) ; Maximum colors

Kill buffer quick

Kill current buffer without questions

  ;;------------------------------------------------------------
  ;; Kill current buffer with C-Supr
  (defun geosoft-kill-buffer ()
    ;; Kill default buffer without the extra emacs questions
    (interactive)
    (kill-buffer (buffer-name))
    (set-name))
  (global-set-key [C-delete] 'geosoft-kill-buffer)

rainbow-delimiters

  (use-package rainbow-delimiters
    :hook (prog-mode . rainbow-delimiters-mode)
    )

which-key

Some help with composed hotkeys

  (use-package which-key
    :diminish
    :config
    (which-key-mode)
    (setq which-key-idle-delay 0.3)
    )

ace-windows

To jump to different windows easily

  (use-package ace-window
    :init
    (global-set-key [remap other-window] 'ace-window)
    (custom-set-faces
     '(aw-leading-char-face
       ((t (:inherit ace-jump-face-foreground :height 3.0)))))
    )

Completion systems

Selectrum

  ;; (use-package selectrum
  ;;   :init
  ;;   (selectrum-mode +1))

Vertico (the choosed one)

Have a look here

  (use-package vertico
    :init
    (vertico-mode +1)
    :config
    ;; Different scroll margin
    ;; (setq vertico-scroll-margin 0)

    ;; Show more candidates
    ;; (setq vertico-count 20)

    ;; Grow and shrink the Vertico minibuffer
    ;; (setq vertico-resize t)

    ;; Optionally enable cycling for `vertico-next' and `vertico-previous'.
    (setq vertico-cycle t)
    )

Orderless

Have a look at repo

  (use-package orderless
    :init
    (icomplete-mode)
    :custom
    (completion-styles '(orderless))
    (completion-category-defaults nil)
    (completion-category-overrides '((file (styles partial-completion))))
    )

Marginalia

Check the doc

  (use-package marginalia
  :init
  (marginalia-mode +1)
  :bind
  (; ("M-A" . marginalia-cycle)    ;; Uncomment for global bind
   :map minibuffer-local-map
   ("M-A" . marginalia-cycle))
  )

ivy - counsel - swipper

An enhanced incremental search and a lot of features from counsel

  • Counsel is a collection of emacs commands rewrited to use Ivy
  • Ivy se encarga del autocompletado
  • Ivy-rich se encarga de completar algunas opciones de Ivy
  • Swipper se encarga de las busquedas en el fichero
  ;; (use-package counsel
  ;;   :bind
  ;;   (("C-S-o" . counsel-rhythmbox)
  ;;    ("M-x" . counsel-M-x)
  ;;    ("C-x b" . counsel-switch-buffer)
  ;;    ("C-x C-f" . counsel-find-file)
  ;;    ("<f1> f" . counsel-describe-function)
  ;;    ("<f1> v" . counsel-describe-variable)
  ;;    ("<f1> l" . counsel-load-library)
  ;;    ("<f2> i" . counsel-info-lookup-symbol)
  ;;    ("<f2> u" . counsel-unicode-char)
  ;;    ("C-c g" . counsel-git)
  ;;    ("C-c j" . counsel-git-grep)
  ;;    ("C-c k" . counsel-ag)    ;; requires installation: apt install silversearcher-ag
  ;;    ("C-x l" . counsel-locate)
  ;;    ("M-y" . counsel-yank-pop)
  ;;    :map ivy-minibuffer-map
  ;;    ("M-y" . ivy-next-line))
  ;;   )
  ;; ;; Takes care of completion in elections menus
  ;; (use-package ivy
  ;;   :diminish (ivy-mode)
  ;;   :bind
  ;;   (
  ;;    ;; ("C-x b" . ivy-switch-buffer)
  ;;    ("<f6>" . ivy-resume)
  ;;    )
  ;;   :config
  ;;   (ivy-mode 1)
  ;;   (setq ivy-use-virtual-buffers t
;;     ivy-count-format "%d/%d "
;;     ivy-display-style 'fancy)
  ;;   )
  ;; ;; Ivy enriched
  ;; (use-package ivy-rich
  ;;   :config
  ;;   (ivy-rich-mode 1)
  ;;   )
  ;;
  ;; (use-package swiper
  ;;   :bind
  ;;   (("C-s" . swiper)
  ;;    ("C-r" . swiper-isearch-backward)
  ;;    :map minibuffer-local-map
  ;;    ("C-r" . counsel-minibuffer-history)
  ;;    )
  ;;   :config
  ;;   (ivy-mode 1)
  ;;   (setq ivy-use-virtual-buffers t)
  ;;   )

doom-modeline

A fancy modeline. Remember to execute M-x all-the-icons-install-fonts See this for fixing icons in terminal

  (use-package all-the-icons
    )
  (use-package doom-modeline
    :init
    (doom-modeline-mode 1)
    (setq doom-modeline-icon 1) ;; this fixes icons in emacs-client
    :custom
    (doom-modeline-height 15)
    ;;(doom-modeline-icon (display-graphic-p))
    )