diff --git a/myconfig.org b/myconfig.org new file mode 100644 index 0000000..3d3eb31 --- /dev/null +++ b/myconfig.org @@ -0,0 +1,299 @@ +#+startup: overview + +* Famous init files +- [[https://github.com/zamansky/dot-emacs][The Big Zemansky]] +- [[https://github.com/patrickt/emacs][Patrick: GOAT init emacs]] +- [[https://github.com/manugoyal/.emacs.d][Manugoyal: Emacs config]] +- [[https://github.com/daviwil/dotfiles/blob/master/Emacs.org][System Crafters]] +- [[https://github.com/daviwil/emacs-from-scratch/blob/master/Emacs.org][System Crafters emacs-from-scratch]] +- [[https://github.com/SystemCrafters/crafter-configs][System Crafters configs compilation]] + +* Interface tweaks +** Some GUI optimizations + #+begin_src emacs-lisp + (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)))) + #+end_src + +** Set encoding + Use utf-8 please + #+begin_src emacs-lisp + ;; Set encoding + (prefer-coding-system 'utf-8) + #+end_src + +** 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 + #+begin_src emacs-lisp + (global-set-key (kbd "") '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 + #+end_src + +** Own map + Defines own key map + #+begin_src emacs-lisp + (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) + #+end_src + +** Syntax highlight + Set maximum colors + #+begin_src emacs-lisp + (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 + #+end_src + +** Kill buffer quick + Kill current buffer without questions + #+begin_src emacs-lisp + ;;------------------------------------------------------------ + ;; 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) + #+end_src + +** rainbow-delimiters + #+begin_src emacs-lisp + (use-package rainbow-delimiters + :hook (prog-mode . rainbow-delimiters-mode) + ) + #+end_src + +* which-key + Some help with composed hotkeys + #+begin_src emacs-lisp + (use-package which-key + :diminish + :config + (which-key-mode) + (setq which-key-idle-delay 0.3) + ) + #+end_src + +* ace-windows + To jump to different windows easily + #+begin_src emacs-lisp + (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))))) + ) + #+end_src + +* Completion systems +** Selectrum + #+begin_src emacs-lisp + ;; (use-package selectrum + ;; :init + ;; (selectrum-mode +1)) + #+end_src + +** Vertico (the choosed one) + Have a look [[https://github.com/minad/vertico][here]] + #+begin_src emacs-lisp + (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) + ) + #+end_src + +*** Orderless + Have a look at [[https://github.com/oantolin/orderless][repo]] + #+begin_src emacs-lisp + (use-package orderless + :init + (icomplete-mode) + :custom + (completion-styles '(orderless)) + (completion-category-defaults nil) + (completion-category-overrides '((file (styles partial-completion)))) + ) + #+end_src + +*** Marginalia + Check the [[https://github.com/minad/marginalia][doc]] + #+begin_src emacs-lisp + (use-package marginalia + :init + (marginalia-mode +1) + :bind + (; ("M-A" . marginalia-cycle) ;; Uncomment for global bind + :map minibuffer-local-map + ("M-A" . marginalia-cycle)) + ) + #+end_src + + + +#+begin_src emacs_lisp +#+end_src + + + +* 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 + #+begin_src emacs-lisp + ;; (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) + ;; (" f" . counsel-describe-function) + ;; (" v" . counsel-describe-variable) + ;; (" l" . counsel-load-library) + ;; (" i" . counsel-info-lookup-symbol) + ;; (" 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) + ;; ("" . 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) + ;; ) + #+end_src + +* doom-modeline + A fancy modeline. Remember to execute =M-x all-the-icons-install-fonts= + See [[http://sodaware.sdf.org/notes/emacs-daemon-doom-modeline-icons/][this]] for fixing icons in terminal + + #+begin_src emacs-lisp + (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)) + ) + #+end_src