spacemacs/init.el

97 lines
3.6 KiB
EmacsLisp

(require 'cl)
;; Locations ===================================================================
(defvar user-home-directory
(expand-file-name (concat user-emacs-directory "../"))
"The user's home directory.")
(defvar user-projects-dir
(expand-file-name (concat user-home-directory "Projects/"))
"The directory containing the user's checked out source code.")
(defvar user-custom-modes-dir
(expand-file-name (concat user-emacs-directory "custom-modes/"))
"The directory containing the user's custom modes.")
(defvar user-dropbox-directory
(expand-file-name (concat user-home-directory "Dropbox/"))
"The user's Dropbox root directory.")
(add-to-list 'load-path user-emacs-directory)
;; Global config ===============================================================
;; font size
(set-face-attribute 'default nil :height 110)
;; number colon mode
(global-linum-mode t)
;; full screen
(tool-bar-mode -1)
(menu-bar-mode -1)
(scroll-bar-mode -1)
(fringe-mode 0)
;; no blink
(blink-cursor-mode (- (*) (*) (*)))
;; save session
(desktop-save-mode 1)
;; tool tips in echo area
(tooltip-mode -1)
(setq tooltip-use-echo-area t)
;; whitespace-mode
(setq-default show-trailing-whitespace nil)
;; Inhibit startup message
(setq inhibit-startup-message t
inhibit-startup-echo-area-message t)
(setq initial-scratch-message "")
;; Do not make backup files
(setq make-backup-files nil)
;; When emacs asks for "yes" or "no", let "y" or "n" sufficide
(fset 'yes-or-no-p 'y-or-n-p)
;; Show column number in mode line
(setq column-number-mode t)
;; When point is on paranthesis, highlight the matching one
(show-paren-mode t)
;; auto-save
(add-hook 'before-save-hook (lambda () (delete-trailing-whitespace)))
(setq redisplay-dont-pause t)
;; use only spaces and no tabs
(setq-default indent-tabs-mode nil)
(setq default-tab-width 4)
;; move focus to newly split window
(defadvice split-window (after move-point-to-new-window activate)
"Moves the point to the newly created window after splitting."
(other-window 1))
;; Config files ================================================================
(progn
(setq user-emacs-config-dir (concat user-emacs-directory "config/"))
(when (file-exists-p user-emacs-config-dir)
(dolist (l (directory-files user-emacs-config-dir nil "^[^#].*el$"))
(load (concat user-emacs-config-dir l)))))
(require 'my-funcs)
(require 'my-packages)
(require 'my-keybindings)
;; Python ======================================================================
;; clone git repository https://github.com/gabrielelanaro/emacs-for-python
;; =============================================================================
(setq ropemacs-global-prefix "C-x /") ;; avoid conflict with p4 global prefix
(load-file (concat user-emacs-directory "emacs-for-python/epy-init.el"))
(require 'epy-setup) ;; It will setup other loads, it is required!
(require 'epy-python) ;; If you want the python facilities [optional]
(require 'epy-completion) ;; If you want the autocompletion settings [optional]
(require 'epy-editing) ;; For configurations related to editing [optional]
(require 'epy-bindings) ;; For my suggested keybindings [optional]
(require 'epy-nose) ;; For nose integration
(epy-setup-checker "pyflakes %f")
(epy-setup-ipython)
;; line hightlighting
(global-hl-line-mode t)
(set-face-background 'hl-line "black")
;; identation highlighting
;; (require 'highlight-indentation)
;; (add-hook 'python-mode-hook 'highlight-indentation)
;; Custom modes ================================================================
(load-file (concat user-custom-modes-dir "heartbeat-cursor.el"))