ambevar-dotfiles/.emacs.d/plugins.el

174 lines
7.7 KiB
EmacsLisp

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; PLUGINS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;==============================================================================
;; Yasnippet
;;==============================================================================
;; Yasnippet is slow when loading snippets from source.
;; Generate a bundle instead: yas/compile-bundle
;; Besides you can convert the generated file to bytecode.
;; (add-to-list 'load-path "~/.emacs.d/plugins")
;; (require 'yasnippet-bundle)
;; Next follows a traditional, yet not-optimized configuration for Yasnippet.
;; (add-to-list 'load-path "/usr/share/emacs/site-lisp/yas")
(if (require 'yasnippet nil t)
(progn
(setq yas-snippet-dirs "~/.emacs.d/snippets" )
(if (fboundp 'yas/initialize)
;; Old yasnippet versions.
(progn
(yas/initialize)
(yas/load-directory yas-snippet-dirs))
;; New yasnippet versions.
(progn
(yas-global-mode 1)
(yas-load-directory yas-snippet-dirs)) ) ))
;;==============================================================================
;; Lua
;;==============================================================================
(setq auto-mode-alist (cons '("\.lua$" . lua-mode) auto-mode-alist))
(autoload 'lua-mode "lua-mode" "Lua editing mode." t)
;;==============================================================================
;; MediaWiki
;;==============================================================================
(if (require 'mediawiki nil t)
(progn
(setq mediawiki-site-alist
'(
("Wikipedia" "http://en.wikipedia.org/w/" "Ambrevar" "" "Main Page")
("Wikibooks" "http://en.wikibooks.org/w/" "Ambrevar" "" "LaTeX")
("ArchLinux" "https://wiki.archlinux.org/" "Ambrevar" "" "Mutt")
("WikEmacs" "https://wikemacs.org/wiki/" "Ambrevar" "" "Main Page")
))
;; Macros.
;; Use C-( stuff C-) to record a macro.
;; Use 'name-last-kbd-macro' to give it a name.
;; Use 'insert-kbd-macro' in your init file to insert the code.
;; You can assign a key: (local-set-key (kbd "C-c a") 'my-macro)
(fset 'ltx-template-source-to-ltx
"\C-@\C-s>\C-m\C-w\C-@\C-s</source\C-m\C-[Od\C-[[D\C-[[D\C-wltx\C-i\C-y\C-i\C-[d\C-d\C-s<source\C-m\C-[Od\C-[[D")
(fset 'ltx-template-source-to-ltxu
"\C-@\C-s>\C-w\C-?\C-m\C-w\C-d\C-@\C-s</source\C-m\C-[Od\C-[[D\C-[[D\C-[[D\C-wltxu\C-i\C-y\C-i\C-k\C-k\C-s<source\C-m\C-[Od\C-[[D")
(fset 'ltx-template-tt-to-ltx
"\C-s<tt\C-m\C-[Od\C-[[D\C-@\C-[Oc\C-[[C\C-w\C-@\C-s</tt\C-m\C-[Od\C-[[D\C-[[D\C-wltx\C-i\C-y\C-i\C-[d\C-d\C-s<tt\C-m\C-[Od\C-[[D")
(fset 'ltx-template-tt-to-env
"\C-s<tt\C-m\C-[Od\C-[[D\C-@\C-[Oc\C-[[C\C-w\C-@\C-s</tt\C-m\C-[Od\C-[[D\C-[[D\C-wltxenv\C-i\C-y\C-i\C-[d\C-d\C-s<tt\C-m\C-[Od\C-[[D")
(fset 'ltx-template-tt-to-pkg
"\C-s<tt\C-m\C-[Od\C-[[D\C-@\C-[Oc\C-[[C\C-w\C-@\C-s</tt\C-m\C-[Od\C-[[D\C-[[D\C-wltxpkg\C-i\C-y\C-i\C-[d\C-d\C-s<tt\C-m\C-[Od\C-[[D")
(fset 'ltx-template-tt-to-par
"\C-s<tt\C-m\C-[Od\C-[[D\C-@\C-[Oc\C-[[C\C-w\C-@\C-s</tt\C-m\C-[Od\C-[[D\C-[[D\C-wltxpar\C-i\C-y\C-i\C-[d\C-d\C-s<tt\C-m\C-[Od\C-[[D")
(fset 'ltx-template-code-to-ltx
"\C-s<code\C-m\C-[Od\C-[[D\C-@\C-[Oc\C-[[C\C-w\C-@\C-s</code\C-m\C-[Od\C-[[D\C-[[D\C-wltx\C-i\C-y\C-i\C-[d\C-d\C-s<code\C-m\C-[Od\C-[[D")
(fset 'ltx-template-code-to-pkg
"\C-s<code\C-m\C-[Od\C-[[D\C-@\C-[Oc\C-[[C\C-w\C-@\C-s</code\C-m\C-[Od\C-[[D\C-[[D\C-wltxpkg\C-i\C-y\C-i\C-[d\C-d\C-s<code\C-m\C-[Od\C-[[D")
(fset 'ltx-template-code-to-par
"\C-s<code\C-m\C-[Od\C-[[D\C-@\C-[Oc\C-[[C\C-w\C-@\C-s</code\C-m\C-[Od\C-[[D\C-[[D\C-wltxpar\C-i\C-y\C-i\C-[d\C-d\C-s<code\C-m\C-[Od\C-[[D")
(fset 'ltx-template-code-to-env
"\C-s<code\C-m\C-[Od\C-[[D\C-@\C-[Oc\C-[[C\C-w\C-@\C-s</code\C-m\C-[Od\C-[[D\C-[[D\C-wltxenv\C-i\C-y\C-i\C-[d\C-d\C-s<code\C-m\C-[Od\C-[[D")
;; The url-cookie timer is set to a high value because it seems that once the
;; cookie has been saved, MediaWiki fails to upload files correctly. Is
;; 'url-do-setup' needed to make sure the url-cookie-save-interval variable is
;; taken into account? TODO: does not work.
(setq url-cookie-save-interval 86400)
(setq mediawiki-mode-hook
(lambda ()
(visual-line-mode 1)
(turn-off-auto-fill)
(define-key mediawiki-mode-map (kbd "C-c RET") 'mediawiki-open-page-at-point)
(define-key mediawiki-mode-map (kbd "C-c o") 'mediawiki-browse)
(local-unset-key (kbd "M-g"))
(local-set-key (kbd "C-c C-d") 'duplicate-line)
;; TODO: Bindings to not work???
;; (local-set-key (kbd "C-c l L") 'ltx-template-source-to-latex)
;; (local-set-key (kbd "C-c l U") 'ltx-template-source-to-usage)
)) ))
;;==============================================================================
;; DoxyMacs
;;==============================================================================
;; (require 'doxymacs)
;; (add-hook 'c-mode-common-hook 'doxymacs-mode)
;; ;; Fontified comments.
;; (defun my-doxymacs-font-lock-hook ()
;; (if (or (eq major-mode 'c-mode) (eq major-mode 'c++-mode))
;; (doxymacs-font-lock)))
;; (add-hook 'font-lock-mode-hook 'my-doxymacs-font-lock-hook)
;;==============================================================================
;; Zlc
;;==============================================================================
;; Zsh style completion.
;; (if (require 'zlc nil t)
;; (let ((map minibuffer-local-map))
;; ;; Like Zsh menu select. Should not use arrows directly because it overrides
;; ;; default controls like previous entry, or previous/next char.
;; (define-key map (kbd "M-<down>") 'zlc-select-next-vertical)
;; (define-key map (kbd "M-<up>") 'zlc-select-previous-vertical)
;; (define-key map (kbd "M-<right>") 'zlc-select-next)
;; (define-key map (kbd "M-<left>") 'zlc-select-previous)
;; ;; Reset selection.
;; (define-key map (kbd "C-c") 'zlc-reset)
;; ;; (setq zlc-select-completion-immediately t)
;; ;; To change style, M-x customize-face and input zlc-selected-completion-face.
;; )
;; )
;;==============================================================================
;; xclip
;;==============================================================================
(if (require 'xclip nil t)
(turn-on-xclip))
;;==============================================================================
;; Bison/flex
;;==============================================================================
(if (require 'bison-mode nil t)
(add-to-list 'auto-mode-alist '("\\.yy?\\'" . bison-mode)))
(if (require 'flex-mode nil t)
(add-to-list 'auto-mode-alist '("\\.l\\'" . flex-mode)))
;;==============================================================================
;; Multiple-Cursors
;;==============================================================================
;; (add-to-list 'load-path "/usr/share/emacs/site-lisp/multiple-cursors")
(if (require 'multiple-cursors nil t)
(progn
(setq mc/list-file "~/.emacs.d/mc-lists.el")
(define-key my-keys-minor-mode-map (kbd "C-c C-a") 'mc/edit-beginnings-of-lines)
(define-key my-keys-minor-mode-map (kbd "C-c C-e") 'mc/edit-ends-of-lines)
(define-key my-keys-minor-mode-map (kbd "C-c C-r") 'mc/edit-lines)
(define-key my-keys-minor-mode-map (kbd "C-c C-n") 'mc/mark-next-word-like-this)
(define-key my-keys-minor-mode-map (kbd "C-c C-p") 'mc/mark-previous-word-like-this)
(define-key my-keys-minor-mode-map (kbd "C-c C-l") 'mc/mark-all-like-this-dwim)))