An Emacs configuration to work with LaTeX, Python, C, C++, Pandoc, Markdown, Slack, and git running natively in different OS like MacOS, ArchLinux, and Ubuntu.
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.

97 lines
3.4 KiB

;;; My basic configuration Gerardo Marx 20/May/2021
;;; Ubuntu version
;;--------
;; Melpa repository:
(require 'package)
(add-to-list 'package-archives
'("melpa" . "https://melpa.org/packages/")t)
(package-initialize)
;; is-installed function
(defun is-installed (package)
"A function to determine if a packge is installed, otherwise will be installed"
(unless (package-installed-p package)
(package-refresh-contents)
(package-install package)))
;;+++++++++++++
;; 1 Very basic emacs configuration:
;;
(setq initial-frame-alist '((top . 0)(left . 0)
(width . 80)(height . 50)));;frame size
(add-to-list 'default-frame-alist
'(font . "Source Code Pro-16"));; Set default font:
(setq inhibit-startup-message t) ;;inhibit startup message
(tool-bar-mode -1) ;; no toolbar
(menu-bar-mode -1) ;; no menubar
(global-hl-line-mode +1) ;; highlith current line
(delete-selection-mode +1) ;; deletes selected text and replace it
(scroll-bar-mode -1) ;; no scroll bar
(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
;;===========
;; 2. Packages for Emacs
;;------------
;;+++++++++++
;; 2.1: Doom-themes, all-the-icons and mode-line
(is-installed 'doom-themes) ; install doom-themes
(is-installed 'all-the-icons) ; install beauty icons for emacs
(require 'doom-themes)
(setq doom-themes-enable-bold t ; if nil, bold is universally disabled
doom-themes-enable-italic t); if nil, italics is universally disabled
(load-theme 'doom-one t) ;default theme
(doom-themes-visual-bell-config);; Enable flashing mode-line on errors
;; Enable custom neotree theme
(doom-themes-neotree-config) ; all-the-icons fonts must be installed!
(is-installed 'doom-modeline);; Installling doom-modeline:
(require 'doom-modeline) ;loading modeline
(doom-modeline-mode 1);enabling modeline
;; 2.2 helm
(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)
;; 2.3 which-key: Support to learn emacs keybindings
(is-installed 'which-key)
(require 'which-key)
(which-key-mode)
;;+++++++
;;2.4 auctex:
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)
;;--end----
;; 2.5 auto-complet:
(is-installed 'auto-complete)
(ac-config-default)
;; 2.6 ace-window
(is-installed 'ace-window)
(global-set-key (kbd "M-o") 'ace-window)
;; 2.7 avy
(is-installed 'avy)
(avy-setup-default)
(global-set-key (kbd "M-g f") 'avy-goto-line)
;; 2.8 multiple-cursors
(is-installed 'multiple-cursors)
(require 'multiple-cursors)
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this)
(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)
(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-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.
)