Emacs rc file
From Tech
Jump to navigationJump to search;;Remove trailing whitespace before saving a file:
(add-hook 'write-file-hooks 'delete-trailing-whitespace)
;;Don't use tabs:
(setq-default indent-tabs-mode nil);
;; In Makefiles you do want tabs, so add in the Makefiles themelves:
;; # Local Variables:
;; # indent-tabs-mode: t
;; # End:
;; Normally, when the cursor moves just one line below or aboev
;; the visable edit window, the window moves many lines (half
;; the visable area). With this, it just moves one line.
(setq scroll-step 1)
;; -------------------------
;; POLYMODE CONFIGURATION
;; -------------------------
;;;Steps to enable the polymode emacs package:
;;;
;;(require 'package)
;;(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
;;(package-initialize)
;;;;in emacs, type:
;;;; M-x package-refresh-contents [ENTER]
;;;; M-x package-install [ENTER] polymode [ENTER]
(require 'polymode)
;; 1. Define the Host Mode (RST)
(define-hostmode poly-rst-hostmode :mode 'rst-mode)
;; 2. Define the Python Inner Mode (.. plot::)
(define-innermode poly-rst-plot-innermode
:mode 'python-mode
:head-matcher "^\\.\\. plot::.*$"
:tail-matcher "^[^ \t\n]"
:head-mode 'host
:tail-mode 'host)
;; 3. Define the LaTeX Inner Mode (.. math::)
(define-innermode poly-rst-math-innermode
:mode 'latex-mode
:head-matcher "^\\.\\. math::.*$"
:tail-matcher "^[^ \t\n]"
:head-mode 'host
:tail-mode 'host)
;; 4. Define the Combined Mode
(define-polymode poly-rst-mixed-mode
:hostmode 'poly-rst-hostmode
:innermodes '(poly-rst-plot-innermode poly-rst-math-innermode))
;; 5. Auto-activate this mode for .rst files
(add-to-list 'auto-mode-alist '("\\.rst\\'" . poly-rst-mixed-mode))