Advertisement
DrMGC

.emacs on 31.03.2015 9:37

Mar 31st, 2015
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 11.69 KB | None | 0 0
  1.  
  2. (add-to-list 'load-path "~/.emacs.d/.self")
  3.  
  4. ;; (load "package")
  5. ;; (require 'package)
  6. ;; (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages")
  7. ;;                          ("marmalade" . "http://marmalade-repo.org/packages/")
  8. ;;                          ("mepla" . "http://mepla.org/packages")))
  9.  
  10. ;; (package-initialize)
  11.  
  12.  
  13. (add-to-list 'load-path "~/.emacs.d/el-get/el-get")
  14. (unless (require 'el-get nil 'noerror)
  15.   (with-current-buffer
  16.       (url-retrieve-synchronously
  17.        "https://raw.github.com/dimitri/el-get/master/el-get-install.el")
  18.     (let (el-get-master-branch)
  19.       (goto-char (point-max))
  20.       (eval-print-last-sexp))))
  21.  
  22. (require 'el-get-elpa)
  23.  
  24. (el-get 'sync)
  25.  
  26.  
  27. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  28. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  29.  
  30.  
  31. ;; evil-mode
  32. (require 'evil)
  33. (evil-mode 1)
  34.  
  35.  
  36. ;; ido
  37. (require 'ido)
  38. (ido-mode t)
  39. (setq ido-enable-flex-matching t)
  40.  
  41.  
  42. ;; linum+
  43. (require 'linum+)
  44. (setq linum-format "%d ")
  45. (global-linum-mode 1)
  46.  
  47.  
  48. ;; emmet-mode
  49. (require 'emmet-mode)
  50. (add-hook 'sgml-mode-hook 'emmet-mode)
  51. (add-hook 'css-mode-hook 'emmet-mode)
  52. (add-hook 'xml-mode-hook 'emmet-mode)
  53. (add-hook 'nxml-mode-hook 'emmet-mode)
  54.  
  55.  
  56. ;; projectile
  57. (require 'projectile)
  58. (projectile-global-mode)
  59. (setq projectile-enable-caching t)
  60. (setq projectile-require-project-root nil)
  61.  
  62.  
  63. ;; jedi
  64. (add-hook 'python-mode-hook 'auto-complete-mode)
  65. (add-hook 'python-mode-hook 'jedi:ac-setup)
  66.  
  67.  
  68. ;; coffee-mode
  69. (require 'coffee-mode)
  70.  
  71.  
  72. ;; org-mode
  73. (require 'org-install)
  74. (setq org-src-fontify-natively 't)
  75. (setq org-todo-keywords '((sequence "TODO" "FIXME" "VERIFY" "|" "DONE")))
  76.  
  77.  
  78. ;; nav
  79. (require 'nav)
  80. (nav-disable-overeager-window-splitting)
  81. (global-set-key (kbd "<f8>") 'nav-toggle)
  82.  
  83.  
  84. ;; writer-mode
  85. (add-to-list 'load-path "~/dev/xp/writer-mode/")
  86. (require 'writer-mode)
  87.  
  88.  
  89. ;; lua-mode
  90. (require 'lua-mode)
  91.  
  92.  
  93. ;; less-css-mode
  94. (require 'less-css-mode)
  95.  
  96.  
  97. ;; go-mode
  98. (add-to-list 'ac-modes 'go-mode)
  99.  
  100.  
  101. ;; yasnippet
  102. (require 'yasnippet)
  103. (yas-global-mode 1)
  104. (setq yas-snippet-dirs
  105.       '("~/.emacs.d/snippets"))
  106. (define-key yas-minor-mode-map (kbd "<tab>") nil)
  107. (define-key yas-minor-mode-map (kbd "TAB") nil)
  108. (define-key yas-minor-mode-map (kbd "M-<tab>") 'yas-expand)
  109.  
  110.  
  111. ;; ace-jump-mode
  112. (require 'ace-jump-mode)
  113.  
  114.  
  115. ;; multiple-cursors
  116. (require 'multiple-cursors)
  117.  
  118.  
  119. ;;
  120. (require 'flyspell)
  121. (require 'ispell)
  122.  
  123. (setq
  124.  ispell-program-name "aspell"
  125.  ispell-extra-args '("--sug-mode=ultra"))
  126.  
  127. (setq ispell-highlight-face (quote flyspell-incorrect))
  128. (setq ispell-have-new-look t)
  129. (setq ispell-enable-tex-parser t)
  130. (add-hook 'text-mode-hook 'flyspell-mode)
  131. (add-hook 'latex-mode-hook 'flyspell-mode)
  132. (add-hook 'org-mode-hook 'flyspell-mode)
  133. (setq flyspell-delay 1)
  134. (setq flyspell-always-use-popup t)
  135.  
  136. (setq flyspell-issue-welcome-flag nil)
  137.  
  138.  
  139. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  140. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  141.  
  142.  
  143. (setq make-backup-files         nil)
  144. (setq auto-save-list-file-name  nil)
  145. (setq auto-save-default         nil)
  146.  
  147. (tool-bar-mode -1)
  148. (menu-bar-mode -1)
  149. (scroll-bar-mode -1)
  150.  
  151. (show-paren-mode t)
  152. (setq blink-matching-delay 0.3)
  153.  
  154. (setq-default truncate-lines t)
  155.  
  156. (column-number-mode)
  157.  
  158. (set-face-attribute 'default nil :height 100)
  159.  
  160. (electric-pair-mode 1)
  161.  
  162. ; Табуляция
  163. (setq-default tab-width 4)
  164. (setq-default tab-width 4)
  165. (setq-default c-basic-offset 4)
  166. (setq-default indent-tabs-mode t)
  167.  
  168. (setq tab-width 4)
  169. (setq tab-width 4)
  170. (setq c-basic-offset 4)
  171. (setq indent-tabs-mode t)
  172.  
  173.  
  174. (add-hook 'python-mode-hook
  175.           (lambda ()
  176.             (setq tab-width 4)
  177.             (setq python-indent 4)
  178.             (setq indent-tabs-mode t)))
  179.  
  180. (add-hook 'emacs-lisp-mode-hook
  181.           (function (lambda ()
  182.                       (setq tab-width 2)
  183.                       (setq indent-tabs-mode nil))))
  184.  
  185. (add-hook 'html-mode-hook
  186.           (lambda ()
  187.             (set (make-local-variable 'sgml-basic-offset) 4)))
  188.  
  189. (add-hook 'org-mode-hook
  190.           (lambda ()
  191.             (visual-line-mode)
  192.             (setq truncate-lines nil)
  193.             (setq tab-width 4)))
  194.  
  195. (add-hook 'lua-mode-hook
  196.           (lambda ()
  197.             (setq tab-width 4)
  198.             (setq indent-tabs-mode t)))
  199.  
  200. (add-hook 'c-mode-hook
  201.           (lambda ()
  202.             (setq tab-width 4)
  203.             (setq tab-width 4)
  204.             (setq c-basic-offset 4)
  205.             (setq indent-tabs-mode t)))
  206.  
  207. (add-hook 'c++-mode-hook
  208.           (lambda ()
  209.             (setq tab-width 4)
  210.             (setq tab-width 4)
  211.             (setq c-basic-offset 4)
  212.             (setq indent-tabs-mode t)
  213.             (c-set-offset 'innamespace [0])
  214.             (c-set-offset 'inmethod [4])
  215.             (c-set-offset 'infunction [4])
  216.             (c-set-offset 'inclass [4])))
  217.  
  218. (add-hook 'xml-mode-hook
  219.           (lambda ()
  220.             (setq truncate-lines nil)
  221.             (setq tab-width 4)
  222.             (setq nxml-child-indent 4)
  223.             (setq indent-tabs-mode t)))
  224.  
  225. (add-hook 'nxml-mode-hook
  226.           (lambda ()
  227.             (setq truncate-lines nil)
  228.             (setq tab-width 4)
  229.             (setq nxml-child-indent 4)
  230.             (setq indent-tabs-mode t)))
  231.  
  232. (add-hook 'html-mode-hook
  233.           (lambda ()
  234.             ;; (setq truncate-lines nil)
  235.             (setq tab-width 4)
  236.             (setq nxml-child-indent 4)
  237.             (setq indent-tabs-mode t)))
  238.  
  239. (add-hook 'go-mode-hook
  240.           (lambda ()
  241.             (setq tab-width 4)
  242.             (setq indent-tabs-mode t)))
  243.  
  244. (add-hook 'snippet-mode-hook
  245.           (lambda ()
  246.             (setq tab-width 4)
  247.             (setq indent-tabs-mode t)))
  248.  
  249. (add-hook 'fundamental-mode-hook
  250.           (lambda ()
  251.             (setq tab-width 4)
  252.             (setq tab-width 4)
  253.             (setq indent-tabs-mode t)))
  254.  
  255. (add-hook 'text-mode-hook
  256.           (lambda ()
  257.             (setq tab-width 4)
  258.             (setq tab-width 4)
  259.             (setq indent-tabs-mode t)))
  260.  
  261.  
  262. (setq-default python-indent 4)
  263. (setq-default py-indent-offset 4)
  264. (setq-default python-basic-indent 4)
  265. (setq-default python-basic-offset 0)
  266.  
  267. ;;
  268. ; Выравнивание должно быть БЕЗ табов
  269. (setq cua-auto-tabify-rectangles nil)
  270.  
  271. (defadvice align (around smart-tabs activate)
  272.   (let ((indent-tabs-mode nil)) ad-do-it))
  273.  
  274. (defadvice align-regexp (around smart-tabs activate)
  275.   (let ((indent-tabs-mode nil)) ad-do-it))
  276.  
  277. (defadvice indent-relative (around smart-tabs activate)
  278.   (let ((indent-tabs-mode nil)) ad-do-it))
  279.  
  280. (defadvice indent-according-to-mode (around smart-tabs activate)
  281.   (let ((indent-tabs-mode indent-tabs-mode))
  282.     (if (memq indent-line-function
  283.               '(indent-relative
  284.                 indent-relative-maybe))
  285.         (setq indent-tabs-mode nil))
  286.     ad-do-it))
  287.  
  288. (defmacro smart-tabs-advice (function offset)
  289.   `(progn
  290.      (defvaralias ',offset 'tab-width)
  291.      (defadvice ,function (around smart-tabs activate)
  292.        (cond
  293.         (indent-tabs-mode
  294.          (save-excursion
  295.            (beginning-of-line)
  296.            (while (looking-at "\t*\\( +\\)\t+")
  297.              (replace-match "" nil nil nil 1)))
  298.          (setq tab-width tab-width)
  299.          (let ((tab-width fill-column)
  300.                (,offset fill-column)
  301.                (wstart (window-start)))
  302.            (unwind-protect
  303.                (progn ad-do-it)
  304.              (set-window-start (selected-window) wstart))))
  305.         (t
  306.          ad-do-it)))))
  307.  
  308. (smart-tabs-advice c-indent-line c-basic-offset)
  309. (smart-tabs-advice c-indent-region c-basic-offset)
  310.  
  311. ;; (smart-tabs-advice python-indent-line python-basic-offset)
  312. ;; (smart-tabs-advice python-indent-region python-basic-offset)
  313.  
  314. (defun increase-font-size ()
  315.   (interactive)
  316.   (set-face-attribute 'default
  317.                       nil
  318.                       :height
  319.                       (ceiling (* 1.10
  320.                                   (face-attribute 'default :height)))))
  321. (defun decrease-font-size ()
  322.   (interactive)
  323.   (set-face-attribute 'default
  324.                       nil
  325.                       :height
  326.                       (floor (* 0.9
  327.                                   (face-attribute 'default :height)))))
  328.  
  329. ;
  330. ;;
  331.  
  332.  
  333. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  334. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  335.  
  336.  
  337. (defun enlarge-vert ()
  338.   (interactive)
  339.   (enlarge-window 2))
  340.  
  341. (defun shrink-vert ()
  342.   (interactive)
  343.   (enlarge-window -2))
  344.  
  345. (defun enlarge-horiz ()
  346.   (interactive)
  347.   (enlarge-window-horizontally 2))
  348.  
  349. (defun shrink-horiz ()
  350.   (interactive)
  351.   (enlarge-window-horizontally -2))
  352.  
  353. (defun toggle-line-comment ()
  354.   (interactive)
  355.   (comment-or-uncomment-region (line-beginning-position) (line-end-position)))
  356.  
  357. (defun toggle-comment ()
  358.   (interactive)
  359.   (let (beg end)
  360.     (if (region-active-p)
  361.         (setq beg (region-beginning) end (region-end))
  362.       (setq beg (line-beginning-position) end (line-end-position)))
  363.     (comment-or-uncomment-region beg end)
  364.     (next-line)))
  365.  
  366.  
  367. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  368. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  369.  
  370.  
  371. (define-key evil-insert-state-map (kbd "M-SPC") 'evil-normal-state)
  372. (define-key evil-normal-state-map (kbd "M-SPC") 'evil-normal-state) ; так нужно
  373. (define-key evil-visual-state-map (kbd "M-SPC") 'evil-normal-state)
  374.  
  375. (define-key evil-normal-state-map (kbd "M-o") 'ido-switch-buffer)
  376.  
  377. (define-key evil-normal-state-map (kbd "M-0") 'delete-window)
  378. (define-key evil-normal-state-map (kbd "M-1") 'delete-other-windows)
  379. (define-key evil-normal-state-map (kbd "M-2") 'split-window-below)
  380. (define-key evil-normal-state-map (kbd "M-3") 'split-window-right)
  381. (define-key evil-normal-state-map (kbd "M-q") 'other-window)
  382.  
  383. (define-key evil-normal-state-map (kbd "M-h") 'windmove-left)
  384. (define-key evil-normal-state-map (kbd "M-j") 'windmove-down)
  385. (define-key evil-normal-state-map (kbd "M-k") 'windmove-up)
  386. (define-key evil-normal-state-map (kbd "M-l") 'windmove-right)
  387.  
  388. (define-key evil-normal-state-map (kbd "C-(") 'enlarge-vert)
  389. (define-key evil-normal-state-map (kbd "C-)") 'shrink-vert)
  390.  
  391. (define-key evil-normal-state-map (kbd "C-9") 'enlarge-horiz)
  392. (define-key evil-normal-state-map (kbd "C-0") 'shrink-horiz)
  393.  
  394. (define-key evil-normal-state-map (kbd "C-?") 'toggle-comment)
  395. (define-key evil-insert-state-map (kbd "C-?") 'toggle-comment)
  396.  
  397. (define-key evil-normal-state-map (kbd "C-/") 'toggle-line-comment)
  398. (define-key evil-insert-state-map (kbd "C-/") 'toggle-line-comment)
  399.  
  400. (define-key evil-normal-state-map (kbd "M-f") 'projectile-find-file)
  401.  
  402. ;; (define-key evil-normal-state-map (kbd "C-c SPC") 'ace-jump-mode)
  403. ;; (define-key evil-insert-state-map (kbd "C-c SPC") 'ace-jump-mode)
  404. (define-key evil-normal-state-map (kbd "M-d") 'ace-jump-mode)
  405. (define-key evil-insert-state-map (kbd "M-d") 'ace-jump-mode)
  406.  
  407. (define-key evil-normal-state-map (kbd "C-f") 'align-current)
  408. (define-key evil-insert-state-map (kbd "C-f") 'align-current)
  409.  
  410. ;; (define-key evil-normal-state-map (kbd "M-h") 'org-metaleft)
  411. ;; (define-key evil-normal-state-map (kbd "M-l") 'org-metaright)
  412.  
  413. (global-set-key (kbd "C-+") 'increase-font-size)
  414. (global-set-key (kbd "C--") 'decrease-font-size)
  415.  
  416.  
  417. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  418. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  419.  
  420.  
  421.  
  422. (custom-set-variables
  423.  '(ansi-color-faces-vector
  424.    [default default default italic underline success warning error])
  425.  '(coffee-indent-tabs-mode t)
  426.  '(coffee-tab-width 4)
  427.  '(custom-enabled-themes (quote (wombat)))
  428.  '(inhibit-startup-screen t)
  429.  '(lua-indent-level 4)
  430.  '(org-default-notes-file "~/.notes")
  431.  '(org-directory "~/.org"))
  432.  
  433. (color-theme-almost-monokai)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement