(setq user-full-name "Andrea Miglietta" user-mail-address "andrea.miglietta92@gmail.com" )
(require 'package) (setq package-enable-at-startup nil) (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/" )) (add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/")) (package-initialize)
(unless (package-installed-p 'use-package) (package-refresh-contents) (package-install 'use-package))
(use-package auto-package-update :ensure t :init (setq auto-package-update-interval 7) (setq auto-package-update-delete-old-versions t) (add-hook 'auto-package-update-before-hook (lambda () (message "I will update packages now"))) ;; Update at startup (auto-package-update-maybe) )
;; Disable useless screens (setq use-file-dialog nil) (setq use-dialog-box nil) ;;(setq inhibit-splash-screen t) ;;(setq inhibit-startup-message t) (setq inhibit-startup-screen t) (setq inhibit-startup-echo-area-message t) (setq indicate-empty-lines t) (add-hook 'text-mode-hook 'auto-fill-mode) (setq-default fill-column 80) (setq default-directory (substitute-in-file-name "$HOME/")) (setq mouse-yank-at-point t) ;; Show a marker in the left fringe for lines not in the buffer (setq indicate-empty-lines t) ;; Shrink fringes to 1 pixel (fringe-mode 1)
(custom-set-variables '(menu-bar-mode nil) '(tool-bar-mode nil) '(scroll-bar-mode nil) '(blink-cursor nil) '(line-number-mode t) '(column-number-mode t) )
(setq backup-directory-alist '(("." . "~/.emacs.d/backups")) vc-make-backup-files t version-control t kept-new-version 3 kept-old-version 1 delete-old-versions t backup-by-copying t )
To not have the modeline full of minor modes I use globally
(use-package diminish :ensure t )
(use-package evil :diminish :ensure t :init (evil-mode t) ) ;; Cursor (setq evil-insert-state-cursor '(box "white") evil-normal-state-cursor '(box "white") evil-visual-state-cursor '(hollow "white") ) ;;FIXME: ;;(use-package evil-tabs ;; :ensure t ;; :config (global-evil-tabs-mode t) ;;)
(set-face-attribute 'default nil :height 110) (global-set-key (kbd "C-+") 'text-scale-increase) (global-set-key (kbd "C--") 'text-scale-decrease)
(use-package git-gutter+ :diminish :ensure t :init (global-git-gutter+-mode) ) (setq git-gutter+-window-width 1) (setq git-gutter+-modified-sign "◉") (setq git-gutter+-added-sign "◉") (setq git-gutter+-deleted-sign "◉") (set-face-foreground 'git-gutter+-modified "purple") (set-face-foreground 'git-gutter+-added "green") (set-face-foreground 'git-gutter+-deleted "red") (global-set-key (kbd "C-x g") 'git-gutter+-mode) ; Turn on/off in the current buffer (global-set-key (kbd "C-x G") 'global-git-gutter+-mode) ; Turn on/off globally
(use-package google-translate :ensure t :init (require 'google-translate) (require 'google-translate-smooth-ui) :bind (("\C-ct" . google-translate-smooth-translate)) :config (setq google-translate-translation-directions-alist '(("it" . "en") ("en" . "it"))) )
(global-hl-line-mode) (global-font-lock-mode t) ;; Turn on syntax highlighting whenever possible
(show-paren-mode) ; Automatically highlight paren pairs (setq show-paren-delay 0.0) ; Show paren match immediately
(setq savehist-file "~/.emacs.d/savehist") (savehist-mode t) (setq history-length t) (setq history-delete-duplicates t)
(use-package color-theme-sanityinc-solarized :ensure t :init (load-theme 'sanityinc-solarized-dark t) )
(global-set-key (kbd "C-x C-b") 'ibuffer) (autoload 'ibuffer "ibuffer" "List buffers." t)
;; (require 'ido) ;; (ido-mode t)
Iflipb to switch buffers
(use-package iflipb :ensure t )
(setq evil-toggle-key "") ;; Remove default evil-toggle-key "C-z" (global-unset-key (kbd "C-z")) ;; Remove "C-z" default behavior (define-key evil-insert-state-map (kbd "C-a") 'smarter-move-beginning-of-line) (define-key evil-insert-state-map (kbd "C-e") 'move-end-of-line) (define-key evil-normal-state-map (kbd "C-a") 'smarter-move-beginning-of-line) (define-key evil-normal-state-map (kbd "C-e") 'move-end-of-line) (define-key evil-insert-state-map (kbd "RET") 'newline-and-indent) (define-key evil-insert-state-map (kbd "M-k") 'iflipb-next-buffer) (define-key evil-insert-state-map (kbd "M-j") 'iflipb-previous-buffer) (define-key evil-normal-state-map (kbd "M-k") 'iflipb-next-buffer) (define-key evil-normal-state-map (kbd "M-j") 'iflipb-previous-buffer)
(global-set-key (kbd "<F5>") 'revert-buffer) (global-set-key (kbd "RET") 'newline-and-indent) (setq x-select-enable-primary t) (setq x-select-enable-clipboard t) (global-set-key (kbd "S-<ins>") 'mouse-yank-primary)
;; Insert date (defun insert-date () "Insert the current date." (interactive) (insert (format-time-string "%d.%m.%Y"))) (global-set-key (kbd "C-c d") 'insert-date)
(define-key org-mode-map (kbd "RET") nil) (define-key org-mode-map (kbd "C-a") nil)
(defun smarter-move-beginning-of-line (arg) "Move point back to indentation of beginning of line. Move point to the first non-whitespace character on this line. If point is already there, move to the beginning of the line. Effectively toggle between the first non-whitespace character and the beginning of the line. If ARG is not nil or 1, move forward ARG - 1 lines first. If point reaches the beginning or end of the buffer, stop there." (interactive "^p") (setq arg (or arg 1)) ;; Move lines first (when (/= arg 1) (let ((line-move-visual nil)) (forward-line (1- arg)))) (let ((orig-point (point))) (back-to-indentation) (when (= orig-point (point)) (move-beginning-of-line 1)))) ;; Remap C-a to `smarter-move-beginning-of-line' (global-set-key [remap move-beginning-of-line] 'smarter-move-beginning-of-line)
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) (add-to-list 'auto-mode-alist '("\\.org_archive\\'" . org-mode)) ;; Cuter bullets (use-package org-bullets :ensure t :init (setq org-bullets-bullet-list '("◉")) (add-hook 'org-mode-hook (lambda () (org-bullets-mode t))) ) (setq org-ellipsis " »") ;; Don't ask for confirmation (setq org-confirm-babel-evaluate nil) ;; Active Babel Languages (org-babel-do-load-languages 'org-babel-load-languages '((emacs-lisp . t) (latex . t) (sh . t) )) ;; Syntax highlighting in source blocks (setq org-src-fontify-natively t) ;; Hide markers when text is markup (setq org-hide-emphasis-markers t) (setq org-log-done 'time)
;; This is not enable by default in emacs (setq vc-follow-symlinks t)
;; When something changes a file, automatically refresh the ;; buffer containing that file so they can't get out of sync. (global-auto-revert-mode t)
(setq-default indent-tabs-mode nil) (setq tab-stop-list (number-sequence 4 120 4)) (setq-default tab-width 4)
;; Delete trailing whitespace automatically on save. (add-hook 'before-save-hook 'delete-trailing-whitespace)
(fset 'yes-or-no-p 'y-or-n-p)