2016-03-24 08:55:18 +00:00
|
|
|
(add-to-list 'load-path "~/.emacs.d/one-file-mode/")
|
|
|
|
|
|
|
|
;; Themes
|
|
|
|
(setq custom-theme-directory "~/.emacs.d/themes/")
|
|
|
|
(load-theme 'hydandata-light t)
|
2016-02-18 13:53:30 +00:00
|
|
|
|
|
|
|
;; Packages
|
|
|
|
(require 'package) ;; You might already have this line
|
|
|
|
(add-to-list 'package-archives
|
|
|
|
'("melpa" . "http://melpa.org/packages/"))
|
|
|
|
(add-to-list 'package-archives
|
|
|
|
'("melpa" . "http://melpa.milkbox.net/packages/"))
|
|
|
|
(when (< emacs-major-version 24)
|
|
|
|
;; For important compatibility libraries like cl-lib
|
|
|
|
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
|
|
|
|
(package-initialize) ;; You might already have this line
|
|
|
|
|
2016-03-24 08:55:18 +00:00
|
|
|
(require 'iso-transl)
|
|
|
|
(require 'use-package)
|
|
|
|
|
|
|
|
;; No menu, scrollbar, display line and column
|
|
|
|
(menu-bar-mode -1)
|
|
|
|
(tool-bar-mode -1)
|
|
|
|
(scroll-bar-mode -1)
|
|
|
|
(column-number-mode t)
|
|
|
|
(line-number-mode t)
|
|
|
|
|
|
|
|
;; No split screen at startup
|
|
|
|
(setq inhibit-startup-screen t)
|
2016-02-22 11:25:50 +00:00
|
|
|
|
2016-02-18 13:53:30 +00:00
|
|
|
;; Encoding
|
|
|
|
(set-language-environment "UTF-8")
|
2016-03-24 08:55:18 +00:00
|
|
|
|
|
|
|
;; Selection mode
|
2016-02-18 13:53:30 +00:00
|
|
|
(delete-selection-mode 1)
|
|
|
|
|
|
|
|
;; Indentation mode
|
|
|
|
(setq-default indent-tabs-mode nil)
|
|
|
|
(setq tab-width 4)
|
|
|
|
|
2016-03-24 08:55:18 +00:00
|
|
|
;; Auto complete + Yasnippet
|
|
|
|
|
|
|
|
(use-package yasnippet
|
|
|
|
:config
|
|
|
|
(yas-global-mode 1))
|
|
|
|
|
|
|
|
(use-package auto-complete
|
|
|
|
:config
|
|
|
|
(require 'auto-complete-config)
|
|
|
|
(ac-config-default)
|
|
|
|
(require 'ac-c-headers)
|
|
|
|
(require 'ac-math)
|
|
|
|
(add-to-list 'ac-modes 'latex-mode)
|
|
|
|
(add-to-list 'ac-modes 'org-mode)
|
|
|
|
(add-to-list 'ac-sources 'ac-source-c-headers)
|
|
|
|
(defun ac-latex-mode-setup () ; add ac-sources to default ac-sources
|
|
|
|
(setq ac-sources
|
|
|
|
(append '(ac-source-math-unicode
|
|
|
|
ac-source-math-latex
|
|
|
|
ac-source-latex-commands)
|
|
|
|
ac-sources)))
|
|
|
|
(add-hook 'LaTeX-mode-hook 'ac-latex-mode-setup)
|
|
|
|
(global-auto-complete-mode t)
|
|
|
|
(ac-flyspell-workaround)
|
|
|
|
:config
|
|
|
|
(setq ac-math-unicode-in-math-p t))
|
2016-02-18 13:53:30 +00:00
|
|
|
|
|
|
|
;; Latex
|
2016-03-24 08:55:18 +00:00
|
|
|
(use-package tex-mik
|
|
|
|
:config
|
|
|
|
(setq TeX-auto-save t)
|
|
|
|
(setq TeX-parse-self t)
|
|
|
|
(setq-default TeX-master nil)
|
|
|
|
(defun my-latex-mode-setup ()
|
|
|
|
"Redefines and updates variables for various customizations."
|
|
|
|
(setq LaTeX-paragraph-commands
|
|
|
|
'("If" "State" "Loop" "For" "ForAll"))
|
|
|
|
(setq LaTeX-begin-regexp
|
|
|
|
(concat LaTeX-begin-regexp "\\|If\\b" "\\|Loop\\b" "\\|For\\b" "\\|ForAll\\b"))
|
|
|
|
(setq LaTeX-end-regexp
|
|
|
|
(concat LaTeX-end-regexp "\\|EndIf\\b" "\\|EndLoop\\b"
|
|
|
|
"\\|EndFor\\b" "\\|Else\\b" "\\|ElsIf\\b"))
|
|
|
|
(setq LaTeX-paragraph-commands-regexp (LaTeX-paragraph-commands-regexp-make))
|
|
|
|
(defun LaTeX-indent-level-count ()
|
|
|
|
"Count indentation change caused by all \\left, \\right, \\begin, and
|
|
|
|
\\end commands in the current line."
|
|
|
|
(save-excursion
|
|
|
|
(save-restriction
|
|
|
|
(let ((count 0))
|
|
|
|
(narrow-to-region (point)
|
|
|
|
(save-excursion
|
|
|
|
(re-search-forward
|
|
|
|
(concat "[^" TeX-esc "]"
|
|
|
|
"\\(" LaTeX-indent-comment-start-regexp
|
|
|
|
"\\)\\|\n\\|\\'"))
|
|
|
|
(backward-char)
|
|
|
|
(point)))
|
|
|
|
(while (search-forward TeX-esc nil t)
|
|
|
|
(cond
|
|
|
|
((looking-at "left\\b")
|
|
|
|
(setq count (+ count LaTeX-left-right-indent-level)))
|
|
|
|
((looking-at "right\\b")
|
|
|
|
(setq count (- count LaTeX-left-right-indent-level)))
|
|
|
|
((looking-at LaTeX-begin-regexp)
|
|
|
|
(setq count (+ count LaTeX-indent-level)))
|
|
|
|
((looking-at "Else\\b"))
|
|
|
|
((looking-at "ElsIf\\b"))
|
|
|
|
((looking-at LaTeX-end-regexp)
|
|
|
|
(setq count (- count LaTeX-indent-level)))
|
|
|
|
((looking-at (regexp-quote TeX-esc))
|
|
|
|
(forward-char 1))))
|
|
|
|
count)))))
|
|
|
|
|
|
|
|
(add-hook 'LaTeX-mode-hook 'my-latex-mode-setup)
|
|
|
|
(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)
|
|
|
|
(require 'tex)
|
|
|
|
(TeX-global-PDF-mode t)
|
|
|
|
)
|
2016-03-03 06:56:09 +00:00
|
|
|
|
2016-02-18 13:53:30 +00:00
|
|
|
;; CSS style
|
|
|
|
(setq css-indent-offset 2)
|
|
|
|
|
|
|
|
;; Markdown mode
|
2016-03-24 08:55:18 +00:00
|
|
|
(use-package markdown-mode
|
|
|
|
:mode "\\.text\\'" "\\.markdown\\'" "\\.md\\'")
|
2016-02-18 13:53:30 +00:00
|
|
|
|
|
|
|
;; White space mode
|
|
|
|
(setq whitespace-line-column 100)
|
2016-03-15 06:50:19 +00:00
|
|
|
|
|
|
|
(add-hook 'before-save-hook 'whitespace-cleanup)
|
|
|
|
|
2016-02-18 13:53:30 +00:00
|
|
|
(add-hook 'python-mode-hook (lambda () (setq whitespace-line-column 140)))
|
2016-03-03 06:56:09 +00:00
|
|
|
(add-hook 'LaTeX-mode-hook (lambda () (setq whitespace-line-column -1)))
|
|
|
|
|
2016-02-18 13:53:30 +00:00
|
|
|
(global-whitespace-mode 1)
|
|
|
|
|
|
|
|
;; Electric pair mode
|
|
|
|
(electric-pair-mode 1)
|
|
|
|
(show-paren-mode 1)
|
|
|
|
(setq show-paren-delay 0)
|
|
|
|
|
2016-03-24 08:55:18 +00:00
|
|
|
;; C mode
|
|
|
|
|
|
|
|
(setq c-default-style "k&r")
|
|
|
|
(setq c-basic-offset 4)
|
|
|
|
|
|
|
|
(use-package c++1x-minor-mode)
|
|
|
|
|
|
|
|
(defun ac-cc-mode-setup ()
|
|
|
|
"Initialization hook for CC-mode runs before any other hooks."
|
|
|
|
(hide-ifdef-mode)
|
|
|
|
(setq hide-ifdef-shadow t)
|
|
|
|
(hs-minor-mode))
|
|
|
|
|
|
|
|
(add-hook 'c-mode-common-hook 'ac-cc-mode-setup)
|
|
|
|
(add-hook 'c++-mode-common-hook 'ac-cc-mode-setup)
|
|
|
|
(add-hook 'auto-complete-mode-hook 'ac-common-setup)
|
|
|
|
|
|
|
|
(setq c-doc-comment-style
|
|
|
|
'((java-mode . javadoc)
|
|
|
|
(pike-mode . autodoc)
|
|
|
|
(c-mode . javadoc)
|
|
|
|
(c++-mode . javadoc)))
|
|
|
|
|
|
|
|
(add-to-list 'auto-mode-alist '("\\.hpp\\'" . c++-mode))
|
|
|
|
|
2016-02-18 13:53:30 +00:00
|
|
|
;; Run C programs directly from within emacs
|
|
|
|
(setq execute-command nil)
|
|
|
|
(setq compile-command nil)
|
|
|
|
(setq execute-buffer-name "*output*")
|
|
|
|
(setq execute-process-name "execute")
|
|
|
|
|
|
|
|
(defun set-execute-command ()
|
|
|
|
(interactive)
|
|
|
|
(setq sp (split-string (read-from-minibuffer "Execute command: ")))
|
|
|
|
(setq execute-command (combine-and-quote-strings (cons (file-truename (car sp)) (cdr sp)))))
|
|
|
|
|
|
|
|
(defun kill-execute-c-program ()
|
|
|
|
(interactive)
|
|
|
|
(if (get-process execute-process-name)
|
|
|
|
(delete-process (get-process execute-process-name))))
|
|
|
|
|
|
|
|
(defun execute-c-program ()
|
|
|
|
(interactive)
|
|
|
|
(if (not execute-command) (set-execute-command))
|
|
|
|
(kill-execute-c-program)
|
|
|
|
(setq old-buffer (current-buffer))
|
|
|
|
(setq output-buffer (get-buffer-create execute-buffer-name))
|
|
|
|
(switch-to-buffer-other-window output-buffer)
|
|
|
|
(end-of-buffer)
|
|
|
|
(insert (concat (propertize execute-command 'face 'bold) "\n"))
|
|
|
|
(switch-to-buffer-other-window old-buffer)
|
|
|
|
(start-process-shell-command execute-process-name execute-buffer-name execute-command)
|
|
|
|
)
|
|
|
|
|
|
|
|
(defun set-compile-command ()
|
|
|
|
(interactive)
|
|
|
|
(setq compile-command (read-from-minibuffer "Compile command: ")))
|
|
|
|
|
|
|
|
(defun compile-c-program ()
|
|
|
|
(interactive)
|
|
|
|
(if (not compile-command) (set-compile-command))
|
|
|
|
(compile compile-command))
|
|
|
|
|
|
|
|
(defun key-c-mode-setup ()
|
|
|
|
(local-set-key [f1] 'compile-c-program)
|
|
|
|
(local-set-key [f2] 'execute-c-program)
|
|
|
|
(local-set-key [f3] 'kill-execute-c-program)
|
|
|
|
(local-set-key [f4] 'set-execute-command)
|
|
|
|
(local-set-key [f5] 'set-compile-command))
|
|
|
|
|
|
|
|
(add-hook 'c++-mode-common-hook 'key-c-mode-setup)
|
|
|
|
(add-hook 'c-mode-common-hook 'key-c-mode-setup)
|
|
|
|
|
|
|
|
;; Flyspell dictionarie
|
|
|
|
(defun fd-switch-dictionary ()
|
|
|
|
(interactive)
|
|
|
|
(let* ((dic ispell-current-dictionary)
|
|
|
|
(change (if (string= dic "francais") "english" "francais")))
|
|
|
|
(ispell-change-dictionary change)
|
|
|
|
(message "Dictionary switched from %s to %s" dic change)
|
|
|
|
))
|
|
|
|
|
|
|
|
(defun key-latex-mode-setup ()
|
|
|
|
(local-set-key [f8] 'fd-switch-dictionary))
|
|
|
|
|
|
|
|
(add-hook 'LaTeX-mode-hook 'key-latex-mode-setup)
|