2016-09-29 08:50:50 +00:00
|
|
|
|
;; Initialize the package system
|
2016-08-18 20:01:20 +00:00
|
|
|
|
(package-initialize)
|
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; Add path to my custom lisp functions
|
2016-09-15 14:08:54 +00:00
|
|
|
|
(add-to-list 'load-path (concat
|
|
|
|
|
user-emacs-directory
|
|
|
|
|
(convert-standard-filename "lisp/")))
|
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; Custom stuff
|
2014-10-05 12:57:41 +00:00
|
|
|
|
(custom-set-variables
|
|
|
|
|
;; custom-set-variables was added by Custom.
|
|
|
|
|
;; If you edit it by hand, you could mess it up, so be careful.
|
|
|
|
|
;; Your init file should contain only one such instance.
|
|
|
|
|
;; If there is more than one, they won't work right.
|
|
|
|
|
'(background-color "#7f7f7f")
|
|
|
|
|
'(background-mode dark)
|
|
|
|
|
'(blink-cursor-mode t)
|
|
|
|
|
'(column-number-mode t)
|
|
|
|
|
'(cursor-color "#5c5cff")
|
2015-05-04 09:45:55 +00:00
|
|
|
|
'(cursor-type (quote bar))
|
2014-10-05 12:57:41 +00:00
|
|
|
|
'(custom-enabled-themes (quote (tango-dark)))
|
2015-05-04 09:45:55 +00:00
|
|
|
|
'(custom-safe-themes
|
|
|
|
|
(quote
|
2016-10-10 12:55:07 +00:00
|
|
|
|
("84d2f9eeb3f82d619ca4bfffe5f157282f4779732f48a5ac1484d94d5ff5b279"
|
|
|
|
|
"c74e83f8aa4c78a121b52146eadb792c9facc5b1f02c917e3dbb454fca931223"
|
|
|
|
|
"3c83b3676d796422704082049fc38b6966bcad960f896669dfc21a7a37a748fa"
|
|
|
|
|
"a27c00821ccfd5a78b01e4f35dc056706dd9ede09a8b90c6955ae6a390eb1c1e"
|
|
|
|
|
"1e7e097ec8cb1f8c3a912d7e1e0331caeed49fef6cff220be63bd2a6ba4cc365"
|
|
|
|
|
"fc5fcb6f1f1c1bc01305694c59a1a861b008c534cae8d0e48e4d5e81ad718bc6"
|
|
|
|
|
default)))
|
2014-10-05 12:57:41 +00:00
|
|
|
|
'(ediff-merge-split-window-function (quote split-window-horizontally))
|
|
|
|
|
'(ediff-split-window-function (quote split-window-vertically))
|
2016-10-05 11:57:23 +00:00
|
|
|
|
'(ediff-window-setup-function (quote ediff-setup-windows-plain))
|
2016-10-10 12:49:02 +00:00
|
|
|
|
'(eww-search-prefix "https://www.google.com/?q=")
|
2014-10-05 12:57:41 +00:00
|
|
|
|
'(foreground-color "#5c5cff")
|
2014-10-05 20:56:23 +00:00
|
|
|
|
'(global-hl-line-mode t)
|
2016-10-14 10:20:48 +00:00
|
|
|
|
'(helm-github-stars-username "gergelypolonkai")
|
2016-10-11 17:45:18 +00:00
|
|
|
|
'(indent-tabs-mode nil)
|
2016-10-05 07:44:40 +00:00
|
|
|
|
'(indicate-empty-lines t)
|
2014-10-05 12:57:41 +00:00
|
|
|
|
'(inhibit-startup-screen t)
|
2016-10-05 07:44:40 +00:00
|
|
|
|
'(initial-scratch-message nil)
|
2016-04-21 22:34:54 +00:00
|
|
|
|
'(jekyll-directory "~/Projektek/jekyll/gergely.polonkai.eu")
|
2014-10-05 12:57:41 +00:00
|
|
|
|
'(nxml-attribute-indent 4)
|
|
|
|
|
'(nxml-child-indent 2)
|
|
|
|
|
'(nxml-outline-child-indent 4)
|
2015-05-04 09:45:55 +00:00
|
|
|
|
'(package-archives
|
|
|
|
|
(quote
|
|
|
|
|
(("gnu" . "http://elpa.gnu.org/packages/")
|
2016-02-24 17:52:06 +00:00
|
|
|
|
("melpa" . "https://melpa.org/packages/")
|
2016-10-14 10:33:22 +00:00
|
|
|
|
("marmalade" . "http://marmalade-repo.org/packages/"))))
|
2016-08-18 20:01:20 +00:00
|
|
|
|
'(package-selected-packages
|
|
|
|
|
(quote
|
2016-10-13 09:01:25 +00:00
|
|
|
|
(ace-window
|
|
|
|
|
ag
|
|
|
|
|
avy
|
2016-10-10 12:55:07 +00:00
|
|
|
|
coffee-mode
|
|
|
|
|
command-log-mode
|
2016-10-14 11:38:29 +00:00
|
|
|
|
company
|
2016-10-10 12:55:07 +00:00
|
|
|
|
company-c-headers
|
|
|
|
|
company-quickhelp
|
|
|
|
|
company-shell
|
2016-10-14 10:17:25 +00:00
|
|
|
|
diminish
|
2016-10-10 12:55:07 +00:00
|
|
|
|
drag-stuff
|
|
|
|
|
electric-case
|
|
|
|
|
electric-spacing
|
|
|
|
|
emamux
|
|
|
|
|
flycheck
|
|
|
|
|
flycheck-pkg-config
|
|
|
|
|
focus
|
|
|
|
|
ggtags
|
|
|
|
|
git-gutter
|
|
|
|
|
git-messenger
|
|
|
|
|
git-timemachine
|
|
|
|
|
gitconfig-mode
|
|
|
|
|
gitignore-mode
|
|
|
|
|
gnugo
|
|
|
|
|
gobgen
|
|
|
|
|
google
|
|
|
|
|
goto-last-change
|
2016-10-14 10:17:57 +00:00
|
|
|
|
helm
|
2016-10-10 12:55:07 +00:00
|
|
|
|
helm-ag
|
|
|
|
|
helm-chrome
|
|
|
|
|
helm-company
|
|
|
|
|
helm-flycheck
|
|
|
|
|
helm-flyspell
|
2016-10-14 10:17:57 +00:00
|
|
|
|
helm-github-stars
|
2016-10-10 12:55:07 +00:00
|
|
|
|
helm-google
|
|
|
|
|
helm-gtags
|
|
|
|
|
helm-projectile
|
|
|
|
|
helm-spotify
|
|
|
|
|
helm-swoop
|
|
|
|
|
helm-unicode
|
|
|
|
|
hyde
|
|
|
|
|
id-manager
|
|
|
|
|
identica-mode
|
|
|
|
|
jinja2-mode
|
|
|
|
|
js2-mode
|
|
|
|
|
json-mode
|
2016-10-14 11:38:29 +00:00
|
|
|
|
magit
|
2016-10-10 12:55:07 +00:00
|
|
|
|
magit-gerrit
|
|
|
|
|
magithub
|
|
|
|
|
mark
|
|
|
|
|
markdown-mode
|
|
|
|
|
mc-extras
|
|
|
|
|
multiple-cursors
|
|
|
|
|
ng2-mode
|
|
|
|
|
nyan-mode
|
|
|
|
|
nyan-prompt
|
2016-10-14 11:38:29 +00:00
|
|
|
|
org
|
2016-10-10 12:55:07 +00:00
|
|
|
|
org-bullets
|
|
|
|
|
org-projectile
|
|
|
|
|
origami
|
2016-10-14 11:38:29 +00:00
|
|
|
|
projectile
|
2016-10-10 12:55:07 +00:00
|
|
|
|
sass-mode
|
2016-10-14 11:38:29 +00:00
|
|
|
|
smart-mode-line
|
2016-10-10 12:55:07 +00:00
|
|
|
|
smart-mode-line-powerline-theme
|
|
|
|
|
smartparens
|
|
|
|
|
spinner
|
|
|
|
|
sx
|
|
|
|
|
typescript-mode
|
|
|
|
|
use-package
|
|
|
|
|
vala-mode
|
|
|
|
|
wakatime-mode
|
|
|
|
|
xlicense
|
|
|
|
|
yaml-mode
|
|
|
|
|
zone-nyan)))
|
2016-09-16 14:36:22 +00:00
|
|
|
|
'(savehist-mode t)
|
2015-05-04 09:45:55 +00:00
|
|
|
|
'(sgml-basic-offset 4)
|
2014-10-06 08:26:22 +00:00
|
|
|
|
'(show-trailing-whitespace t)
|
2016-10-10 18:40:40 +00:00
|
|
|
|
'(tab-width 4))
|
2014-10-05 12:57:41 +00:00
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; Custom face settings
|
2014-10-05 14:27:20 +00:00
|
|
|
|
(custom-set-faces
|
|
|
|
|
;; custom-set-faces was added by Custom.
|
|
|
|
|
;; If you edit it by hand, you could mess it up, so be careful.
|
|
|
|
|
;; Your init file should contain only one such instance.
|
|
|
|
|
;; If there is more than one, they won't work right.
|
2014-10-05 20:56:23 +00:00
|
|
|
|
'(hl-line ((t (:inherit nil :background "gray25"))))
|
2014-10-06 08:26:22 +00:00
|
|
|
|
'(trailing-whitespace ((t (:inherit nil :background "red1"))))
|
|
|
|
|
'(whitespace-line ((t (:inherit nil :background "orange")))))
|
2016-09-29 08:50:50 +00:00
|
|
|
|
(set-face-attribute 'default t :font "Hack-10")
|
|
|
|
|
(set-frame-font "Hack-10" nil t)
|
2014-10-05 12:57:41 +00:00
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; Some personal stuff
|
|
|
|
|
(setq user-mail-address "gergely@polonkai.eu")
|
2014-10-05 14:27:20 +00:00
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; Load some custom libraries
|
|
|
|
|
(require 'thingatpt)
|
|
|
|
|
(require 'xlicense)
|
|
|
|
|
(require 'linum)
|
2016-10-10 13:30:24 +00:00
|
|
|
|
|
2016-10-10 18:31:01 +00:00
|
|
|
|
(use-package helm
|
|
|
|
|
:init
|
|
|
|
|
(require 'helm-config)
|
|
|
|
|
(setq helm-M-x-fuzzy-match t
|
|
|
|
|
helm-buffers-fuzzy-matching t
|
|
|
|
|
helm-recentf-fuzzy-match t)
|
|
|
|
|
:config
|
|
|
|
|
(helm-mode t)
|
|
|
|
|
:bind
|
|
|
|
|
(("M-x" . helm-M-x)
|
|
|
|
|
("C-x C-f" . helm-find-files)
|
|
|
|
|
("C-x b" . helm-mini)))
|
|
|
|
|
|
2016-10-10 18:32:55 +00:00
|
|
|
|
(use-package helm-swoop
|
|
|
|
|
:bind
|
|
|
|
|
(("M-i" . helm-swoop)))
|
|
|
|
|
|
2016-10-11 17:44:37 +00:00
|
|
|
|
(use-package ggtags
|
|
|
|
|
:config
|
|
|
|
|
(add-hook 'c-mode-hook
|
|
|
|
|
(lambda ()
|
|
|
|
|
(ggtags-mode t)))
|
|
|
|
|
(add-hook 'c-mode-common-hook
|
|
|
|
|
(lambda ()
|
|
|
|
|
(when (derived-mode-p 'c-mode 'c++-mode 'java-mode)
|
|
|
|
|
(ggtags-mode t)))))
|
2016-10-10 18:31:01 +00:00
|
|
|
|
|
2016-10-10 18:34:00 +00:00
|
|
|
|
(use-package helm-gtags
|
|
|
|
|
:init
|
|
|
|
|
(setq-default helm-gtags-auto-update t
|
|
|
|
|
helm-gtags-ignore-case t
|
|
|
|
|
helm-gtags-path-style 'relative)
|
|
|
|
|
:config
|
|
|
|
|
(add-hook 'c-mode-hook
|
|
|
|
|
(lambda ()
|
|
|
|
|
(helm-gtags-mode t)))
|
|
|
|
|
:bind
|
|
|
|
|
(:map helm-gtags-mode-map
|
|
|
|
|
("M-t" . helm-gtags-find-tag)
|
|
|
|
|
("M-r" . helm-gtags-find-rtag)
|
|
|
|
|
("M-s" . helm-gtags-find-symbol)
|
|
|
|
|
("M-g M-p" . helm-gtags-parse-file)
|
|
|
|
|
("C-c <" . helm-gtags-previous-history)
|
|
|
|
|
("C-c >" . helm-gtags-next-history)
|
|
|
|
|
("M-," . helm-gtags-pop-stack)))
|
|
|
|
|
|
2016-10-10 13:30:24 +00:00
|
|
|
|
;; Whitespace mode
|
|
|
|
|
;;
|
|
|
|
|
;; It is turned on by default, and can be toggled with F10
|
|
|
|
|
(use-package whitespace
|
2016-10-13 09:03:31 +00:00
|
|
|
|
:ensure t
|
|
|
|
|
:demand
|
2016-10-10 13:30:24 +00:00
|
|
|
|
:config
|
2016-10-13 09:03:31 +00:00
|
|
|
|
(global-whitespace-mode 1)
|
2016-10-10 13:30:24 +00:00
|
|
|
|
:bind
|
2016-10-13 09:03:31 +00:00
|
|
|
|
(([f10] . whitespace-mode)
|
|
|
|
|
([(shift f10)] . global-whitespace-mode)))
|
2016-10-10 13:32:28 +00:00
|
|
|
|
|
|
|
|
|
;; Multiple cursors
|
|
|
|
|
(use-package multiple-cursors
|
|
|
|
|
:config
|
|
|
|
|
(add-hook 'multiple-cursors-mode-enabled-hook
|
|
|
|
|
(lambda ()
|
|
|
|
|
(setq blink-matching-paren nil)))
|
|
|
|
|
(add-hook 'multiple-cursors-mode-disabled-hook
|
|
|
|
|
(lambda ()
|
|
|
|
|
(setq blink-matching-paren t)))
|
|
|
|
|
:bind (("C-S-c C-S-c" . mc/edit-lines)
|
|
|
|
|
("C->" . mc/mark-next-like-this)
|
|
|
|
|
("C-<" . mc/mark-previous-like-this)
|
|
|
|
|
("C-c C-<" . mc/mark-all-like-this)))
|
2016-10-10 13:33:12 +00:00
|
|
|
|
|
2016-10-10 18:36:10 +00:00
|
|
|
|
(use-package eshell
|
|
|
|
|
:config
|
|
|
|
|
(add-hook 'eshell-mode-hook
|
|
|
|
|
(lambda () (local-set-key (kbd "C-d") #'eshell-C-d))))
|
|
|
|
|
|
2016-10-10 13:33:12 +00:00
|
|
|
|
;; Save place
|
|
|
|
|
(use-package saveplace
|
|
|
|
|
:config
|
|
|
|
|
(setq-default save-place t)
|
|
|
|
|
(setq save-place-file (expand-file-name ".places" user-emacs-directory)))
|
2016-10-10 18:37:51 +00:00
|
|
|
|
|
|
|
|
|
;; Nyanyanyanyanya
|
2016-10-10 18:37:24 +00:00
|
|
|
|
(use-package nyan-mode
|
2016-10-11 17:41:01 +00:00
|
|
|
|
:init
|
|
|
|
|
(setq-default nyan-animate-nyancat t
|
|
|
|
|
nyan-wavy-trail t)
|
2016-10-10 18:37:24 +00:00
|
|
|
|
:config
|
|
|
|
|
(nyan-mode t))
|
|
|
|
|
|
2016-10-10 18:37:51 +00:00
|
|
|
|
(use-package nyan-prompt
|
|
|
|
|
:config
|
|
|
|
|
(add-hook 'eshell-load-hook 'nyan-prompt-enable))
|
|
|
|
|
|
2016-10-10 13:36:08 +00:00
|
|
|
|
;; Zone!
|
2016-10-11 17:42:57 +00:00
|
|
|
|
(use-package zone-nyan
|
|
|
|
|
:init
|
|
|
|
|
(setq-default zone-nyan-hide-progress t))
|
|
|
|
|
|
2016-10-10 13:36:08 +00:00
|
|
|
|
(use-package zone
|
|
|
|
|
:config
|
|
|
|
|
(setq zone-programs [zone-nyan])
|
|
|
|
|
(zone-when-idle 60))
|
|
|
|
|
|
2016-10-10 18:38:49 +00:00
|
|
|
|
;; Magit and friends
|
|
|
|
|
(use-package magit
|
|
|
|
|
:init
|
|
|
|
|
(setq magit-auto-revert-mode nil)
|
|
|
|
|
(setq magit-last-seen-setup-instructions "1.4.0")
|
|
|
|
|
:bind
|
|
|
|
|
(("C-x g" . magit-status)))
|
|
|
|
|
|
2016-10-10 18:31:48 +00:00
|
|
|
|
(use-package magithub)
|
|
|
|
|
|
2016-10-10 18:34:58 +00:00
|
|
|
|
(use-package magit-gerrit
|
|
|
|
|
:init
|
|
|
|
|
(setq-default magit-gerrit-remote "gerrit"))
|
|
|
|
|
|
2016-10-10 13:43:24 +00:00
|
|
|
|
(use-package origami
|
|
|
|
|
:ensure t
|
|
|
|
|
:demand
|
|
|
|
|
:config
|
|
|
|
|
(define-prefix-command 'origami-mode-map)
|
|
|
|
|
(global-set-key (kbd "C-x C-z") 'origami-mode-map)
|
|
|
|
|
(global-origami-mode)
|
|
|
|
|
:bind
|
|
|
|
|
(:map origami-mode-map
|
|
|
|
|
("o" . origami-open-node)
|
|
|
|
|
("O" . origami-open-node-recursively)
|
|
|
|
|
("c" . origami-close-node)
|
|
|
|
|
("C" . origami-close-node-recursively)
|
|
|
|
|
("a" . origami-toggle-node)
|
|
|
|
|
("A" . origami-recursively-toggle-node)
|
|
|
|
|
("R" . origami-open-all-nodes)
|
|
|
|
|
("M" . origami-close-all-nodes)
|
|
|
|
|
("v" . origami-show-only-node)
|
|
|
|
|
("k" . origami-previous-fold)
|
|
|
|
|
("j" . origami-forward-fold)
|
|
|
|
|
("x" . origami-reset)))
|
|
|
|
|
|
2016-10-14 13:31:09 +00:00
|
|
|
|
(use-package helm-ag
|
2016-10-10 18:39:31 +00:00
|
|
|
|
:bind
|
2016-10-14 13:31:09 +00:00
|
|
|
|
(("C-x M-a" . helm-ag)))
|
2016-10-10 18:39:31 +00:00
|
|
|
|
|
2016-10-10 12:47:04 +00:00
|
|
|
|
(use-package smartparens-config
|
2016-10-10 18:40:03 +00:00
|
|
|
|
:ensure smartparens
|
2016-10-14 09:11:56 +00:00
|
|
|
|
:demand
|
2016-10-10 18:40:03 +00:00
|
|
|
|
:config
|
|
|
|
|
(show-smartparens-global-mode t)
|
|
|
|
|
(add-hook 'prog-mode-hook
|
|
|
|
|
'turn-on-smartparens-strict-mode)
|
|
|
|
|
(add-hook 'markdown-mode-hook
|
2016-10-11 15:56:04 +00:00
|
|
|
|
'turn-on-smartparens-strict-mode)
|
|
|
|
|
:bind
|
|
|
|
|
(([f9] . smartparens-strict-mode)))
|
2014-10-05 12:57:41 +00:00
|
|
|
|
|
2016-10-10 18:41:49 +00:00
|
|
|
|
(use-package smart-mode-line
|
2016-10-11 17:41:35 +00:00
|
|
|
|
:init
|
|
|
|
|
(setq-default sml/theme 'powerline)
|
2016-10-10 18:41:49 +00:00
|
|
|
|
:config
|
|
|
|
|
(sml/setup))
|
|
|
|
|
|
2016-10-10 13:47:55 +00:00
|
|
|
|
(use-package company
|
2016-10-12 08:39:04 +00:00
|
|
|
|
:config
|
|
|
|
|
(global-company-mode))
|
|
|
|
|
|
|
|
|
|
(use-package helm-company
|
|
|
|
|
:after
|
|
|
|
|
company
|
|
|
|
|
helm
|
2016-10-10 13:47:55 +00:00
|
|
|
|
:bind
|
|
|
|
|
(:map company-mode-map
|
2016-10-14 09:12:17 +00:00
|
|
|
|
("C-S-j" . helm-company)
|
2016-10-10 13:47:55 +00:00
|
|
|
|
:map company-active-map
|
2016-10-14 09:12:17 +00:00
|
|
|
|
("C-S-j" . helm-company)))
|
2016-10-10 13:47:55 +00:00
|
|
|
|
|
2016-10-10 18:41:13 +00:00
|
|
|
|
(use-package projectile
|
|
|
|
|
:config
|
|
|
|
|
(projectile-global-mode t))
|
|
|
|
|
|
2016-10-10 18:42:39 +00:00
|
|
|
|
(use-package helm-projectile
|
|
|
|
|
:init
|
|
|
|
|
(setq projectile-completion-system 'helm)
|
|
|
|
|
:config
|
|
|
|
|
(helm-projectile-on))
|
|
|
|
|
|
2016-10-10 18:42:10 +00:00
|
|
|
|
(use-package drag-stuff
|
|
|
|
|
:config
|
|
|
|
|
(drag-stuff-global-mode t))
|
|
|
|
|
|
2016-10-11 17:43:56 +00:00
|
|
|
|
;; Git gutter
|
|
|
|
|
(use-package git-gutter
|
|
|
|
|
:config
|
|
|
|
|
(global-git-gutter-mode t))
|
|
|
|
|
|
2016-10-12 08:36:56 +00:00
|
|
|
|
;; Org mode
|
|
|
|
|
(use-package org
|
|
|
|
|
:ensure t
|
|
|
|
|
:init
|
|
|
|
|
(require 'xdg-paths)
|
|
|
|
|
(setq-default org-crypt-key "B0740C4C"
|
|
|
|
|
org-default-notes-file (concat user-documents-directory
|
|
|
|
|
(convert-standard-filename
|
|
|
|
|
"/orgmode/notes.org"))
|
|
|
|
|
org-directory (concat user-documents-directory
|
|
|
|
|
(convert-standard-filename "/orgmode/"))
|
|
|
|
|
org-agenda-files (concat user-documents-directory
|
|
|
|
|
(convert-standard-filename
|
|
|
|
|
"/orgmode/agenda_files"))
|
|
|
|
|
org-ellipsis "…#"
|
|
|
|
|
org-startup-folded 'content
|
|
|
|
|
org-mobile-directory (concat user-documents-directory
|
|
|
|
|
(convert-standard-filename
|
|
|
|
|
"/orgmode/mobile/"))
|
|
|
|
|
org-mobile-inbox-for-pull (concat
|
|
|
|
|
user-documents-directory
|
|
|
|
|
(convert-standard-filename
|
|
|
|
|
"/orgmode/from-mobile.org"))))
|
|
|
|
|
|
2016-10-12 08:39:25 +00:00
|
|
|
|
(use-package org-bullets
|
|
|
|
|
:init
|
|
|
|
|
(add-hook 'org-mode-hook
|
|
|
|
|
(lambda ()
|
|
|
|
|
(if (display-graphic-p) org-bullets-mode))))
|
|
|
|
|
|
2016-10-10 18:40:40 +00:00
|
|
|
|
;; Waka-waka
|
|
|
|
|
(use-package wakatime-mode
|
|
|
|
|
:init
|
|
|
|
|
(setq-default wakatime-cli-path "/usr/local/bin/wakatime")
|
|
|
|
|
:config
|
|
|
|
|
(global-wakatime-mode t))
|
|
|
|
|
|
2016-10-13 09:01:25 +00:00
|
|
|
|
(use-package ace-window
|
|
|
|
|
:bind
|
2016-10-13 15:22:38 +00:00
|
|
|
|
(("M-P" . ace-window)))
|
2016-10-13 09:01:25 +00:00
|
|
|
|
|
2016-10-14 09:12:52 +00:00
|
|
|
|
(use-package avy
|
|
|
|
|
:demand
|
|
|
|
|
:config
|
|
|
|
|
(avy-setup-default)
|
|
|
|
|
:bind
|
|
|
|
|
(("C-:" . avy-goto-char)
|
|
|
|
|
("C-'" . avy-goto-char-2)
|
|
|
|
|
("M-g f" . avy-goto-line)
|
|
|
|
|
("M-g w" . avy-goto-word-1)
|
|
|
|
|
("M-g e" . avy-goto-word-0)))
|
|
|
|
|
|
2016-10-14 10:17:25 +00:00
|
|
|
|
(use-package diminish
|
|
|
|
|
:defer t)
|
|
|
|
|
|
2016-10-14 10:30:22 +00:00
|
|
|
|
(use-package focus
|
|
|
|
|
:bind
|
|
|
|
|
(([f8] . focus-mode)))
|
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; Load my own functions
|
2016-09-15 14:08:54 +00:00
|
|
|
|
(load "gnu-c-header.el")
|
|
|
|
|
(load "toggle-window-split.el")
|
|
|
|
|
(load "round-number-to-decimals.el")
|
|
|
|
|
(load "transpose-windows.el")
|
|
|
|
|
(load "zim.el")
|
|
|
|
|
(load "clearcase.el")
|
|
|
|
|
(load "jekyll.el")
|
2016-09-23 12:58:35 +00:00
|
|
|
|
(load "enclose-string.el")
|
2016-09-29 08:50:50 +00:00
|
|
|
|
(load "buf-manipulation.el")
|
2014-10-05 12:57:41 +00:00
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; Define aliases
|
|
|
|
|
(defalias 'yes-or-no-p 'y-or-n-p)
|
|
|
|
|
|
|
|
|
|
;; `c-mode' settings
|
|
|
|
|
(add-hook 'c-mode-hook
|
|
|
|
|
(lambda ()
|
|
|
|
|
(which-func-mode)
|
|
|
|
|
(flyspell-prog-mode)))
|
|
|
|
|
(add-hook 'c-mode-common-hook
|
|
|
|
|
(lambda ()
|
|
|
|
|
(local-set-key (kbd "C-c o") 'ff-find-other-file)
|
|
|
|
|
(c-set-style "PERSONAL")
|
|
|
|
|
(setq tab-width 4
|
|
|
|
|
indent-tabs-mode nil)
|
2016-10-11 17:44:37 +00:00
|
|
|
|
(c-toggle-auto-newline 1)))
|
2016-09-29 08:50:50 +00:00
|
|
|
|
(add-hook 'c-initialization-hook
|
|
|
|
|
(lambda ()
|
|
|
|
|
(define-key c-mode-base-map (kbd "C-m") 'c-context-line-break)))
|
|
|
|
|
(defvaralias 'c-basic-offset 'tab-width)
|
|
|
|
|
(defvaralias 'cperl-indent-level 'tab-width)
|
2014-10-07 20:17:48 +00:00
|
|
|
|
(defconst my-c-style
|
|
|
|
|
'((c-tab-always-indent . t)
|
|
|
|
|
(c-comment-only-line-offset . 4)
|
|
|
|
|
(c-hanging-braces-alist . ((substatement-open after)
|
|
|
|
|
(brace-list-open)))
|
|
|
|
|
(c-hanging-colons-alist . ((member-init-intro before)
|
|
|
|
|
(inher-intro)
|
|
|
|
|
(case-label after)
|
|
|
|
|
(label after)
|
|
|
|
|
(access-label after)))
|
|
|
|
|
(c-cleanup-list . (scope-operator
|
|
|
|
|
empty-defun-braces
|
|
|
|
|
defun-close-semi))
|
|
|
|
|
(c-offsets-alist . ((arglist-close . +)
|
|
|
|
|
(arglist-intro . ++)
|
|
|
|
|
(substatement-open . 0)
|
|
|
|
|
(case-label . 4)
|
|
|
|
|
(block-open . 0)
|
2014-11-16 15:42:08 +00:00
|
|
|
|
(knr-argdecl-intro . -)
|
|
|
|
|
(comment-intro . 0)))
|
2014-10-07 20:17:48 +00:00
|
|
|
|
(c-echo-syntactic-information-p . t))
|
|
|
|
|
"My C Programming Style")
|
|
|
|
|
(c-add-style "PERSONAL" my-c-style)
|
2016-09-29 08:50:50 +00:00
|
|
|
|
(setq c-offset-alist '((member-init-intro . ++)))
|
2016-02-16 08:12:19 +00:00
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; Custom key bindings
|
|
|
|
|
(global-set-key (kbd "C-x _") 'maximize-window)
|
|
|
|
|
;; Some terminals don’t interpret Alt-Up/Down as M-<up/down>.
|
2016-02-16 08:12:19 +00:00
|
|
|
|
(global-set-key (kbd "C-c C-y") 'duplicate-line)
|
2016-09-29 08:50:50 +00:00
|
|
|
|
(global-set-key (kbd "M-(") 'æ-enclose-region)
|
|
|
|
|
(global-set-key (kbd "C-x w") 'webjump)
|
|
|
|
|
(global-set-key (kbd "<C-return>") 'open-line-below)
|
|
|
|
|
(global-set-key (kbd "<C-S-return>") 'open-line-above)
|
|
|
|
|
(global-set-key (kbd "C-x C-r") 'rename-current-buffer-file)
|
|
|
|
|
(global-set-key (kbd "C-x C-d") 'delete-current-buffer-file)
|
|
|
|
|
(global-set-key (kbd "C-x ~") 'toggle-char-case)
|
2016-09-15 15:49:29 +00:00
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; Set up some global minor modes
|
2016-09-16 14:36:22 +00:00
|
|
|
|
(show-paren-mode t)
|
2016-09-29 08:50:50 +00:00
|
|
|
|
(global-prettify-symbols-mode t)
|
|
|
|
|
|
|
|
|
|
;; Enable some functions
|
|
|
|
|
(put 'downcase-region 'disabled nil)
|
|
|
|
|
(put 'upcase-region 'disabled nil)
|
|
|
|
|
|
|
|
|
|
;; text-mode settings
|
2016-09-26 08:15:12 +00:00
|
|
|
|
(add-hook 'text-mode-hook (lambda () (visual-line-mode t)))
|
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; UI hacks: turn off scroll bar (that’s why Nyan-cat is here) and the
|
|
|
|
|
;; toolbar (I don’t really use it)
|
|
|
|
|
(if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
|
|
|
|
|
(if (fboundp 'tool-bar-mode) (tool-bar-mode -1))
|
2016-09-23 13:21:53 +00:00
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; Add some symbols to be prettified
|
|
|
|
|
(setq prettify-symbols-alist
|
|
|
|
|
'(("lambda" . 955) ; λ
|
|
|
|
|
("->" . 8594) ; →
|
|
|
|
|
("=>" . 8658) ; ⇒
|
|
|
|
|
("map" . 8614))) ; ↦
|
|
|
|
|
;; …and some pairs to complete
|
2016-09-23 13:21:53 +00:00
|
|
|
|
;; TODO: maybe add-to-list is a better way to do it
|
|
|
|
|
(setq insert-pair-alist
|
|
|
|
|
'(
|
|
|
|
|
(40 41) ; ()
|
|
|
|
|
(91 93) ; []
|
|
|
|
|
(123 125) ; {}
|
|
|
|
|
(60 62) ; <>
|
|
|
|
|
(34 34) ; ""
|
|
|
|
|
(39 39) ; ''
|
|
|
|
|
(96 39) ; `'
|
|
|
|
|
(8220 8221) ; “”
|
|
|
|
|
(8222 8221) ; „”
|
|
|
|
|
(8216 8217) ; ‘’
|
|
|
|
|
(8249 8250) ; ‹›
|
|
|
|
|
(8250 8249) ; ›‹
|
|
|
|
|
(171 187) ; «»
|
|
|
|
|
(187 171) ; »«
|
|
|
|
|
))
|
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; Stuff to do after initialization is done
|
2016-09-26 12:55:53 +00:00
|
|
|
|
|
2016-09-29 08:50:50 +00:00
|
|
|
|
;; TODO: Unordered stuff
|
|
|
|
|
(add-to-list 'auto-mode-alist '("\\.vala\\'" . vala-mode))
|
|
|
|
|
(add-to-list 'auto-mode-alist '("\\.erl\\'" . erlang-mode))
|
|
|
|
|
(add-to-list 'auto-mode-alist '("\\.yml\\'" . yaml-mode))
|
2016-09-26 13:32:34 +00:00
|
|
|
|
|
|
|
|
|
; Temporary show line numbers while in the goto minibuffer. Copied
|
|
|
|
|
; from http://whattheemacsd.com/key-bindings.el-01.html
|
|
|
|
|
(global-set-key [remap goto-line] 'goto-line-with-feedback)
|
|
|
|
|
|
|
|
|
|
; TODO git-gutter-mode and linum-mode don’t play together well. This
|
|
|
|
|
; is an attempt to make them nice to each other, but it seems futile.
|
|
|
|
|
(defun æ-restore-goto-modes (linum-state gitgutter-state)
|
|
|
|
|
(linum-mode -1)
|
|
|
|
|
(git-gutter-mode -1)
|
|
|
|
|
(linum-mode linum-state)
|
|
|
|
|
(git-gutter-mode gitgutter-state))
|
|
|
|
|
|
|
|
|
|
(defun goto-line-with-feedback ()
|
|
|
|
|
"Show line numbers temporarily, while prompting for the line
|
|
|
|
|
number input"
|
|
|
|
|
|
|
|
|
|
(interactive)
|
|
|
|
|
|
|
|
|
|
(let ((old-linum-mode linum-mode)
|
|
|
|
|
(old-gitgutter-mode git-gutter-mode))
|
|
|
|
|
(unwind-protect
|
|
|
|
|
(progn
|
|
|
|
|
; Stay safe with git-gutter turned off
|
|
|
|
|
(git-gutter-mode -1)
|
|
|
|
|
; Turn on linum, before asking for the line number
|
|
|
|
|
(linum-mode 1)
|
|
|
|
|
(goto-line (read-number "Goto line: "))
|
|
|
|
|
(æ-restore-goto-modes old-linum-mode old-gitgutter-mode))
|
|
|
|
|
(æ-restore-goto-modes old-linum-mode old-gitgutter-mode))))
|