;;; My basic configuration Gerardo Marx 20/May/2021 ;; MacOS version ;;-------- ;; Melpa repository: (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")t) (package-initialize) ;;+++++++++++++ ;;function to check installed packages: (defun is-installed (pack) "Check if a package is istalled" (unless (package-installed-p pack) (package-refresh-contents) (package-install pack))) ;;++++++++++++++++ ;; use-package (is-installed 'use-package) (is-installed 'helm) (require 'helm-config) (global-set-key (kbd "M-x") 'helm-M-x) (global-set-key (kbd "C-x r b") #'helm-filtered-bookmarks) (global-set-key (kbd "C-x C-f") #'helm-find-files) (helm-mode 1) ;;++++++++++++ ;; which-key (is-installed 'which-key) (require 'which-key) (which-key-mode) ;;+++++++++++++ ;; frame size ;;(setq initial-frame-alist '((top . 325)(left . 0) ;; (width . 80)(height . 50))) ;;+++++++++++ ;; Doom-themes, all-the-icons, mode-line and font (unless (package-installed-p 'doom-themes) (package-install 'doom-themes)) (unless (package-installed-p 'all-the-icons) (package-install 'all-the-icons)) (require 'doom-themes) ;; Global settings (defaults) (setq doom-themes-enable-bold t ; if nil, bold is universally disabled doom-themes-enable-italic t) ; if nil, italics is universally disabled ;; Load the theme (doom-one, doom-molokai, etc); keep in mind that each ;; theme may have their own settings. (load-theme 'doom-one t) ;; Enable flashing mode-line on errors (doom-themes-visual-bell-config) ;; Enable custom neotree theme (doom-themes-neotree-config) ; all-the-icons fonts must be installed! ;; Installling doom-modeline: (unless (package-installed-p 'doom-modeline) (package-install 'doom-modeline)) (require 'doom-modeline) (doom-modeline-mode 1) ;;Intalling all-the-icons font: (unless (package-installed-p 'all-the-icons) (package-install 'all-the-icons)) ;; Set default font: (add-to-list 'default-frame-alist '(font . "Source Code Pro-15")) ;;+++++++ ;;auctex: (is-installed 'auctex) (is-installed 'pdf-tools);; PDFtools (pdf-tools-install) (setenv "PATH" (concat "/Library/TeX/texbin:" (getenv "PATH"))) (add-to-list 'exec-path "/Library/TeX/texbin") (setq TeX-auto-save t) (setq TeX-save-query nil) (setq LaTeX-includegraphics-read-file 'LaTeX-includegraphics-read-file-relative) (setq TeX-parse-self t) (setq-default TeX-master nil) (add-hook 'LaTeX-mode-hook 'visual-line-mode) (add-hook 'LaTeX-mode-hook 'flyspell-mode) (add-hook 'LaTeX-mode-hook 'LaTeX-math-mode) (add-hook 'LaTeX-mode-hook 'turn-on-reftex) (setq reftex-plug-into-AUCTeX t) (setq TeX-view-program-selection '((output-pdf "PDF Tools")) TeX-source-correlate-start-server t) ;; Update PDF buffers after successful LaTeX runs (defun framesMenus-display-buffer-use-some-frame (fun &rest args) "Use `display-buffer-use-some-frame' as `display-buffer-overriding-action'. Then run FUN with ARGS." (let ((display-buffer-overriding-action '(display-buffer-use-some-frame))) (apply fun args))) (advice-add 'TeX-pdf-tools-sync-view :around #'framesMenus-display-buffer-use-some-frame) (advice-add 'pdf-sync-backward-search-mouse :around #'framesMenus-display-buffer-use-some-frame) (add-hook 'TeX-after-compilation-finished-functions #'TeX-revert-document-buffer) (add-to-list 'auto-mode-alist '("\\.pdf\\'" . pdf-view-mode)) (add-hook 'pdf-view-mode-hook (lambda () (pdf-tools-enable-minor-modes))) (setq TeX-source-correlate-method 'synctex) ;;--end---- ;;.............. ;;======== ;;Flyspell (setq ispell-program-name "/usr/bin/aspell") (dolist (hook '(text-mode-hook)) (add-hook hook (lambda () (flyspell-mode 1)))) ;; ========== ;; ORG files: (is-installed 'org-ref) (require 'org-ref) (setq org-latex-pdf-process (list "latexmk -shell-escape -bibtex -f -pdf %f")) (setq org-latex-prefer-user-labels t) ;; ========== ;; TRMAP (eval-after-load 'tramp '(setenv "SHELL" "/bin/bash")) ;;========= ;;Shell (setq-default explicit-shell-file-name "/bin/bash") ;; ========= ;; markdown (is-installed 'markdown-mode) (autoload 'markdown-mode "markdown-mode" "Major mode for editing Markdown files" t) (add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode)) (add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode)) (autoload 'gfm-mode "markdown-mode" "Major mode for editing GitHub Flavored Markdown files" t) (add-to-list 'auto-mode-alist '("README\\.md\\'" . gfm-mode)) ;; ======== ;;Neotree (is-installed 'neotree) (require 'neotree) (global-set-key [f8] 'neotree-toggle) ;; ======== ;; Python ;;=-=-=-=-=-= ;; Python completion: (is-installed 'anaconda-mode) (add-hook 'python-mode-hook 'anaconda-mode) (add-hook 'python-mode-hook 'anaconda-eldoc-mode) ;(add-hook 'python-mode-hook 'jedi:setup) ;(setq jedi:complete-on-dot t) ; optional ;(setq jedi:environment-root "/usr/local/bin/python3") ;;======= ;; Python pyvenv (is-installed 'pyvenv) (pyvenv-mode t) (setenv "WORKON_HOME" "~/.pyvenv/") ;(setq python-shell-interpreter (concat pyvenv-virtual-env "bin/python3")) ;(setq python-shell-interpreter "/usr/local/bin/python3") ;; -=-=-=-=-=-=-=-=- ;; My functions gmarx ;; Python chunk: (defun python-shell-send-chunk () (interactive) (save-excursion (mark-paragraph) (let ((start (region-beginning)) (end (region-end))) (python-shell-send-region start end)) (keyboard-quit))) ;; my keybindings: (global-set-key (kbd "C-c C-k") 'python-shell-send-chunk) ;;==================== ;; emacs startup config (setq inhibit-startup-message nil) ;;inhibit startup (global-visual-line-mode t) (tool-bar-mode -1) (menu-bar-mode -1) (global-hl-line-mode +1) ;; highlith current line (delete-selection-mode +1) ;; deletes selected text and replace it (scroll-bar-mode -1) (setq ns-right-alternate-modifier nil) ;; right option macos key enable (fset 'yes-or-no-p 'y-or-n-p) ;; Ask y/n instead of yes/no (add-hook 'prog-mode-hook 'display-line-numbers-mode) ;; display line number when programming (show-paren-mode +1) ;; show matching parentheses ;;--------- (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(custom-safe-themes '("b0e446b48d03c5053af28908168262c3e5335dcad3317215d9fdeb8bac5bacf9" default)) '(package-selected-packages '(anaconda-mode which-key use-package pyvenv pdf-tools org-ref neotree markdown-mode jedi helm doom-themes doom-modeline docker-compose-mode auctex)) '(safe-local-variable-values '((LaTeX-includegraphics-read-file . LaTeX-includegraphics-read-file-relative)))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. )