diff --git a/emacs/.emacs b/emacs/.emacs index 5f7ae96..36ec161 100644 --- a/emacs/.emacs +++ b/emacs/.emacs @@ -1,181 +1,8 @@ -;;; package --- summary -;; auctex -- installed -- Integrated environment for *TeX* -;; dummyparens -- installed -- paranthesis auto-pairing and wrapping -;; elpy -- installed -- Emacs Python Development Environment -;; flycheck -- installed -- On-the-fly syntax checking -;; forest-blue-theme -- installed -- Emacs theme with a dark background -;; google-this -- installed -- A set of functions and bindings to google under point -;; nyan-mode -- installed -- Nyan Cat shows position in current buffer in mode-line. -;; rainbow-mode -- installed -- Colorize color names in buffers -;; company -- dependency -- Modular text completion framework -;; dash -- dependency -- A modern list library for Emacs -;; epl -- dependency -- Emacs Package Library -;; find-file-in-project -- dependency -- Find file/directory for review Diff/Patch/Commit efficiently everywhere -;; highlight-indentation -- dependency -- Minor modes for highlight indentation -;; ivy -- dependency -- Incremental Vertical completYon -;; pkg-info -- dependency -- Information about packages -;; popup -- dependency -- Visual Popup User Interface -;; pyvenv -- dependency -- Python virtual environment interface -;; s -- dependency -- The long lost Emacs string manipulation library. -;; yasnippet -- dependency -- Yet another snippet extension for Emacs. - -;;; Code: -(package-initialize) - -;; Package Repos -(when (>= emacs-major-version 24) - (require 'package) - (add-to-list - 'package-archives - ; '("melpa" . "http://stable.melpa.org/packages/") ; many packages won't show if using stable - '("melpa" . "http://melpa.milkbox.net/packages/") - '("elpy" . "http://jorgenschaefer.github.io/packages/") - ) - ) -;; Global functions - -; Copy and Paste -; https://github.com/Boruch-Baum -(defun my-copy-to-xclipboard(arg) - (interactive "P") - (cond - ((not (use-region-p)) - (message "Nothing to yank to X-clipboard")) - ((and (not (display-graphic-p)) - (/= 0 (shell-command-on-region - (region-beginning) (region-end) "xsel -i -b"))) - (error "Is program `xsel' installed?")) - (t - (when (display-graphic-p) - (call-interactively 'clipboard-kill-ring-save)) - (message "Yanked region to X-clipboard") - (when arg - (kill-region (region-beginning) (region-end))) - (deactivate-mark)))) - -(defun my-cut-to-xclipboard() - (interactive) - (my-copy-to-xclipboard t)) - -(defun my-paste-from-xclipboard() - "Uses shell command `xsel -o' to paste from x-clipboard. With - one prefix arg, pastes from X-PRIMARY, and with two prefix args, - pastes from X-SECONDARY." - (interactive) - (if (display-graphic-p) - (clipboard-yank) - (let* - ((opt (prefix-numeric-value current-prefix-arg)) - (opt (cond - ((= 1 opt) "b") - ((= 4 opt) "p") - ((= 16 opt) "s")))) - (insert (shell-command-to-string (concat "xsel -o -" opt)))))) - -;; Theme -(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. - '(custom-safe-themes - (quote - ("66881e95c0eda61d34aa7f08ebacf03319d37fe202d68ecf6a1dbfd49d664bc3" default))) - '(dp-pairs - (quote - (("(" ")" nil) - ("[" "]" nil) - ("{" "}" dp-brace-post-handler)))) - '(elpy-dedicated-shells t) - '(elpy-shell-display-buffer-after-send t) - '(global-font-lock-mode t) - '(package-selected-packages - (quote - (auto-complete nyan-mode google-this dummyparens flycheck rainbow-mode elpy auctex forest-blue-theme)))) -(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. - '(font-latex-bold-face ((t (:foreground "brightcyan")))) - '(font-latex-sedate-face ((t (:foreground "brightcyan")))) - '(font-lock-comment-face ((t (:foreground "color-142")))) - '(font-lock-doc-face ((t (:foreground "color-83")))) - '(font-lock-keyword-face ((t (:foreground "brightcyan" :weight bold)))) - '(font-lock-type-face ((t (:foreground "green")))) - '(highlight-indentation-face ((t (:background "green"))))) - - -;; Functions: -; Load Theme -(load-theme 'forest-blue t) - -; Python -(elpy-enable) -(defalias 'workon 'pyvenv-workon) -(workon "~/.virtualenv/default") - -(defun pyexec () - "Execute the python program in an external terminal." - (interactive) - (when buffer-file-name - (shell-command (concat "termite --hold -e \"python " buffer-file-name "\"")) - ) - ) - -; C++ -(defun cppexec () - "Execute the cpp program in an external terminal." - (interactive) - (when buffer-file-name - (shell-command (concat "termite -e \"g++ " buffer-file-name "\"")) - (shell-command (concat "termite --hold -e \"./a.out\"")) - ) - ) - -; LaTeX -(require 'tex) -(setq TeX-auto-save t) -(setq TeX-parse-self t) -(setq-default TeX-master nil) - -(fset 'next-section - (lambda (&optional arg) "Next section." (interactive "p") (kmacro-exec-ring-item (quote ("\\sec " 0 "%d")) arg))) -(fset 'prev-section - (lambda (&optional arg) "Previous section" (interactive "p") (kmacro-exec-ring-item (quote ("\\sec " 0 "%d")) arg))) - -; Yasnippet -(setq yas-snippet-dirs - '("~/.emacs.d/snippets" ;; personal snippets/copied ones - ) - ) - -;; Modes -(show-paren-mode 1) -(menu-bar-mode -1) -(google-this-mode 1) -(nyan-mode 1) -(TeX-global-PDF-mode t) -(yas-global-mode t) -(global-dummyparens-mode) -(add-hook 'after-init-hook #'global-flycheck-mode) - -;; Custom Keybinds -(global-set-key (kbd "C-c C-w") 'my-cut-to-xclipboard) -(global-set-key (kbd "C-c M-w") 'my-copy-to-xclipboard) -(global-set-key (kbd "C-c M-y") 'my-paste-from-xclipboard) -(global-set-key (kbd "C-x g") 'google-this-mode-submap) -(eval-after-load 'latex - '(define-key LaTeX-mode-map (kbd "C-c n") 'next-section)) -(eval-after-load 'latex - '(define-key LaTeX-mode-map (kbd "C-c p") 'prev-section)) -(eval-after-load 'cc-mode - '(define-key c++-mode-map (kbd "C-c C-c") 'cppexec)) -(eval-after-load 'elpy - '(define-key elpy-mode-map (kbd "C-c C-c") 'pyexec) - ) - -;;; Commentary: - -(provide '.emacs) -;;; .emacs ends here +;;; .emacs --- My personal emacs file + +;;; Commentary: + +;;; Code: + +(provide 'emacs) +;;; .emacs ends here diff --git a/emacs/.emacs.d/.gitignore b/emacs/.emacs.d/.gitignore new file mode 100644 index 0000000..ee058f6 --- /dev/null +++ b/emacs/.emacs.d/.gitignore @@ -0,0 +1,26 @@ +*~ +*.elc +auto-save-list +recentf +savehist +saveplace +eshell +elpa +el-get +semanticdb +url +ede-projects.el +.DS_Store +custom.el +places +.smex-items +savefile/ +/prelude-modules.el +projectile-bookmarks.eld +session* +.cask +tramp +/var/pcache +.emacs.desktop +.emacs.desktop.lock +network-security.data diff --git a/emacs/.emacs.d/.projectile b/emacs/.emacs.d/.projectile new file mode 100644 index 0000000..f47cd73 --- /dev/null +++ b/emacs/.emacs.d/.projectile @@ -0,0 +1,3 @@ +/elpa +/savefile +/.cask \ No newline at end of file diff --git a/emacs/.emacs.d/CONTRIBUTING.md b/emacs/.emacs.d/CONTRIBUTING.md new file mode 100644 index 0000000..695df55 --- /dev/null +++ b/emacs/.emacs.d/CONTRIBUTING.md @@ -0,0 +1,31 @@ +# Contributing + +If you discover issues, have ideas for improvements or new features, or +want to contribute a new module, please report them to the +[issue tracker][1] of the repository or submit a pull request. Please, +try to follow these guidelines when you do so. + +## Issue reporting + +* Check that the issue has not already been reported. +* Check that the issue has not already been fixed in the latest code + (a.k.a. `master`). +* Be clear, concise and precise in your description of the problem. +* Open an issue with a descriptive title and a summary in grammatically correct, + complete sentences. +* Include any relevant code to the issue summary. + +## Pull requests + +* Read [how to properly contribute to open source projects on Github][2]. +* Use a topic branch to easily amend a pull request later, if necessary. +* Write [good commit messages][3]. +* Use the same coding conventions as the rest of the project. +* Verify your Emacs Lisp code with `checkdoc` (C-c ? d). +* Open a [pull request][4] that relates to *only* one subject with a clear title + and description in grammatically correct, complete sentences. + +[1]: https://github.com/bbatsov/prelude/issues +[2]: http://gun.io/blog/how-to-github-fork-branch-and-pull-request +[3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html +[4]: https://help.github.com/articles/using-pull-requests diff --git a/emacs/.emacs.d/README.md b/emacs/.emacs.d/README.md new file mode 100644 index 0000000..dca7b31 --- /dev/null +++ b/emacs/.emacs.d/README.md @@ -0,0 +1,730 @@ +[![License GPL 3][badge-license]](http://www.gnu.org/licenses/gpl-3.0.txt) +[![Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/bbatsov/donate) +[![Patreon](https://img.shields.io/badge/patreon-donate-orange.svg)](https://www.patreon.com/bbatsov) + +Emacs Prelude +============= + +[![Join the chat at https://gitter.im/bbatsov/prelude](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/bbatsov/prelude?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +Prelude is an Emacs distribution that aims to enhance the default +Emacs experience. Prelude alters a lot of the default settings, +bundles a plethora of additional packages and adds its own core +library to the mix. The final product offers an easy to use Emacs +configuration for Emacs newcomers and lots of additional power for +Emacs power users. + +Prelude is compatible **ONLY with GNU Emacs 24.4+**. In general you're +advised to always run Prelude with the latest Emacs - currently +**25.2**. + +You can support the development of Prelude via +[Salt](https://bountysource.com/teams/prelude), +[Patreon](https://www.patreon.com/bbatsov) and +[Liberapay](https://liberapay.com/bbatsov/donate). + +[![Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/bbatsov/donate) +[![Patreon](https://img.shields.io/badge/patreon-donate-orange.svg)](https://www.patreon.com/bbatsov) + +**Table of Contents** + +- [Fast Forward](#fast-forward) +- [Installing Emacs](#installing-emacs) +- [Installation](#installation) + - [Automated](#automated) + - [Via Curl](#via-curl) + - [Via Wget](#via-wget) + - [Manual](#manual) +- [Updating Prelude](#updating-prelude) + - [Manual update](#manual-update) + - [Update all bundled packages](#update-all-bundled-packages) + - [Update Prelude's code](#update-preludes-code) + - [Restart Prelude](#restart-prelude) + - [Automatic update](#automatic-update) +- [Enabling additional modules](#enabling-additional-modules) +- [Running](#running) +- [Getting to know Prelude](#getting-to-know-prelude) + - [Keymap](#keymap) + - [Global](#global) + - [Prelude Mode](#prelude-mode) + - [macOS modifier keys](#macos-modifier-keys) + - [Projectile](#projectile) + - [Helm](#helm) + - [Key-chords](#key-chords) + - [Disabling key-chords](#disabling-key-chords) +- [Automatic package installation](#automatic-package-installation) + - [Color Themes](#color-themes) + - [Personalizing](#personalizing) + - [Disabling whitespace-mode](#disabling-whitespace-mode) + - [Disable flyspell-mode](#disable-flyspell-mode) +- [Caveats & Pitfalls](#caveats--pitfalls) + - [Updating bundled packages](#updating-bundled-packages) + - [Problems with flyspell-mode](#problems-with-flyspell-mode) + - [Ugly colors in the terminal Emacs version](#ugly-colors-in-the-terminal-emacs-version) + - [MELPA error on initial startup](#melpa-error-on-initial-startup) + - [Warnings on arrow navigation in editor buffers](#warnings-on-arrow-navigation-in-editor-buffers) + - [Customized C-a behavior](#customized-c-a-behavior) + - [Poor ido matching performance on large datasets](#poor-ido-matching-performance-on-large-datasets) + - [Windows compatibility](#windows-compatibility) +- [Known issues](#known-issues) +- [Support](#support) +- [Contributors](#contributors) +- [Bugs & Improvements](#bugs--improvements) + +## Fast Forward + +Assuming you're using an Unix-like OS (`*BSD`, `GNU/Linux`, `macOS`, `Solaris`, +etc), you already have Emacs 24.4+ installed, as well as `git` & `curl` you +can skip the whole manual and just type in your favorite shell the +following command: + +```bash +curl -L https://git.io/epre | sh +``` + +You can now power up your Emacs, sit back and enjoy Prelude, +forgetting about the rest of this manual. + +There are two environment variables you can use to control the +source repository and the installation directory. To change the +installation directory: + +```bash +export PRELUDE_INSTALL_DIR="$HOME/.emacs.d" && curl -L https://github.com/bbatsov/prelude/raw/master/utils/installer.sh | sh +``` + +To change the source repository: + +```bash +export PRELUDE_URL="https://github.com/yourname/prelude.git" && curl -L https://github.com/bbatsov/prelude/raw/master/utils/installer.sh | sh +``` + +Note that the installer will back up any existing `.emacs` file or +`.emacs.d` since it will unpack Prelude's code in `.emacs.d`. If +you're doing a manual install make sure you don't have a `.emacs` file +or back up your existing `.emacs.d` directory manually. + +Don't forget to adjust your `prelude-modules.el` file once the installation is done. +By default most of the modules that ship with Prelude are not loaded. + +## Installing Emacs + +Obviously to use the Emacs Prelude you have to install Emacs +first. Have a look at +the +[WikEmacs articles on installing Emacs](http://wikemacs.org/index.php/Installing_Emacs). + +## Installation + +### Automated + +You can install **Emacs Prelude** via the command line with either `curl` or +`wget`. Naturally `git` is also required. + +#### Via Curl + +If you're using `curl` type the following command: + +```bash +curl -L https://github.com/bbatsov/prelude/raw/master/utils/installer.sh | sh +``` + +#### Via Wget + +If you're using `wget` type: + +```bash +wget --no-check-certificate https://github.com/bbatsov/prelude/raw/master/utils/installer.sh -O - | sh +``` + +### Manual + +Make sure you do not have any `~/.emacs` file present. + +```bash +git clone git://github.com/bbatsov/prelude.git path/to/local/repo +ln -s path/to/local/repo ~/.emacs.d +cd ~/.emacs.d +``` + +If you are using Windows, you should check what Emacs thinks the `~` directory is by running Emacs and typing `C-x d ~/`, and then adjust the command appropriately. + +## Updating Prelude + +### Manual update + +The update procedure is fairly straightforward and consists of 3 steps: + +#### Update all bundled packages + +Just run M-x package-list-packages RET U x. + +#### Update Prelude's code + +```bash +cd path/to/prelude/installation +git pull +``` + +The `path/to/prelude/installation` is usually `~/.emacs.d` (at least +on Unix systems). + +#### Restart Prelude + +It's generally a good idea to stop Emacs after you do the update. The +next time Prelude starts it will install any new dependencies (if +there are such). + +### Automatic update + +Simply run M-x prelude-update from Emacs itself and restart Emacs afterwards. + +## Pinning packages + +By default, Prelude will install packages from the melpa and gnu package +repositories. Occasionally package integration can break when upgrading packages. +This can be avoided by pinning packages to stable versions in other repositories. +To do so, copy `prelude-pinned-packages.el` from the sample directory to +Prelude's root directory and adjust the [variables](https://www.gnu.org/software/emacs/manual/html_node/emacs/Package-Installation.html) +inside accordingly. + +## Enabling additional modules + +By default most of the modules that ship with Prelude are not loaded. For more information on the functionality provided by these modules visit the [docs](modules/doc/README.md). + +```lisp +;;; Uncomment the modules you'd like to use and restart Prelude afterwards + +(require 'prelude-c) +;; (require 'prelude-clojure) +;; (require 'prelude-coffee) +;; (require 'prelude-common-lisp) +;; (require 'prelude-css) +(require 'prelude-emacs-lisp) +(require 'prelude-erc) +;; (require 'prelude-erlang) +;; (require 'prelude-elixir) +;; (require 'prelude-haskell) +(require 'prelude-js) +;; (require 'prelude-latex) +(require 'prelude-lisp) +;; (require 'prelude-mediawiki) +(require 'prelude-org) +(require 'prelude-perl) +;; (require 'prelude-python) +;; (require 'prelude-ruby) +;; (require 'prelude-scala) +(require 'prelude-scheme) +;; (require 'prelude-scss) +;; (require 'prelude-web) +(require 'prelude-xml) +``` + +You'll need to adjust your `prelude-modules.el` file once the +installation is done. If you are doing a manual install then you first +need to copy the `prelude-modules.el` available in the sample +directory to the root of `path/to/prelude/installation` and then +adjust that one. + +After you've uncommented a module you should either restart Emacs or evaluate the module +`require` expression with C-x C-e. + +## Running + +Nothing fancy here. Just start Emacs as usual. Personally I run Emacs +in daemon mode: + +```bash +emacs --daemon +``` + +Afterwards I connect to the server with either a terminal or a GUI +client like this: + +```bash +emacsclient -t +emacsclient -c +``` + +You'd probably do well to put a few aliases in your `.zshrc` (or +`.bashrc`): + +```bash +alias e='emacsclient -t' +alias ec='emacsclient -c' +alias vim='emacsclient -t' +alias vi='emacsclient -t' +``` + +The last two aliases are helpful if you're used to editing files from +the command line using `vi(m)`. + +You can also open a file with the cursor positioned directly on a specific line: + +```bash +emacsclient somefile:1234 +``` + +This will open file 'somefile' and set cursor on line 1234. + +## Getting to know Prelude + +Certainly the best way to understand how Prelude enhances the default +Emacs experience is to peruse Prelude's source code (which is +obviously written in Emacs Lisp). Understanding the code is not +necessary of course. Prelude includes a `prelude-mode` minor Emacs mode +which collects some of the additional functionality added by +Prelude. It also adds an additional keymap that binds many of those +extensions to keybindings. + +### Keymap + +#### Global + +Keybinding | Description +-------------------|------------------------------------------------------------ +C-x \\ | `align-regexp` +C-+ | Increase font size(`text-scale-increase`). +C-- | Decrease font size(`text-scale-decrease`). +C-x O | Go back to previous window (the inverse of `other-window` (`C-x o`)). +C-^ | Join two lines into one(`crux-top-join-line`). +C-x p | Start `proced` (manage processes from Emacs; works only in Linux). +C-x m | Start `eshell`. +C-x M-m | Start your default shell. +C-x C-m | Alias for `M-x`. +M-X | Like `M-x` but limited to commands that are relevant to the active major mode. +C-h A | Run `apropos` (search in all Emacs symbols). +C-h C-m | Display key bindings of current major mode and descriptions of every binding. +M-/ | Run `hippie-expand` (a replacement for the default `dabbrev-expand`). +C-x C-b | Open `ibuffer` (a replacement for the default `buffer-list`). +F11 | Make the window full screen. +F12 | Toggle the Emacs menu bar. +C-x g | Open Magit's status buffer. +C-x M-g | Open Magit's popup of popups. +M-Z | Zap up to char. +C-= | Run `expand-region` (incremental text selection). +C-a | Run `crux-move-beginning-of-line`. Read [this](http://emacsredux.com/blog/2013/05/22/smarter-navigation-to-the-beginning-of-a-line/) for details. + +#### Prelude Mode + +Keybinding | Description +-------------------|------------------------------------------------------------ +C-c o | Open the currently visited file with an external program. +C-c i | Search for a symbol, only for buffers that contain code +C-c g | Search in Google for the thing under point (or an interactive query). +C-c G | Search in GitHub for the thing under point (or an interactive query). +C-c y | Search in YouTube for the thing under point (or an interactive query). +C-c U | Search in Duckduckgo for the thing under point (or an interactive query). +C-S-RET or Super-o | Insert an empty line above the current line and indent it properly. +S-RET or M-o | Insert an empty line and indent it properly (as in most IDEs). +C-S-up or M-S-up | Move the current line or region up. +C-S-down or M-S-down| Move the current line or region down. +C-c n | Fix indentation in buffer and strip whitespace. +C-c f | Open recently visited file. +C-M-\\ | Indent region (if selected) or the entire buffer. +C-c u | Open a new buffer containing the contents of URL. +C-c e | Eval a bit of Emacs Lisp code and replace it with its result. +C-c s | Swap two active windows. +C-c D | Delete current file and buffer. +C-c d | Duplicate the current line (or region). +C-c M-d | Duplicate and comment the current line (or region). +C-c r | Rename the current buffer and its visiting file if any. +C-c t | Open a terminal emulator (`ansi-term`). +C-c k | Kill all open buffers except the one you're currently in. +C-c TAB | Indent and copy region to clipboard +C-c I | Open user's init file. +C-c S | Open shell's init file. +C-c . + | Increment integer at point. Default is +1. +C-c . - | Decrement integer at point. Default is -1. +C-c . * | Multiply integer at point. Default is *2. +C-c . / | Divide integer at point. Default is /2. +C-c . \\ | Modulo integer at point. Default is modulo 2. +C-c . ^ | Power to the integer at point. Default is ^2. +C-c . < | Left-shift integer at point. Default is 1 position to the left. +C-c . > | Right-shift integer at point. Default is 1 position to the right. +C-c . # | Convert integer at point to specified base. Default is 10. +C-c . % | Replace integer at point with another specified integer. +C-c . ' | Perform arithmetic operations on integer at point. User specifies the operator. +Super-g | Toggle between God mode and non-God mode +Super-r | Recent files +Super-j | Join lines +Super-k | Kill whole line +Super-m m | Magit status +Super-m l | Magit log +Super-m f | Magit file log +Super-m b | Magit blame mode + +**Note**: For various arithmetic operations, the prefix `C-c .` only needs to be pressed once for the first operation. +For subsequent operations, only the appropriate operations (i.e. `+`, `-`, `*`, `/`... needs to be pressed). + +#### macOS modifier keys + +Prelude does not mess by default with the standard mapping of `Command` (to `Super`) and `Option` (to `Meta`). + +If you want to swap them add this to your personal config: + +```lisp +(setq mac-command-modifier 'meta) +(setq mac-option-modifier 'super) +``` + +You can also temporarily swap them with `C-c w` (`M-x prelude-swap-meta-and-super`). + +**Note**: I'd highly recommend to all macOS users to consider +[remapping Return to +Control](http://emacsredux.com/blog/2013/11/12/a-crazy-productivity-boost-remap-return-to-control/) +instead. That's an epic productivity boost and it's not as crazy as it sounds! + +#### Projectile + +Here's a list of functionality provided by [Projectile](https://github.com/bbatsov/projectile): + +Keybinding | Description +-------------------|------------------------------------------------------------ +C-c p f | Display a list of all files in the project. With a prefix argument it will clear the cache first. +C-c p d | Display a list of all directories in the project. With a prefix argument it will clear the cache first. +C-c p T | Display a list of all test files(specs, features, etc) in the project. +C-c p s g | Run grep on the files in the project. +C-c p s s | Runs `ag` on the project. Requires the presence of `ag.el`. +M-- C-c p s g | Run grep on `projectile-grep-default-files` in the project. +C-c p b | Display a list of all project buffers currently open. +C-c p o | Runs `multi-occur` on all project buffers currently open. +C-c p r | Runs interactive query-replace on all files in the projects. +C-c p i | Invalidates the project cache (if existing). +C-c p R | Regenerates the projects `TAGS` file. +C-c p k | Kills all project buffers. +C-c p D | Opens the root of the project in `dired`. +C-c p e | Shows a list of recently visited project files. +C-c p a | Switch between files with the same name but different extensions. +C-c p c | Runs a standard compilation command for your type of project. +C-c p P | Runs a standard test command for your type of project. +C-c p z | Adds the currently visited to the cache. +C-c p p | Display a list of known projects you can switch to. + +Prelude adds an extra keymap prefix `S-p` (`S` stands for +`Super`), so you can use `S-p` instead of `C-c p`. By default on Windows keyboard +`Super` is mapped to the `Windows` key and on macOS keyboards `Super` is mapped +to the `Command` key. + +If you ever forget any of Projectile's keybindings just do a: + +C-c p C-h + +#### Helm + +Helm is setup according to this guide: [A Package in a league of its own: Helm](http://tuhdo.github.io/helm-intro.html). + +You can learn Helm usage and key bindings following the guide. C-c h is Prelude's default prefix key for Helm. +If you don't remember any key binding, append C-h after C-c h for a list of key bindings in Helm. + +If you love Helm and want to use Helm globally with enhanced `helm-find-files`, `helm-buffer-lists`..., you will have to also add `(require 'prelude-helm-everywhere)`. +When `prelude-helm-everywhere` is activated, Helm enables these global key bindings: + +Key binding | Description +-------------------|---------------------------------------------- +M-x | Run [helm-M-x](http://tuhdo.github.io/helm-intro.html#sec-3), an interactive version of M-x. +M-y | Run [helm-show-kill-ring](http://tuhdo.github.io/helm-intro.html#sec-4), shows the content of `kill-ring`. +C-x b | Run [helm-mini](http://tuhdo.github.io/helm-intro.html#sec-5), an interactive version of `C-x b` with more features. +C-x C-f | Run [helm-find-files](http://tuhdo.github.io/helm-intro.html#sec-6), an interactive version of `find-file` with more features. +C-h f | Run [helm-apropos](http://tuhdo.github.io/helm-intro.html#sec-13), an interactive version of `apropos-command`. +C-h r | Run [helm-info-emacs](http://tuhdo.github.io/helm-intro.html#sec-14), an interactive version of `info-emacs-manual`. +C-h C-l | Run `helm-locate-library` that can search for locations of any file loaded into Emacs. + +This key binding is activated in `shell-mode`: + +Key Binding | Description +-------------------|---------------------------------------------- +C-c C-l | Run `helm-comint-input-ring` that shows `shell` history using Helm interface. + +This key bindings is activated in `eshell-mode`: + +Key Binding | Description +-------------------|---------------------------------------------- +C-c C-l | Run `helm-eshell-history` that shows `eshell` history using Helm interface. + +If you prefer Ido in everywhere, you should not add `prelude-helm-everywhere`, so you can use Helm along with Ido and Prelude's default commands. + +You can always reactivate Helm with `(prelude-global-helm-global-mode-on)`. + +**NOTICE**: In `helm-M-x`, you have to pass prefix argument *AFTER* you run `helm-M-x`, +because your prefix argument will be displayed in the modeline when in `helm-M-x` +buffer. Passing prefix argument **BEFORE** =helm-M-x= **has no effect**. + + +#### Key-chords + +**Key-chords are available only when the `prelude-key-chord` module has been enabled.** + +Keybinding | Description +-------------------|---------------------------------------------- +jj | Jump to the beginning of a word(`avy-goto-word-1`) +jk | Jump to a character(`avy-goto-char`) +jl | Jump to the beginning of a line(`avy-goto-line`) +JJ | Jump back to previous buffer(`crux-switch-to-previous-buffer`) +uu | View edits as a tree(`undo-tree-visualize`) +xx | Executed extended command(`execute-extended-command`) +yy | Browse the kill ring(`browse-kill-ring`) + +##### Disabling key-chords + +In some cases you may not want to have a key-chord that is defined by prelude, +in which case you can disable the binding in your `personal.el` file by setting +its command to `nil`. For example, to disable the `jj` key-chord add the +following line: + +```lisp +(key-chord-define-global "jj" nil) +``` + +If you're an `evil-mode` user you'll probably do well to disable `key-chord-mode` altogether: + +```lisp +(key-chord-mode -1) +``` + +#### vim emulation + +If you want to use vim inside of emacs enable the `prelude-evil` module which provides +support for `evil-mode`. + +## Automatic package installation + +The default Prelude installation comes with a bare minimum of +functionality. It will however install add-ons for various programming +languages and frameworks on demand. For instance - if you try to open +a `.clj` file `clojure-mode`, `cider` and Prelude's enhanced Lisp +configuration will be installed automatically for you. + +You can, of course, install anything you wish manually as well. + +### Color Themes + +Emacs provides a dozen of +built-in themes you can use out-of-the-box by invoking the `M-x +load-theme` command. + +[Zenburn](https://github.com/bbatsov/zenburn-emacs) is the default +color theme in Prelude, but you can change it at your discretion. Why +Zenburn? I (and lots of hackers around the world) find it pretty neat +for some reason. Personally I find the default theme pretty tiresome +for the eyes, that's why I took that "controversial" decision to +replace it. You can, of course, easily go back to the default (or +select another theme entirely). + +To disable Zenburn just put in your personal config the following +line: + +```lisp +(disable-theme 'zenburn) +``` + +Or you can use another theme altogether by adding something in `personal/preload` like: + +```lisp +(prelude-require-package 'solarized) +(setq prelude-theme 'solarized-dark) +``` + +**Note** [Solarized](https://github.com/bbatsov/zenburn-emacs) is not +available by default - you'll have to install it from MELPA first, +therefore the need for `prelude-require-package`. Alternatively you +can manually install the package like this - `M-x package-install RET +solarized-theme`. + +Finally, if you don't want any theme at all, you can add this to your +`personal/preload`: + +```lisp +(setq prelude-theme nil) +``` + +### Personalizing + +**Fork** (instead of cloning) the official Prelude repo and add your +own touch to it. You're advised to **avoid changing stuff outside of +the personal folder** to avoid having to deal with git merge conflicts +in the future. + +If you'd like to add some auto installation of packages in your +personal config use the following code: + +```lisp +(prelude-require-packages '(some-package some-other-package)) +``` + +If you require just a single package you can also use: + +```lisp +(prelude-require-package 'some-package) +``` + +#### Preloading personal config + +Sometimes you might want to load code before Prelude has started loading. Prelude will automatically preload all +Emacs Lisp files in your `personal/preload` directory. Note that at this point you can't using anything from +Prelude, except a few variables like `prelude-dir`, etc (since nothing is yet loaded). + +#### Disabling whitespace-mode + +Although `whitespace-mode` is awesome, some people might find it too +intrusive. You can disable it in your +personal config with the following bit of code: + +```lisp +(setq prelude-whitespace nil) +``` + +If you like `whitespace-mode`, but prefer it to not automatically +cleanup your file on save, you can disable that behavior by setting +`prelude-clean-whitespace-on-save` to `nil` in your config file with: + +```lisp +(setq prelude-clean-whitespace-on-save nil) +``` + +The `prelude-clean-whitespace-on-save` setting can also be set on a +per-file or directory basis by using a file variable or a +`.dir-locals.el` file. + + +#### Disable flyspell-mode + +If you're not fond of spellchecking on the fly: + +```lisp +(setq prelude-flyspell nil) +``` + +## Caveats & Pitfalls + +### Updating bundled packages + +Generally it's a good idea to do a package update before running +updating Prelude, since the latest Prelude code might depend on newer +versions of the bundled packages than you would currently have +installed. + +If you're doing manual Prelude updates you should always do a package update first. + +`M-x package-list-packages RET U x` + +That's not necessary if you're using `M-x prelude-update`, since it +will automatically update the installed packages. + +### Problems with flyspell-mode + +Prelude makes heavy use of the flyspell-mode package for spell +checking of various things. The proper operation of flyspell depends +on the presence of the `aspell` program and an `en` dictionary on your +system. You can install `aspell` and the dictionary on OS X with +`homebrew` like this: + +```bash +brew install aspell --with-lang=en +``` + +On Linux distros - just use your distro's package manager. + +### Ugly colors in the terminal Emacs version + +If your Emacs looks considerably uglier in a terminal (compared to the +GUI version) try adding this to your `.bashrc` or `.zshrc`: + +```bash +export TERM=xterm-256color +``` + +Source the `.bashrc` file and start Emacs again. + +### MELPA error on initial startup + +If you get some http connection error related to the MELPA repo +just do a manual `M-x package-refresh-contents` and restart Emacs +afterwards. + +### Warnings on arrow navigation in editor buffers + +This is not a bug - it's a feature! I firmly believe that the one true +way to use Emacs is by using it the way it was intended to be used (as +far as navigation is concerned at least). + +If you'd like to be take this a step further and disable the arrow key navigation +completely put this in your personal config: + +```lisp +(setq guru-warn-only nil) +``` + +To disable `guru-mode` completely add the following snippet to your +personal Emacs config: + +```lisp +(setq prelude-guru nil) +``` + +### Customized C-a behavior + +Prelude overrides `C-a` to behave as described +[here](http://emacsredux.com/blog/2013/05/22/smarter-navigation-to-the-beginning-of-a-line/). If +you don't like that simply add this to your personal config: + +```lisp +(global-set-key [remap move-beginning-of-line] + 'move-beginning-of-line) +``` + +### Poor ido matching performance on large datasets + +Prelude swaps the default `ido` flex matching with the more powerful +[ido-flx](https://github.com/lewang/flx). + +The sorting algorithm `flx` uses is more complex, but yields better results. + +On slower machines, it may be necessary to lower `flx-ido-threshold` to +ensure a smooth experience. + +```lisp +(setq flx-ido-threshold 1000) +``` + +You can always disable the improved sorting algorithm all together like this: + +```lisp +(flx-ido-mode -1) +``` + +### Windows compatibility + +While everything in Prelude should work fine in Windows, I test it only +with Linux & OS X, so there are Windows related problems from time to +time. This situation will probably improve over time. + +## Known issues + +Check out the project's +[issue list](https://github.com/bbatsov/prelude/issues?sort=created&direction=desc&state=open) +a list of unresolved issues. By the way - feel free to fix any of them +and send me a pull request. :-) + +## Support + +Support is available via several channels: + +* Prelude's Google Group +* Prelude's Freenode channel (`#prelude-emacs`) +* [Gitter](https://gitter.im/bbatsov/prelude) +. +## Contributors + +Here's a [list](https://github.com/bbatsov/prelude/contributors) of all the people who have contributed to the +development of Emacs Prelude. + +## Bugs & Improvements + +Bug reports and suggestions for improvements are always +welcome. GitHub pull requests are even better! :-) + +Cheers,
+[Bozhidar](https://twitter.com/bbatsov) + +[badge-license]: https://img.shields.io/badge/license-GPL_3-green.svg diff --git a/emacs/.emacs.d/core/prelude-core.el b/emacs/.emacs.d/core/prelude-core.el new file mode 100644 index 0000000..216aa3e --- /dev/null +++ b/emacs/.emacs.d/core/prelude-core.el @@ -0,0 +1,178 @@ +;;; prelude-core.el --- Emacs Prelude: Core Prelude functions. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Here are the definitions of most of the functions added by Prelude. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'thingatpt) +(require 'dash) +(require 'ov) + +(defun prelude-buffer-mode (buffer-or-name) + "Retrieve the `major-mode' of BUFFER-OR-NAME." + (with-current-buffer buffer-or-name + major-mode)) + +(defun prelude-search (query-url prompt) + "Open the search url constructed with the QUERY-URL. +PROMPT sets the `read-string prompt." + (browse-url + (concat query-url + (url-hexify-string + (if mark-active + (buffer-substring (region-beginning) (region-end)) + (read-string prompt)))))) + +(defmacro prelude-install-search-engine (search-engine-name search-engine-url search-engine-prompt) + "Given some information regarding a search engine, install the interactive command to search through them" + `(defun ,(intern (format "prelude-%s" search-engine-name)) () + ,(format "Search %s with a query or region if any." search-engine-name) + (interactive) + (prelude-search ,search-engine-url ,search-engine-prompt))) + +(prelude-install-search-engine "google" "http://www.google.com/search?q=" "Google: ") +(prelude-install-search-engine "youtube" "http://www.youtube.com/results?search_query=" "Search YouTube: ") +(prelude-install-search-engine "github" "https://github.com/search?q=" "Search GitHub: ") +(prelude-install-search-engine "duckduckgo" "https://duckduckgo.com/?t=lm&q=" "Search DuckDuckGo: ") + +(defun prelude-todo-ov-evaporate (_ov _after _beg _end &optional _length) + (let ((inhibit-modification-hooks t)) + (if _after (ov-reset _ov)))) + +(defun prelude-annotate-todo () + "Put fringe marker on TODO: lines in the current buffer." + (interactive) + (ov-set (format "[[:space:]]*%s+[[:space:]]*TODO:" comment-start) + 'before-string + (propertize (format "A") + 'display '(left-fringe right-triangle)) + 'modification-hooks '(prelude-todo-ov-evaporate))) + +(defun prelude-recompile-init () + "Byte-compile all your dotfiles again." + (interactive) + (byte-recompile-directory prelude-dir 0)) + +(defvar prelude-tips + '("Press to open a file with external program." + "Press to navigate a project's files with ido." + "Press to open a recently visited file." + "Press to run grep on a project." + "Press to switch between projects." + "Press to expand the selected region." + "Press to search in Google." + "Press to search in GitHub." + "Press to search in YouTube." + "Press to search in DuckDuckGo." + "Press to rename the current buffer and the file it's visiting if any." + "Press to open a terminal in Emacs." + "Press to kill all the buffers, but the active one." + "Press to run magit-status." + "Press to delete the current file and buffer." + "Press to swap two windows." + "Press or to open a line beneath the current one." + "Press to open a line above the current one." + "Press in a Elisp buffer to launch an interactive Elisp shell." + "Press to kill a line backwards." + "Press or to kill the whole line." + "Press or to join lines." + "Press or to jump to the start of a word in any visible window." + "Press to toggle fullscreen mode." + "Press to toggle the menu bar." + "Explore the Tools->Prelude menu to find out about some of Prelude extensions to Emacs." + "Access the official Emacs manual by pressing ." + "Visit the EmacsWiki at http://emacswiki.org to find out even more about Emacs.")) + +(defun prelude-tip-of-the-day () + "Display a random entry from `prelude-tips'." + (interactive) + (when (and prelude-tips (not (window-minibuffer-p))) + ;; pick a new random seed + (random t) + (message + (concat "Prelude tip: " (nth (random (length prelude-tips)) prelude-tips))))) + +(defun prelude-eval-after-init (form) + "Add `(lambda () FORM)' to `after-init-hook'. + + If Emacs has already finished initialization, also eval FORM immediately." + (let ((func (list 'lambda nil form))) + (add-hook 'after-init-hook func) + (when after-init-time + (eval form)))) + +(require 'epl) + +(defun prelude-update () + "Update Prelude to its latest version." + (interactive) + (when (y-or-n-p "Do you want to update Prelude? ") + (message "Updating installed packages...") + (epl-upgrade) + (message "Updating Prelude...") + (cd prelude-dir) + (shell-command "git pull") + (prelude-recompile-init) + (message "Update finished. Restart Emacs to complete the process."))) + +(defun prelude-update-packages (&optional arg) + "Update Prelude's packages. +This includes package installed via `prelude-require-package'. + +With a prefix ARG updates all installed packages." + (interactive "P") + (when (y-or-n-p "Do you want to update Prelude's packages? ") + (if arg + (epl-upgrade) + (epl-upgrade (-filter (lambda (p) (memq (epl-package-name p) prelude-packages)) + (epl-installed-packages)))) + (message "Update finished. Restart Emacs to complete the process."))) + +;;; Emacs in OSX already has fullscreen support +;;; Emacs has a similar built-in command in 24.4 +(defun prelude-fullscreen () + "Make Emacs window fullscreen. + +This follows freedesktop standards, should work in X servers." + (interactive) + (if (eq window-system 'x) + (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 + '(2 "_NET_WM_STATE_FULLSCREEN" 0)) + (error "Only X server is supported"))) + +(defun prelude-wrap-with (s) + "Create a wrapper function for smartparens using S." + `(lambda (&optional arg) + (interactive "P") + (sp-wrap-with-pair ,s))) + +(provide 'prelude-core) +;;; prelude-core.el ends here diff --git a/emacs/.emacs.d/core/prelude-custom.el b/emacs/.emacs.d/core/prelude-custom.el new file mode 100644 index 0000000..34f0584 --- /dev/null +++ b/emacs/.emacs.d/core/prelude-custom.el @@ -0,0 +1,103 @@ +;;; prelude-custom.el --- Emacs Prelude: Prelude's customizable variables. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Refinements of the core editing experience in Emacs. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +;; customize +(defgroup prelude nil + "Emacs Prelude configuration." + :prefix "prelude-" + :group 'convenience) + +(defcustom prelude-auto-save t + "Non-nil values enable Prelude's auto save." + :type 'boolean + :group 'prelude) + +(defcustom prelude-guru t + "Non-nil values enable `guru-mode'." + :type 'boolean + :group 'prelude) + +(defcustom prelude-whitespace t + "Non-nil values enable Prelude's whitespace visualization." + :type 'boolean + :group 'prelude) + +(defcustom prelude-clean-whitespace-on-save t + "Cleanup whitespace from file before it's saved. +Will only occur if `prelude-whitespace' is also enabled." + :type 'boolean + :group 'prelude) + +(defcustom prelude-flyspell t + "Non-nil values enable Prelude's flyspell support." + :type 'boolean + :group 'prelude) + +(defcustom prelude-user-init-file (expand-file-name "personal/" + user-emacs-directory) + "Path to your personal customization file. +Prelude recommends you only put personal customizations in the +personal folder. This variable allows you to specify a specific +folder as the one that should be visited when running +`crux-find-user-init-file'. This can be easily set to the desired buffer +in lisp by putting `(setq prelude-user-init-file load-file-name)' +in the desired elisp file." + :type 'string + :group 'prelude) + +(defcustom prelude-indent-sensitive-modes + '(conf-mode coffee-mode haml-mode python-mode slim-mode yaml-mode) + "Modes for which auto-indenting is suppressed." + :type 'list + :group 'prelude) + +(defcustom prelude-yank-indent-modes '(LaTeX-mode TeX-mode) + "Modes in which to indent regions that are yanked (or yank-popped). +Only modes that don't derive from `prog-mode' should be listed here." + :type 'list + :group 'prelude) + +(defcustom prelude-yank-indent-threshold 1000 + "Threshold (# chars) over which indentation does not automatically occur." + :type 'number + :group 'prelude) + +(defcustom prelude-theme 'zenburn + "The default color theme, change this in your /personal/preload config." + :type 'symbol + :group 'prelude) + +(provide 'prelude-custom) + +;;; prelude-custom.el ends here diff --git a/emacs/.emacs.d/core/prelude-editor.el b/emacs/.emacs.d/core/prelude-editor.el new file mode 100644 index 0000000..d6f5917 --- /dev/null +++ b/emacs/.emacs.d/core/prelude-editor.el @@ -0,0 +1,440 @@ +;;; prelude-editor.el --- Emacs Prelude: enhanced core editing experience. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Refinements of the core editing experience in Emacs. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +;; Death to the tabs! However, tabs historically indent to the next +;; 8-character offset; specifying anything else will cause *mass* +;; confusion, as it will change the appearance of every existing file. +;; In some cases (python), even worse -- it will change the semantics +;; (meaning) of the program. +;; +;; Emacs modes typically provide a standard means to change the +;; indentation width -- eg. c-basic-offset: use that to adjust your +;; personal indentation width, while maintaining the style (and +;; meaning) of any files you load. +(setq-default indent-tabs-mode nil) ;; don't use tabs to indent +(setq-default tab-width 8) ;; but maintain correct appearance + +;; Newline at end of file +(setq require-final-newline t) + +;; delete the selection with a keypress +(delete-selection-mode t) + +;; store all backup and autosave files in the tmp dir +(setq backup-directory-alist + `((".*" . ,temporary-file-directory))) +(setq auto-save-file-name-transforms + `((".*" ,temporary-file-directory t))) + +;; autosave the undo-tree history +(setq undo-tree-history-directory-alist + `((".*" . ,temporary-file-directory))) +(setq undo-tree-auto-save-history t) + +;; revert buffers automatically when underlying files are changed externally +(global-auto-revert-mode t) + +;; hippie expand is dabbrev expand on steroids +(setq hippie-expand-try-functions-list '(try-expand-dabbrev + try-expand-dabbrev-all-buffers + try-expand-dabbrev-from-kill + try-complete-file-name-partially + try-complete-file-name + try-expand-all-abbrevs + try-expand-list + try-expand-line + try-complete-lisp-symbol-partially + try-complete-lisp-symbol)) + +;; smart tab behavior - indent or complete +(setq tab-always-indent 'complete) + +;; smart pairing for all +(require 'smartparens-config) +(setq sp-base-key-bindings 'paredit) +(setq sp-autoskip-closing-pair 'always) +(setq sp-hybrid-kill-entire-symbol nil) +(sp-use-paredit-bindings) + +(show-smartparens-global-mode +1) + +(define-key prog-mode-map (kbd "M-(") (prelude-wrap-with "(")) +;; FIXME: pick terminal friendly binding +;; (define-key prog-mode-map (kbd "M-[") (prelude-wrap-with "[")) +(define-key prog-mode-map (kbd "M-\"") (prelude-wrap-with "\"")) + +;; disable annoying blink-matching-paren +(setq blink-matching-paren nil) + +;; diminish keeps the modeline tidy +(require 'diminish) + +;; meaningful names for buffers with the same name +(require 'uniquify) +(setq uniquify-buffer-name-style 'forward) +(setq uniquify-separator "/") +(setq uniquify-after-kill-buffer-p t) ; rename after killing uniquified +(setq uniquify-ignore-buffers-re "^\\*") ; don't muck with special buffers + +;; saveplace remembers your location in a file when saving files +(setq save-place-file (expand-file-name "saveplace" prelude-savefile-dir)) +;; activate it for all buffers +(if (< emacs-major-version 25) + (progn (require 'saveplace) + (setq-default save-place t)) + (save-place-mode 1)) + +;; savehist keeps track of some history +(require 'savehist) +(setq savehist-additional-variables + ;; search entries + '(search-ring regexp-search-ring) + ;; save every minute + savehist-autosave-interval 60 + ;; keep the home clean + savehist-file (expand-file-name "savehist" prelude-savefile-dir)) +(savehist-mode +1) + +;; save recent files +(require 'recentf) +(setq recentf-save-file (expand-file-name "recentf" prelude-savefile-dir) + recentf-max-saved-items 500 + recentf-max-menu-items 15 + ;; disable recentf-cleanup on Emacs start, because it can cause + ;; problems with remote files + recentf-auto-cleanup 'never) + +(defun prelude-recentf-exclude-p (file) + "A predicate to decide whether to exclude FILE from recentf." + (let ((file-dir (file-truename (file-name-directory file)))) + (-any-p (lambda (dir) + (string-prefix-p dir file-dir)) + (mapcar 'file-truename (list prelude-savefile-dir package-user-dir))))) + +(add-to-list 'recentf-exclude 'prelude-recentf-exclude-p) + +(recentf-mode +1) + +;; use shift + arrow keys to switch between visible buffers +(require 'windmove) +(windmove-default-keybindings) + +;; automatically save buffers associated with files on buffer switch +;; and on windows switch +(defun prelude-auto-save-command () + "Save the current buffer if `prelude-auto-save' is not nil." + (when (and prelude-auto-save + buffer-file-name + (buffer-modified-p (current-buffer)) + (file-writable-p buffer-file-name)) + (save-buffer))) + +(defmacro advise-commands (advice-name commands class &rest body) + "Apply advice named ADVICE-NAME to multiple COMMANDS. + +The body of the advice is in BODY." + `(progn + ,@(mapcar (lambda (command) + `(defadvice ,command (,class ,(intern (concat (symbol-name command) "-" advice-name)) activate) + ,@body)) + commands))) + +;; advise all window switching functions +(advise-commands "auto-save" + (switch-to-buffer other-window windmove-up windmove-down windmove-left windmove-right) + before + (prelude-auto-save-command)) + +(add-hook 'mouse-leave-buffer-hook 'prelude-auto-save-command) + +(when (version<= "24.4" emacs-version) + (add-hook 'focus-out-hook 'prelude-auto-save-command)) + +(defadvice set-buffer-major-mode (after set-major-mode activate compile) + "Set buffer major mode according to `auto-mode-alist'." + (let* ((name (buffer-name buffer)) + (mode (assoc-default name auto-mode-alist 'string-match))) + (when (and mode (consp mode)) + (setq mode (car mode))) + (with-current-buffer buffer (if mode (funcall mode))))) + +;; highlight the current line +(global-hl-line-mode +1) + +(require 'volatile-highlights) +(volatile-highlights-mode t) +(diminish 'volatile-highlights-mode) + +;; note - this should be after volatile-highlights is required +;; add the ability to cut the current line, without marking it +(require 'rect) +(crux-with-region-or-line kill-region) + +;; tramp, for sudo access +(require 'tramp) +;; keep in mind known issues with zsh - see emacs wiki +(setq tramp-default-method "ssh") + +(set-default 'imenu-auto-rescan t) + +;; flyspell-mode does spell-checking on the fly as you type +(require 'flyspell) +(setq ispell-program-name "aspell" ; use aspell instead of ispell + ispell-extra-args '("--sug-mode=ultra")) + +(defun prelude-enable-flyspell () + "Enable command `flyspell-mode' if `prelude-flyspell' is not nil." + (when (and prelude-flyspell (executable-find ispell-program-name)) + (flyspell-mode +1))) + +(defun prelude-cleanup-maybe () + "Invoke `whitespace-cleanup' if `prelude-clean-whitespace-on-save' is not nil." + (when prelude-clean-whitespace-on-save + (whitespace-cleanup))) + +(defun prelude-enable-whitespace () + "Enable `whitespace-mode' if `prelude-whitespace' is not nil." + (when prelude-whitespace + ;; keep the whitespace decent all the time (in this buffer) + (add-hook 'before-save-hook 'prelude-cleanup-maybe nil t) + (whitespace-mode +1))) + +(add-hook 'text-mode-hook 'prelude-enable-flyspell) +(add-hook 'text-mode-hook 'prelude-enable-whitespace) + +;; enable narrowing commands +(put 'narrow-to-region 'disabled nil) +(put 'narrow-to-page 'disabled nil) +(put 'narrow-to-defun 'disabled nil) + +;; enabled change region case commands +(put 'upcase-region 'disabled nil) +(put 'downcase-region 'disabled nil) + +;; enable erase-buffer command +(put 'erase-buffer 'disabled nil) + +(require 'expand-region) + +;; bookmarks +(require 'bookmark) +(setq bookmark-default-file (expand-file-name "bookmarks" prelude-savefile-dir) + bookmark-save-flag 1) + +;; projectile is a project management mode +(require 'projectile) +(setq projectile-cache-file (expand-file-name "projectile.cache" prelude-savefile-dir)) +(projectile-global-mode t) + +;; avy allows us to effectively navigate to visible things +(require 'avy) +(setq avy-background t) +(setq avy-style 'at-full) + +;; anzu-mode enhances isearch & query-replace by showing total matches and current match position +(require 'anzu) +(diminish 'anzu-mode) +(global-anzu-mode) + +(global-set-key (kbd "M-%") 'anzu-query-replace) +(global-set-key (kbd "C-M-%") 'anzu-query-replace-regexp) + +;; dired - reuse current buffer by pressing 'a' +(put 'dired-find-alternate-file 'disabled nil) + +;; always delete and copy recursively +(setq dired-recursive-deletes 'always) +(setq dired-recursive-copies 'always) + +;; if there is a dired buffer displayed in the next window, use its +;; current subdir, instead of the current subdir of this dired buffer +(setq dired-dwim-target t) + +;; enable some really cool extensions like C-x C-j(dired-jump) +(require 'dired-x) + +;; ediff - don't start another frame +(require 'ediff) +(setq ediff-window-setup-function 'ediff-setup-windows-plain) + +;; clean up obsolete buffers automatically +(require 'midnight) + +;; smarter kill-ring navigation +(require 'browse-kill-ring) +(browse-kill-ring-default-keybindings) +(global-set-key (kbd "s-y") 'browse-kill-ring) + +(defadvice exchange-point-and-mark (before deactivate-mark activate compile) + "When called with no active region, do not activate mark." + (interactive + (list (not (region-active-p))))) + +(require 'tabify) +(defmacro with-region-or-buffer (func) + "When called with no active region, call FUNC on current buffer." + `(defadvice ,func (before with-region-or-buffer activate compile) + (interactive + (if mark-active + (list (region-beginning) (region-end)) + (list (point-min) (point-max)))))) + +(with-region-or-buffer indent-region) +(with-region-or-buffer untabify) + +;; automatically indenting yanked text if in programming-modes +(defun yank-advised-indent-function (beg end) + "Do indentation, as long as the region isn't too large." + (if (<= (- end beg) prelude-yank-indent-threshold) + (indent-region beg end nil))) + +(advise-commands "indent" (yank yank-pop) after + "If current mode is one of `prelude-yank-indent-modes', +indent yanked text (with prefix arg don't indent)." + (if (and (not (ad-get-arg 0)) + (not (member major-mode prelude-indent-sensitive-modes)) + (or (derived-mode-p 'prog-mode) + (member major-mode prelude-yank-indent-modes))) + (let ((transient-mark-mode nil)) + (yank-advised-indent-function (region-beginning) (region-end))))) + +;; abbrev config +(add-hook 'text-mode-hook 'abbrev-mode) + +;; make a shell script executable automatically on save +(add-hook 'after-save-hook + 'executable-make-buffer-file-executable-if-script-p) + +;; .zsh file is shell script too +(add-to-list 'auto-mode-alist '("\\.zsh\\'" . shell-script-mode)) + +;; whitespace-mode config +(require 'whitespace) +(setq whitespace-line-column 80) ;; limit line length +(setq whitespace-style '(face tabs empty trailing lines-tail)) + +;; saner regex syntax +(require 're-builder) +(setq reb-re-syntax 'string) + +(require 'eshell) +(setq eshell-directory-name (expand-file-name "eshell" prelude-savefile-dir)) + +(setq semanticdb-default-save-directory + (expand-file-name "semanticdb" prelude-savefile-dir)) + +;; Compilation from Emacs +(defun prelude-colorize-compilation-buffer () + "Colorize a compilation mode buffer." + (interactive) + ;; we don't want to mess with child modes such as grep-mode, ack, ag, etc + (when (eq major-mode 'compilation-mode) + (let ((inhibit-read-only t)) + (ansi-color-apply-on-region (point-min) (point-max))))) + +(require 'compile) +(setq compilation-ask-about-save nil ; Just save before compiling + compilation-always-kill t ; Just kill old compile processes before + ; starting the new one + compilation-scroll-output 'first-error ; Automatically scroll to first + ; error + ) + +;; Colorize output of Compilation Mode, see +;; http://stackoverflow.com/a/3072831/355252 +(require 'ansi-color) +(add-hook 'compilation-filter-hook #'prelude-colorize-compilation-buffer) + +;; enable Prelude's keybindings +(prelude-global-mode t) + +;; sensible undo +(global-undo-tree-mode) +(diminish 'undo-tree-mode) + +;; enable winner-mode to manage window configurations +(winner-mode +1) + +;; diff-hl +(global-diff-hl-mode +1) +(add-hook 'dired-mode-hook 'diff-hl-dired-mode) +(add-hook 'magit-post-refresh-hook 'diff-hl-magit-post-refresh) + +;; easy-kill +(global-set-key [remap kill-ring-save] 'easy-kill) +(global-set-key [remap mark-sexp] 'easy-mark) + +;; operate-on-number +(require 'operate-on-number) +(require 'smartrep) + +(smartrep-define-key global-map "C-c ." + '(("+" . apply-operation-to-number-at-point) + ("-" . apply-operation-to-number-at-point) + ("*" . apply-operation-to-number-at-point) + ("/" . apply-operation-to-number-at-point) + ("\\" . apply-operation-to-number-at-point) + ("^" . apply-operation-to-number-at-point) + ("<" . apply-operation-to-number-at-point) + (">" . apply-operation-to-number-at-point) + ("#" . apply-operation-to-number-at-point) + ("%" . apply-operation-to-number-at-point) + ("'" . operate-on-number-at-point))) + +(defadvice server-visit-files (before parse-numbers-in-lines (files proc &optional nowait) activate) + "Open file with emacsclient with cursors positioned on requested line. +Most of console-based utilities prints filename in format +'filename:linenumber'. So you may wish to open filename in that format. +Just call: + + emacsclient filename:linenumber + +and file 'filename' will be opened and cursor set on line 'linenumber'" + (ad-set-arg 0 + (mapcar (lambda (fn) + (let ((name (car fn))) + (if (string-match "^\\(.*?\\):\\([0-9]+\\)\\(?::\\([0-9]+\\)\\)?$" name) + (cons + (match-string 1 name) + (cons (string-to-number (match-string 2 name)) + (string-to-number (or (match-string 3 name) "")))) + fn))) files))) + +;; use settings from .editorconfig file when present +(require 'editorconfig) +(editorconfig-mode 1) + +(provide 'prelude-editor) + +;;; prelude-editor.el ends here diff --git a/emacs/.emacs.d/core/prelude-global-keybindings.el b/emacs/.emacs.d/core/prelude-global-keybindings.el new file mode 100644 index 0000000..425a189 --- /dev/null +++ b/emacs/.emacs.d/core/prelude-global-keybindings.el @@ -0,0 +1,116 @@ +;;; prelude-global-keybindings.el --- Emacs Prelude: some useful keybindings. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Lots of useful keybindings. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +;; Align your code in a pretty way. +(global-set-key (kbd "C-x \\") 'align-regexp) + +;; Font size +(global-set-key (kbd "C-+") 'text-scale-increase) +(global-set-key (kbd "C--") 'text-scale-decrease) + +;; Window switching. (C-x o goes to the next window) +(global-set-key (kbd "C-x O") (lambda () + (interactive) + (other-window -1))) ;; back one + +;; Indentation help +(global-set-key (kbd "C-^") 'crux-top-join-line) +;; Start proced in a similar manner to dired +(unless (eq system-type 'darwin) + (global-set-key (kbd "C-x p") 'proced)) + +;; Start eshell or switch to it if it's active. +(global-set-key (kbd "C-x m") 'eshell) + +;; Start a new eshell even if one is active. +(global-set-key (kbd "C-x M") (lambda () (interactive) (eshell t))) + +;; Start a regular shell if you prefer that. +(global-set-key (kbd "C-x M-m") 'shell) + +;; If you want to be able to M-x without meta +(global-set-key (kbd "C-x C-m") 'smex) + +;; A complementary binding to the apropos-command (C-h a) +(define-key 'help-command "A" 'apropos) + +;; A quick major mode help with discover-my-major +(define-key 'help-command (kbd "C-m") 'discover-my-major) + +(define-key 'help-command (kbd "C-f") 'find-function) +(define-key 'help-command (kbd "C-k") 'find-function-on-key) +(define-key 'help-command (kbd "C-v") 'find-variable) +(define-key 'help-command (kbd "C-l") 'find-library) + +(define-key 'help-command (kbd "C-i") 'info-display-manual) + +;; replace zap-to-char functionality with the more powerful zop-to-char +(global-set-key (kbd "M-z") 'zop-up-to-char) +(global-set-key (kbd "M-Z") 'zop-to-char) + +;; kill lines backward +(global-set-key (kbd "C-") (lambda () + (interactive) + (kill-line 0) + (indent-according-to-mode))) + +(global-set-key [remap kill-whole-line] 'crux-kill-whole-line) + +;; Activate occur easily inside isearch +(define-key isearch-mode-map (kbd "C-o") 'isearch-occur) + +;; use hippie-expand instead of dabbrev +(global-set-key (kbd "M-/") 'hippie-expand) + +;; replace buffer-menu with ibuffer +(global-set-key (kbd "C-x C-b") 'ibuffer) + +(unless (fboundp 'toggle-frame-fullscreen) + (global-set-key (kbd "") 'prelude-fullscreen)) + +;; toggle menu-bar visibility +(global-set-key (kbd "") 'menu-bar-mode) + +(global-set-key (kbd "C-x g") 'magit-status) +(global-set-key (kbd "C-x M-g") 'magit-dispatch-popup) + +(global-set-key (kbd "C-=") 'er/expand-region) + +(global-set-key (kbd "C-c j") 'avy-goto-word-or-subword-1) +(global-set-key (kbd "s-.") 'avy-goto-word-or-subword-1) +(global-set-key (kbd "s-w") 'ace-window) + +(provide 'prelude-global-keybindings) + +;;; prelude-global-keybindings.el ends here diff --git a/emacs/.emacs.d/core/prelude-mode.el b/emacs/.emacs.d/core/prelude-mode.el new file mode 100644 index 0000000..8ea8101 --- /dev/null +++ b/emacs/.emacs.d/core/prelude-mode.el @@ -0,0 +1,149 @@ +;;; prelude-mode.el --- Emacs Prelude: minor mode +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; A minor mode defining a local keymap, plus a menu. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: +(require 'easymenu) +(require 'imenu-anywhere) +(require 'crux) + +(defvar prelude-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c o") 'crux-open-with) + (define-key map (kbd "C-c g") 'prelude-google) + (define-key map (kbd "C-c G") 'prelude-github) + (define-key map (kbd "C-c y") 'prelude-youtube) + (define-key map (kbd "C-c U") 'prelude-duckduckgo) + ;; mimic popular IDEs binding, note that it doesn't work in a terminal session + (define-key map (kbd "C-a") 'crux-move-beginning-of-line) + (define-key map [(shift return)] 'crux-smart-open-line) + (define-key map (kbd "M-o") 'crux-smart-open-line) + (define-key map [(control shift return)] 'crux-smart-open-line-above) + (define-key map [(control shift up)] 'move-text-up) + (define-key map [(control shift down)] 'move-text-down) + (define-key map [(meta shift up)] 'move-text-up) + (define-key map [(meta shift down)] 'move-text-down) + (define-key map (kbd "C-c n") 'crux-cleanup-buffer-or-region) + (define-key map (kbd "C-c f") 'crux-recentf-ido-find-file) + (define-key map (kbd "C-M-z") 'crux-indent-defun) + (define-key map (kbd "C-c u") 'crux-view-url) + (define-key map (kbd "C-c e") 'crux-eval-and-replace) + (define-key map (kbd "C-c s") 'crux-swap-windows) + (define-key map (kbd "C-c D") 'crux-delete-file-and-buffer) + (define-key map (kbd "C-c d") 'crux-duplicate-current-line-or-region) + (define-key map (kbd "C-c M-d") 'crux-duplicate-and-comment-current-line-or-region) + (define-key map (kbd "C-c r") 'crux-rename-buffer-and-file) + (define-key map (kbd "C-c t") 'crux-visit-term-buffer) + (define-key map (kbd "C-c k") 'crux-kill-other-buffers) + (define-key map (kbd "C-c TAB") 'crux-indent-rigidly-and-copy-to-clipboard) + (define-key map (kbd "C-c I") 'crux-find-user-init-file) + (define-key map (kbd "C-c S") 'crux-find-shell-init-file) + (define-key map (kbd "C-c i") 'imenu-anywhere) + ;; extra prefix for projectile + (define-key map (kbd "s-p") 'projectile-command-map) + ;; make some use of the Super key + (define-key map (kbd "s-g") 'god-local-mode) + (define-key map (kbd "s-r") 'crux-recentf-ido-find-file) + (define-key map (kbd "s-j") 'crux-top-join-line) + (define-key map (kbd "s-k") 'crux-kill-whole-line) + (define-key map (kbd "s-m m") 'magit-status) + (define-key map (kbd "s-m l") 'magit-log) + (define-key map (kbd "s-m f") 'magit-log-buffer-file) + (define-key map (kbd "s-m b") 'magit-blame) + (define-key map (kbd "s-o") 'crux-smart-open-line-above) + + map) + "Keymap for Prelude mode.") + +(defun prelude-mode-add-menu () + "Add a menu entry for `prelude-mode' under Tools." + (easy-menu-add-item nil '("Tools") + '("Prelude" + ("Files" + ["Open with..." crux-open-with] + ["Delete file and buffer" crux-delete-file-and-buffer] + ["Rename buffer and file" crux-rename-buffer-and-file]) + + ("Buffers" + ["Clean up buffer or region" crux-cleanup-buffer-or-region] + ["Kill other buffers" crux-kill-other-buffers]) + + ("Editing" + ["Insert empty line" prelude-insert-empty-line] + ["Move line up" prelude-move-line-up] + ["Move line down" prelude-move-line-down] + ["Duplicate line or region" prelude-duplicate-current-line-or-region] + ["Indent rigidly and copy to clipboard" crux-indent-rigidly-and-copy-to-clipboard] + ["Insert date" crux-insert-date] + ["Eval and replace" crux-eval-and-replace] + ) + + ("Windows" + ["Swap windows" crux-swap-windows]) + + ("General" + ["Visit term buffer" crux-visit-term-buffer] + ["Search in Google" prelude-google] + ["View URL" crux-view-url])) + "Search Files (Grep)...") + + (easy-menu-add-item nil '("Tools") '("--") "Search Files (Grep)...")) + +(defun prelude-mode-remove-menu () + "Remove `prelude-mode' menu entry." + (easy-menu-remove-item nil '("Tools") "Prelude") + (easy-menu-remove-item nil '("Tools") "--")) + +;; define minor mode +(define-minor-mode prelude-mode + "Minor mode to consolidate Emacs Prelude extensions. + +\\{prelude-mode-map}" + :lighter " Pre" + :keymap prelude-mode-map + (if prelude-mode + ;; on start + (prelude-mode-add-menu) + ;; on stop + (prelude-mode-remove-menu))) + +(define-globalized-minor-mode prelude-global-mode prelude-mode prelude-on) + +(defun prelude-on () + "Turn on `prelude-mode'." + (prelude-mode +1)) + +(defun prelude-off () + "Turn off `prelude-mode'." + (prelude-mode -1)) + +(provide 'prelude-mode) +;;; prelude-mode.el ends here diff --git a/emacs/.emacs.d/core/prelude-osx.el b/emacs/.emacs.d/core/prelude-osx.el new file mode 100644 index 0000000..0c4d418 --- /dev/null +++ b/emacs/.emacs.d/core/prelude-osx.el @@ -0,0 +1,75 @@ +;;; prelude-osx.el --- Emacs Prelude: OSX specific settings. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some OSX specific stuff. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +;; On OS X Emacs doesn't use the shell PATH if it's not started from +;; the shell. Let's fix that: +(prelude-require-packages '(exec-path-from-shell vkill)) + +(require 'exec-path-from-shell) +(exec-path-from-shell-initialize) + +;; It's all in the Meta +(setq ns-function-modifier 'hyper) + +;; proced-mode doesn't work on OS X so we use vkill instead +(autoload 'vkill "vkill" nil t) +(global-set-key (kbd "C-x p") 'vkill) + +(defun prelude-swap-meta-and-super () + "Swap the mapping of Meta and Super. +Very useful for people using their Mac with a +Windows external keyboard from time to time." + (interactive) + (if (eq mac-command-modifier 'super) + (progn + (setq mac-command-modifier 'meta) + (setq mac-option-modifier 'super) + (message "Command is now bound to META and Option is bound to SUPER.")) + (progn + (setq mac-command-modifier 'super) + (setq mac-option-modifier 'meta) + (message "Command is now bound to SUPER and Option is bound to META.")))) + +(define-key prelude-mode-map (kbd "C-c w") 'prelude-swap-meta-and-super) +(define-key prelude-mode-map (kbd "s-/") 'hippie-expand) + +(menu-bar-mode +1) + +;; Enable emoji, and stop the UI from freezing when trying to display them. +(if (fboundp 'set-fontset-font) + (set-fontset-font t 'unicode "Apple Color Emoji" nil 'prepend)) + + +(provide 'prelude-osx) +;;; prelude-osx.el ends here diff --git a/emacs/.emacs.d/core/prelude-packages.el b/emacs/.emacs.d/core/prelude-packages.el new file mode 100644 index 0000000..195ea4f --- /dev/null +++ b/emacs/.emacs.d/core/prelude-packages.el @@ -0,0 +1,217 @@ +;;; prelude-packages.el --- Emacs Prelude: default package selection. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Takes care of the automatic installation of all the packages required by +;; Emacs Prelude. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: +(require 'cl) +(require 'package) + +;; accessing a package repo over https on Windows is a no go, so we +;; fallback to http there +(if (eq system-type 'windows-nt) + (add-to-list 'package-archives + '("melpa" . "http://melpa.org/packages/") t) + (add-to-list 'package-archives + '("melpa" . "https://melpa.org/packages/") t)) + +;; load the pinned packages +(let ((prelude-pinned-packages-file (expand-file-name "prelude-pinned-packages.el" prelude-dir))) + (if (file-exists-p prelude-pinned-packages-file) + (load prelude-pinned-packages-file))) + +;; set package-user-dir to be relative to Prelude install path +(setq package-user-dir (expand-file-name "elpa" prelude-dir)) +(package-initialize) + +(defvar prelude-packages + '(ace-window + avy + anzu + beacon + browse-kill-ring + crux + dash + discover-my-major + diff-hl + diminish + easy-kill + editorconfig + epl + expand-region + flycheck + gist + git-timemachine + gitconfig-mode + gitignore-mode + god-mode + grizzl + guru-mode + imenu-anywhere + ov + projectile + magit + move-text + operate-on-number + smart-mode-line + smartparens + smartrep + undo-tree + volatile-highlights + which-key + zenburn-theme + zop-to-char) + "A list of packages to ensure are installed at launch.") + +(defun prelude-packages-installed-p () + "Check if all packages in `prelude-packages' are installed." + (every #'package-installed-p prelude-packages)) + +(defun prelude-require-package (package) + "Install PACKAGE unless already installed." + (unless (memq package prelude-packages) + (add-to-list 'prelude-packages package)) + (unless (package-installed-p package) + (package-install package))) + +(defun prelude-require-packages (packages) + "Ensure PACKAGES are installed. +Missing packages are installed automatically." + (mapc #'prelude-require-package packages)) + +(define-obsolete-function-alias 'prelude-ensure-module-deps 'prelude-require-packages) + +(defun prelude-install-packages () + "Install all packages listed in `prelude-packages'." + (unless (prelude-packages-installed-p) + ;; check for new packages (package versions) + (message "%s" "Emacs Prelude is now refreshing its package database...") + (package-refresh-contents) + (message "%s" " done.") + ;; install the missing packages + (prelude-require-packages prelude-packages))) + +;; run package installation +(prelude-install-packages) + +(defun prelude-list-foreign-packages () + "Browse third-party packages not bundled with Prelude. + +Behaves similarly to `package-list-packages', but shows only the packages that +are installed and are not in `prelude-packages'. Useful for +removing unwanted packages." + (interactive) + (package-show-package-list + (set-difference package-activated-list prelude-packages))) + +(defmacro prelude-auto-install (extension package mode) + "When file with EXTENSION is opened triggers auto-install of PACKAGE. +PACKAGE is installed only if not already present. The file is opened in MODE." + `(add-to-list 'auto-mode-alist + `(,extension . (lambda () + (unless (package-installed-p ',package) + (package-install ',package)) + (,mode))))) + +(defvar prelude-auto-install-alist + '(("\\.clj\\'" clojure-mode clojure-mode) + ("\\.cmake\\'" cmake-mode cmake-mode) + ("CMakeLists\\.txt\\'" cmake-mode cmake-mode) + ("\\.coffee\\'" coffee-mode coffee-mode) + ("\\.css\\'" css-mode css-mode) + ("\\.csv\\'" csv-mode csv-mode) + ("Cask" cask-mode cask-mode) + ("\\.d\\'" d-mode d-mode) + ("\\.dart\\'" dart-mode dart-mode) + ("\\.elm\\'" elm-mode elm-mode) + ("\\.ex\\'" elixir-mode elixir-mode) + ("\\.exs\\'" elixir-mode elixir-mode) + ("\\.elixir\\'" elixir-mode elixir-mode) + ("\\.erl\\'" erlang erlang-mode) + ("\\.feature\\'" feature-mode feature-mode) + ("\\.go\\'" go-mode go-mode) + ("\\.groovy\\'" groovy-mode groovy-mode) + ("\\.haml\\'" haml-mode haml-mode) + ("\\.hs\\'" haskell-mode haskell-mode) + ("\\.json\\'" json-mode json-mode) + ("\\.kt\\'" kotlin-mode kotlin-mode) + ("\\.kv\\'" kivy-mode kivy-mode) + ("\\.latex\\'" auctex LaTeX-mode) + ("\\.less\\'" less-css-mode less-css-mode) + ("\\.lua\\'" lua-mode lua-mode) + ("\\.markdown\\'" markdown-mode markdown-mode) + ("\\.md\\'" markdown-mode markdown-mode) + ("\\.ml\\'" tuareg tuareg-mode) + ("\\.pp\\'" puppet-mode puppet-mode) + ("\\.php\\'" php-mode php-mode) + ("\\.proto\\'" protobuf-mode protobuf-mode) + ("\\.pyd\\'" cython-mode cython-mode) + ("\\.pyi\\'" cython-mode cython-mode) + ("\\.pyx\\'" cython-mode cython-mode) + ("PKGBUILD\\'" pkgbuild-mode pkgbuild-mode) + ("\\.rs\\'" rust-mode rust-mode) + ("\\.sass\\'" sass-mode sass-mode) + ("\\.scala\\'" scala-mode scala-mode) + ("\\.scss\\'" scss-mode scss-mode) + ("\\.slim\\'" slim-mode slim-mode) + ("\\.styl\\'" stylus-mode stylus-mode) + ("\\.swift\\'" swift-mode swift-mode) + ("\\.textile\\'" textile-mode textile-mode) + ("\\.thrift\\'" thrift thrift-mode) + ("\\.yml\\'" yaml-mode yaml-mode) + ("\\.yaml\\'" yaml-mode yaml-mode) + ("Dockerfile\\'" dockerfile-mode dockerfile-mode))) + +;; markdown-mode doesn't have autoloads for the auto-mode-alist +;; so we add them manually if it's already installed +(when (package-installed-p 'markdown-mode) + (add-to-list 'auto-mode-alist '("\\.markdown\\'" . gfm-mode)) + (add-to-list 'auto-mode-alist '("\\.md\\'" . gfm-mode))) + +(when (package-installed-p 'pkgbuild-mode) + (add-to-list 'auto-mode-alist '("PKGBUILD\\'" . pkgbuild-mode))) + +;; build auto-install mappings +(mapc + (lambda (entry) + (let ((extension (car entry)) + (package (cadr entry)) + (mode (cadr (cdr entry)))) + (unless (package-installed-p package) + (prelude-auto-install extension package mode)))) + prelude-auto-install-alist) + +(provide 'prelude-packages) +;; Local Variables: +;; byte-compile-warnings: (not cl-functions) +;; End: + +;;; prelude-packages.el ends here diff --git a/emacs/.emacs.d/core/prelude-ui.el b/emacs/.emacs.d/core/prelude-ui.el new file mode 100644 index 0000000..60051d1 --- /dev/null +++ b/emacs/.emacs.d/core/prelude-ui.el @@ -0,0 +1,92 @@ +;;; prelude-ui.el --- Emacs Prelude: UI optimizations and tweaks. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; We dispense with most of the point and click UI, reduce the startup noise, +;; configure smooth scolling and a nice theme that's easy on the eyes (zenburn). + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +;; the toolbar is just a waste of valuable screen estate +;; in a tty tool-bar-mode does not properly auto-load, and is +;; already disabled anyway +(when (fboundp 'tool-bar-mode) + (tool-bar-mode -1)) + +(menu-bar-mode -1) + +;; the blinking cursor is nothing, but an annoyance +(blink-cursor-mode -1) + +;; disable the annoying bell ring +(setq ring-bell-function 'ignore) + +;; disable startup screen +(setq inhibit-startup-screen t) + +;; nice scrolling +(setq scroll-margin 0 + scroll-conservatively 100000 + scroll-preserve-screen-position 1) + +;; mode line settings +(line-number-mode t) +(column-number-mode t) +(size-indication-mode t) + +;; enable y/n answers +(fset 'yes-or-no-p 'y-or-n-p) + +;; more useful frame title, that show either a file or a +;; buffer name (if the buffer isn't visiting a file) +(setq frame-title-format + '("" invocation-name " Prelude - " (:eval (if (buffer-file-name) + (abbreviate-file-name (buffer-file-name)) + "%b")))) + +;; use zenburn as the default theme +(when prelude-theme + (load-theme prelude-theme t)) + +(require 'smart-mode-line) +(setq sml/no-confirm-load-theme t) +;; delegate theming to the currently active theme +(setq sml/theme nil) +(add-hook 'after-init-hook #'sml/setup) + +;; show the cursor when moving after big movements in the window +(require 'beacon) +(beacon-mode +1) + +;; show available keybindings after you start typing +(require 'which-key) +(which-key-mode +1) + +(provide 'prelude-ui) +;;; prelude-ui.el ends here diff --git a/emacs/.emacs.d/init.el b/emacs/.emacs.d/init.el new file mode 100644 index 0000000..c77a359 --- /dev/null +++ b/emacs/.emacs.d/init.el @@ -0,0 +1,148 @@ +;;; init.el --- Prelude's configuration entry point. +;; +;; Copyright (c) 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: http://batsov.com/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; This file simply sets up the default load path and requires +;; the various modules defined within Emacs Prelude. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +;; Added by Package.el. This must come before configurations of +;; installed packages. Don't delete this line. If you don't want it, +;; just comment it out by adding a semicolon to the start of the line. +;; You may delete these explanatory comments. +;(package-initialize) + +(defvar current-user + (getenv + (if (equal system-type 'windows-nt) "USERNAME" "USER"))) + +(message "Prelude is powering up... Be patient, Master %s!" current-user) + +(when (version< emacs-version "24.4") + (error "Prelude requires at least GNU Emacs 24.4, but you're running %s" emacs-version)) + +;; Always load newest byte code +(setq load-prefer-newer t) + +(defvar prelude-dir (file-name-directory load-file-name) + "The root dir of the Emacs Prelude distribution.") +(defvar prelude-core-dir (expand-file-name "core" prelude-dir) + "The home of Prelude's core functionality.") +(defvar prelude-modules-dir (expand-file-name "modules" prelude-dir) + "This directory houses all of the built-in Prelude modules.") +(defvar prelude-personal-dir (expand-file-name "personal" prelude-dir) + "This directory is for your personal configuration. + +Users of Emacs Prelude are encouraged to keep their personal configuration +changes in this directory. All Emacs Lisp files there are loaded automatically +by Prelude.") +(defvar prelude-personal-preload-dir (expand-file-name "preload" prelude-personal-dir) + "This directory is for your personal configuration, that you want loaded before Prelude.") +(defvar prelude-vendor-dir (expand-file-name "vendor" prelude-dir) + "This directory houses packages that are not yet available in ELPA (or MELPA).") +(defvar prelude-savefile-dir (expand-file-name "savefile" prelude-dir) + "This folder stores all the automatically generated save/history-files.") +(defvar prelude-modules-file (expand-file-name "prelude-modules.el" prelude-dir) + "This files contains a list of modules that will be loaded by Prelude.") + +(unless (file-exists-p prelude-savefile-dir) + (make-directory prelude-savefile-dir)) + +(defun prelude-add-subfolders-to-load-path (parent-dir) + "Add all level PARENT-DIR subdirs to the `load-path'." + (dolist (f (directory-files parent-dir)) + (let ((name (expand-file-name f parent-dir))) + (when (and (file-directory-p name) + (not (string-prefix-p "." f))) + (add-to-list 'load-path name) + (prelude-add-subfolders-to-load-path name))))) + +;; add Prelude's directories to Emacs's `load-path' +(add-to-list 'load-path prelude-core-dir) +(add-to-list 'load-path prelude-modules-dir) +(add-to-list 'load-path prelude-vendor-dir) +(prelude-add-subfolders-to-load-path prelude-vendor-dir) + +;; reduce the frequency of garbage collection by making it happen on +;; each 50MB of allocated data (the default is on every 0.76MB) +(setq gc-cons-threshold 50000000) + +;; warn when opening files bigger than 100MB +(setq large-file-warning-threshold 100000000) + +;; preload the personal settings from `prelude-personal-preload-dir' +(when (file-exists-p prelude-personal-preload-dir) + (message "Loading personal configuration files in %s..." prelude-personal-preload-dir) + (mapc 'load (directory-files prelude-personal-preload-dir 't "^[^#\.].*el$"))) + +(message "Loading Prelude's core...") + +;; the core stuff +(require 'prelude-packages) +(require 'prelude-custom) ;; Needs to be loaded before core, editor and ui +(require 'prelude-ui) +(require 'prelude-core) +(require 'prelude-mode) +(require 'prelude-editor) +(require 'prelude-global-keybindings) + +;; OSX specific settings +(when (eq system-type 'darwin) + (require 'prelude-osx)) + +(message "Loading Prelude's modules...") + +;; the modules +(if (file-exists-p prelude-modules-file) + (load prelude-modules-file) + (message "Missing modules file %s" prelude-modules-file) + (message "You can get started by copying the bundled example file from sample/prelude-modules.el")) + +;; config changes made through the customize UI will be stored here +(setq custom-file (expand-file-name "custom.el" prelude-personal-dir)) + +;; load the personal settings (this includes `custom-file') +(when (file-exists-p prelude-personal-dir) + (message "Loading personal configuration files in %s..." prelude-personal-dir) + (mapc 'load (directory-files prelude-personal-dir 't "^[^#\.].*el$"))) + +(message "Prelude is ready to do thy bidding, Master %s!" current-user) + +;; Patch security vulnerability in Emacs versions older than 25.3 +(when (version< emacs-version "25.3") + (eval-after-load "enriched" + '(defun enriched-decode-display-prop (start end &optional param) + (list start end)))) + +(prelude-eval-after-init + ;; greet the use with some useful tip + (run-at-time 5 nil 'prelude-tip-of-the-day)) + +;;; init.el ends here diff --git a/emacs/.emacs.d/modules/doc/README.md b/emacs/.emacs.d/modules/doc/README.md new file mode 100644 index 0000000..d1025e5 --- /dev/null +++ b/emacs/.emacs.d/modules/doc/README.md @@ -0,0 +1,30 @@ +# Emacs Prelude Modules + +Prelude provides extra functionality through modules. Some modules may +require extra steps to enable all functionality. These steps and the +functionality provided by these modules are documented on the +following links. + +- C +- Clojure +- Coffee +- Common-Lisp +- CSS +- Emacs-Lisp +- [ERC](prelude-erc.md) +- Erlang +- Elixir +- Haskell +- JS +- Latex +- Lisp +- Markdown +- MediaWiki +- Org +- Perl +- [Python](prelude-python.md) +- Ruby +- Scala +- Scheme +- Scss +- Web diff --git a/emacs/.emacs.d/modules/doc/prelude-erc.md b/emacs/.emacs.d/modules/doc/prelude-erc.md new file mode 100644 index 0000000..5f61069 --- /dev/null +++ b/emacs/.emacs.d/modules/doc/prelude-erc.md @@ -0,0 +1,50 @@ +# Prelude ERC Quickstart + +## Customizing Server list + +If you want to join a list of servers on `M-x start-irc`, other than +the default list, please redefine the variable `my-fav-irc` as follows +in your personal config + +``` emacs-lisp +(setq my-fav-irc '("irc.freenode.net" + "irc.oftc.net" + "irc.mozilla.org" + "irc.gnome.org")) +``` + +## Customizing Last Quit Message + +If you want to customize your IRC Last Quit Message from *Asta la +vista* to something more funkier, please redefine `bye-irc-message` as +follows + +``` emacs-lisp +(setq bye-erc-message "adios") +``` + +## Reading NickServ passwords from auth-source plugin + +If you want to automatically authenticate while logging into IRC +servers set the `erc-prompt-for-password` to nil as follows + +``` emacs-lisp +(setq erc-prompt-for-password nil) +``` + +Now you can set password in plaintext in .authinfo file in the netRC +format or you it encrypted in .authinfo.gpg file after setting up gpg +in emacs + +## Opening all ERC buffers in a new perspective +Many a time when we start IRC with the `start-irc` command, all the +channels open in our existing workspace, which can be annoying to +some; especially to those who like to organize their buffers into +separate groups (perspectives). To avoid this scenario, it is better +to group all the ERC buffers into one perspective called `IRC` when +`start-irc` is called. To enable this set the `prelude-new-irc-persp` +variable to true as follows + +``` emacs-lisp +(setq prelude-new-irc-persp t) +``` diff --git a/emacs/.emacs.d/modules/doc/prelude-python.md b/emacs/.emacs.d/modules/doc/prelude-python.md new file mode 100644 index 0000000..8de3ff6 --- /dev/null +++ b/emacs/.emacs.d/modules/doc/prelude-python.md @@ -0,0 +1,18 @@ +# Prelude Python Quickstart + +## Python Mode + +Emacs comes with Python programming support through the built-in +Python-mode. Whenever you are editing Python code run `C-h m` to +look at the Python mode key bindings. Alternatively look at the +menu bar entries under Python. To toggle the menu bar press `F12`. + +## Syntax checking + +Prelude ships with [Flycheck](https://github.com/flycheck/flycheck), +an on the fly syntax checker. Flycheck has support for two Python +syntax checkers, [Pylint](http://www.pylint.org/) and +[Flake8](http://flake8.readthedocs.org/en/latest/). In +order to have Flycheck support on the fly syntax checking for +Python you need to have either of these installed and accessible to +Emacs. In order to manually choose a checker run `C-c ! s`. diff --git a/emacs/.emacs.d/modules/prelude-c.el b/emacs/.emacs.d/modules/prelude-c.el new file mode 100644 index 0000000..f71bf36 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-c.el @@ -0,0 +1,59 @@ +;;; prelude-c.el --- Emacs Prelude: cc-mode configuration. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for cc-mode and the modes derived from it. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-programming) + +(defun prelude-c-mode-common-defaults () + (setq c-default-style "k&r" + c-basic-offset 4) + (c-set-offset 'substatement-open 0)) + +(setq prelude-c-mode-common-hook 'prelude-c-mode-common-defaults) + +;; this will affect all modes derived from cc-mode, like +;; java-mode, php-mode, etc +(add-hook 'c-mode-common-hook (lambda () + (run-hooks 'prelude-c-mode-common-hook))) + +(defun prelude-makefile-mode-defaults () + (whitespace-toggle-options '(tabs)) + (setq indent-tabs-mode t )) + +(setq prelude-makefile-mode-hook 'prelude-makefile-mode-defaults) + +(add-hook 'makefile-mode-hook (lambda () + (run-hooks 'prelude-makefile-mode-hook))) +(provide 'prelude-c) + +;;; prelude-c.el ends here diff --git a/emacs/.emacs.d/modules/prelude-clojure.el b/emacs/.emacs.d/modules/prelude-clojure.el new file mode 100644 index 0000000..f15481c --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-clojure.el @@ -0,0 +1,66 @@ +;;; prelude-clojure.el --- Emacs Prelude: Clojure programming configuration. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: http://batsov.com/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for clojure-mode. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-lisp) +(prelude-require-packages '(clojure-mode cider)) + +(eval-after-load 'clojure-mode + '(progn + (defun prelude-clojure-mode-defaults () + (subword-mode +1) + (run-hooks 'prelude-lisp-coding-hook)) + + (setq prelude-clojure-mode-hook 'prelude-clojure-mode-defaults) + + (add-hook 'clojure-mode-hook (lambda () + (run-hooks 'prelude-clojure-mode-hook))))) + +(eval-after-load 'cider + '(progn + (setq nrepl-log-messages t) + + (add-hook 'cider-mode-hook 'eldoc-mode) + + (defun prelude-cider-repl-mode-defaults () + (subword-mode +1) + (run-hooks 'prelude-interactive-lisp-coding-hook)) + + (setq prelude-cider-repl-mode-hook 'prelude-cider-repl-mode-defaults) + + (add-hook 'cider-repl-mode-hook (lambda () + (run-hooks 'prelude-cider-repl-mode-hook))))) + +(provide 'prelude-clojure) + +;;; prelude-clojure.el ends here diff --git a/emacs/.emacs.d/modules/prelude-coffee.el b/emacs/.emacs.d/modules/prelude-coffee.el new file mode 100644 index 0000000..71353de --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-coffee.el @@ -0,0 +1,60 @@ +;;; prelude-coffee.el --- Emacs Prelude: CoffeeScript programming support. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; CoffeeScript is a nice little language that comples to JavaScript. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-programming) +(prelude-require-package 'coffee-mode) + +(eval-after-load 'coffee-mode + '(progn + ;; CoffeeScript uses two spaces. + (setq coffee-tab-width 2) + + ;; remove the "Generated by CoffeeScript" header + (add-to-list 'coffee-args-compile "--no-header") + + (defun prelude-coffee-mode-defaults () + ;; Update the already compiled js on save + (and (buffer-file-name) + (file-exists-p (buffer-file-name)) + (file-exists-p (coffee-compiled-file-name (buffer-file-name))) + (coffee-cos-mode t)) + (subword-mode +1)) + + (setq prelude-coffee-mode-hook 'prelude-coffee-mode-defaults) + + (add-hook 'coffee-mode-hook (lambda () + (run-hooks 'prelude-coffee-mode-hook))))) +(provide 'prelude-coffee) + +;;; prelude-coffee.el ends here diff --git a/emacs/.emacs.d/modules/prelude-common-lisp.el b/emacs/.emacs.d/modules/prelude-common-lisp.el new file mode 100644 index 0000000..4829f02 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-common-lisp.el @@ -0,0 +1,85 @@ +;;; prelude-common-lisp.el --- Emacs Prelude: lisp-mode and SLIME config. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Configuration for lisp-mode and SLIME. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-lisp) + +(prelude-require-package 'slime) + +;; the SBCL configuration file is in Common Lisp +(add-to-list 'auto-mode-alist '("\\.sbclrc\\'" . lisp-mode)) + +;; Open files with .cl extension in lisp-mode +(add-to-list 'auto-mode-alist '("\\.cl\\'" . lisp-mode)) + +;; a list of alternative Common Lisp implementations that can be +;; used with SLIME. Note that their presence render +;; inferior-lisp-program useless. This variable holds a list of +;; programs and if you invoke SLIME with a negative prefix +;; argument, M-- M-x slime, you can select a program from that list. +(setq slime-lisp-implementations + '((ccl ("ccl")) + (clisp ("clisp" "-q")) + (cmucl ("cmucl" "-quiet")) + (sbcl ("sbcl" "--noinform") :coding-system utf-8-unix))) + +;; select the default value from slime-lisp-implementations +(if (and (eq system-type 'darwin) + (executable-find "ccl")) + ;; default to Clozure CL on OS X + (setq slime-default-lisp 'ccl) + ;; default to SBCL on Linux and Windows + (setq slime-default-lisp 'sbcl)) + +;; Add fancy slime contribs +(setq slime-contribs '(slime-fancy slime-cl-indent)) + +(add-hook 'lisp-mode-hook (lambda () (run-hooks 'prelude-lisp-coding-hook))) +;; rainbow-delimeters messes up colors in slime-repl, and doesn't seem to work +;; anyway, so we won't use prelude-lisp-coding-defaults. +(add-hook 'slime-repl-mode-hook (lambda () + (smartparens-strict-mode +1) + (whitespace-mode -1))) + +(eval-after-load "slime" + '(progn + (setq slime-complete-symbol-function 'slime-fuzzy-complete-symbol + slime-fuzzy-completion-in-place t + slime-enable-evaluate-in-emacs t + slime-autodoc-use-multiline-p t + slime-auto-start 'always) + (define-key slime-mode-map (kbd "C-c C-s") 'slime-selector))) + +(provide 'prelude-common-lisp) + +;;; prelude-common-lisp.el ends here diff --git a/emacs/.emacs.d/modules/prelude-company.el b/emacs/.emacs.d/modules/prelude-company.el new file mode 100644 index 0000000..8b10441 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-company.el @@ -0,0 +1,48 @@ +;;; prelude-company.el --- company-mode setup +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; company-mode config. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: +(prelude-require-packages '(company)) + +(require 'company) + +(setq company-idle-delay 0.5) +(setq company-tooltip-limit 10) +(setq company-minimum-prefix-length 2) +;; invert the navigation direction if the the completion popup-isearch-match +;; is displayed on top (happens near the bottom of windows) +(setq company-tooltip-flip-when-above t) + +(global-company-mode 1) + +(provide 'prelude-company) +;;; prelude-company.el ends here diff --git a/emacs/.emacs.d/modules/prelude-css.el b/emacs/.emacs.d/modules/prelude-css.el new file mode 100644 index 0000000..aa90063 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-css.el @@ -0,0 +1,51 @@ +;;; prelude-css.el --- Emacs Prelude: css support +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: http://www.batsov.com/emacs-prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for css-mode. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(eval-after-load 'css-mode + '(progn + (prelude-require-packages '(rainbow-mode)) + + (setq css-indent-offset 2) + + (defun prelude-css-mode-defaults () + (rainbow-mode +1) + (run-hooks 'prelude-prog-mode-hook)) + + (setq prelude-css-mode-hook 'prelude-css-mode-defaults) + + (add-hook 'css-mode-hook (lambda () + (run-hooks 'prelude-css-mode-hook))))) + +(provide 'prelude-css) +;;; prelude-css.el ends here diff --git a/emacs/.emacs.d/modules/prelude-elixir.el b/emacs/.emacs.d/modules/prelude-elixir.el new file mode 100644 index 0000000..6e09dec --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-elixir.el @@ -0,0 +1,40 @@ +;;; prelude-elixir.el --- Emacs Prelude: Elixir programming support. +;; +;; Copyright © 2014-2017 Samuel Tonini +;; +;; Author: Samuel Tonini +;; Version: 1.0.0 +;; Keywords: convenience elixir + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for Elixir development. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-programming) + +(prelude-require-packages '(elixir-mode alchemist)) + +(provide 'prelude-elixir) + +;;; prelude-elixir.el ends here diff --git a/emacs/.emacs.d/modules/prelude-emacs-lisp.el b/emacs/.emacs.d/modules/prelude-emacs-lisp.el new file mode 100644 index 0000000..f80a02f --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-emacs-lisp.el @@ -0,0 +1,120 @@ +;;; prelude-emacs-lisp.el --- Emacs Prelude: Nice config for Elisp programming. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience +;; Package-Requires: ((prelude-lisp "1.0.0")) + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Nice config for Elisp Programming. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-lisp) +(require 'crux) + +(prelude-require-packages '(elisp-slime-nav rainbow-mode)) + +(defun prelude-recompile-elc-on-save () + "Recompile your elc when saving an elisp file." + (add-hook 'after-save-hook + (lambda () + (when (and + (string-prefix-p prelude-dir (file-truename buffer-file-name)) + (file-exists-p (byte-compile-dest-file buffer-file-name))) + (emacs-lisp-byte-compile))) + nil + t)) + +(defun prelude-visit-ielm () + "Switch to default `ielm' buffer. +Start `ielm' if it's not already running." + (interactive) + (crux-start-or-switch-to 'ielm "*ielm*")) + +(define-key emacs-lisp-mode-map (kbd "C-c C-z") 'prelude-visit-ielm) +(define-key emacs-lisp-mode-map (kbd "C-c C-c") 'eval-defun) +(define-key emacs-lisp-mode-map (kbd "C-c C-b") 'eval-buffer) + +(defun prelude-conditional-emacs-lisp-checker () + "Don't check doc style in Emacs Lisp test files." + (let ((file-name (buffer-file-name))) + (when (and file-name (string-match-p ".*-tests?\\.el\\'" file-name)) + (setq-local flycheck-checkers '(emacs-lisp))))) + +(defun prelude-emacs-lisp-mode-defaults () + "Sensible defaults for `emacs-lisp-mode'." + (run-hooks 'prelude-lisp-coding-hook) + (eldoc-mode +1) + (prelude-recompile-elc-on-save) + (rainbow-mode +1) + (setq mode-name "EL") + (prelude-conditional-emacs-lisp-checker)) + +(setq prelude-emacs-lisp-mode-hook 'prelude-emacs-lisp-mode-defaults) + +(add-hook 'emacs-lisp-mode-hook (lambda () + (run-hooks 'prelude-emacs-lisp-mode-hook))) + +(add-to-list 'auto-mode-alist '("Cask\\'" . emacs-lisp-mode)) + +;; ielm is an interactive Emacs Lisp shell +(defun prelude-ielm-mode-defaults () + "Sensible defaults for `ielm'." + (run-hooks 'prelude-interactive-lisp-coding-hook) + (eldoc-mode +1)) + +(setq prelude-ielm-mode-hook 'prelude-ielm-mode-defaults) + +(add-hook 'ielm-mode-hook (lambda () + (run-hooks 'prelude-ielm-mode-hook))) + +(eval-after-load "elisp-slime-nav" + '(diminish 'elisp-slime-nav-mode)) +(eval-after-load "rainbow-mode" + '(diminish 'rainbow-mode)) +(eval-after-load "eldoc" + '(diminish 'eldoc-mode)) + +(eval-after-load "ielm" + '(progn + (define-key ielm-map (kbd "M-(") (prelude-wrap-with "(")) + (define-key ielm-map (kbd "M-\"") (prelude-wrap-with "\"")))) + +;; enable elisp-slime-nav-mode +(dolist (hook '(emacs-lisp-mode-hook ielm-mode-hook)) + (add-hook hook 'elisp-slime-nav-mode)) + +(defun conditionally-enable-smartparens-mode () + "Enable `smartparens-mode' in the minibuffer, during `eval-expression'." + (if (eq this-command 'eval-expression) + (smartparens-mode 1))) + +(add-hook 'minibuffer-setup-hook 'conditionally-enable-smartparens-mode) + +(provide 'prelude-emacs-lisp) + +;;; prelude-emacs-lisp.el ends here diff --git a/emacs/.emacs.d/modules/prelude-erc.el b/emacs/.emacs.d/modules/prelude-erc.el new file mode 100644 index 0000000..701009c --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-erc.el @@ -0,0 +1,162 @@ +;;; prelude-erc.el --- Emacs Prelude: ERC mode configuration. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for ERC mode, which should make your +;; IRC experience a bit more pleasant. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'erc) +(require 'erc-log) +(require 'erc-notify) +(require 'erc-spelling) +(require 'erc-autoaway) + +;; Interpret mIRC-style color commands in IRC chats +(setq erc-interpret-mirc-color t) + +;; The following are commented out by default, but users of other +;; non-Emacs IRC clients might find them useful. +;; Kill buffers for channels after /part +(setq erc-kill-buffer-on-part t) +;; Kill buffers for private queries after quitting the server +(setq erc-kill-queries-on-quit t) +;; Kill buffers for server messages after quitting the server +(setq erc-kill-server-buffer-on-quit t) + +;; open query buffers in the current window +(setq erc-query-display 'buffer) + +;; exclude boring stuff from tracking +(erc-track-mode t) +(setq erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "MODE" + "324" "329" "332" "333" "353" "477")) + +;; logging +(setq erc-log-channels-directory "~/.erc/logs/") + +(if (not (file-exists-p erc-log-channels-directory)) + (mkdir erc-log-channels-directory t)) + +(setq erc-save-buffer-on-part t) +;; FIXME - this advice is wrong and is causing problems on Emacs exit +;; (defadvice save-buffers-kill-emacs (before save-logs (arg) activate) +;; (save-some-buffers t (lambda () (when (eq major-mode 'erc-mode) t)))) + +;; truncate long irc buffers +(erc-truncate-mode +1) + +;; enable spell checking +(when prelude-flyspell + (erc-spelling-mode 1)) +;; set different dictionaries by different servers/channels +;;(setq erc-spelling-dictionaries '(("#emacs" "american"))) + +(defvar erc-notify-nick-alist nil + "Alist of nicks and the last time they tried to trigger a +notification") + +(defvar erc-notify-timeout 10 + "Number of seconds that must elapse between notifications from +the same person.") + +(defun erc-notify-allowed-p (nick &optional delay) + "Return non-nil if a notification should be made for NICK. +If DELAY is specified, it will be the minimum time in seconds +that can occur between two notifications. The default is +`erc-notify-timeout'." + (unless delay (setq delay erc-notify-timeout)) + (let ((cur-time (time-to-seconds (current-time))) + (cur-assoc (assoc nick erc-notify-nick-alist)) + (last-time nil)) + (if cur-assoc + (progn + (setq last-time (cdr cur-assoc)) + (setcdr cur-assoc cur-time) + (> (abs (- cur-time last-time)) delay)) + (push (cons nick cur-time) erc-notify-nick-alist) + t))) + +;; autoaway setup +(setq erc-auto-discard-away t) +(setq erc-autoaway-idle-seconds 600) +(setq erc-autoaway-use-emacs-idle t) + +;; utf-8 always and forever +(setq erc-server-coding-system '(utf-8 . utf-8)) + + +(defvar my-fav-irc '( "irc.freenode.net" ) + "Stores the list of IRC servers that you want to connect to with start-irc.") + +(defvar bye-irc-message "Asta la vista" + "Message string to be sent while quitting IRC.") + +(defcustom prelude-new-irc-persp nil + "True (t) means start IRC in new perspective." + :type 'boolean + :require 'prelude-erc + :group 'prelude) + +(defun connect-to-erc (server) + "Connects securely to IRC SERVER over TLS at port 6697." + (erc-tls :server server + :port 6697 + :nick erc-nick )) + +(defun start-irc () + "Connect to IRC?" + (interactive) + (when (y-or-n-p "Do you want to start IRC? ") + (when prelude-new-irc-persp + (persp-switch "IRC")) + (mapcar 'connect-to-erc my-fav-irc))) + +(defun filter-server-buffers () + (delq nil + (mapcar + (lambda (x) (and (erc-server-buffer-p x) x)) + (buffer-list)))) + +(defun stop-irc () + "Disconnects from all irc servers." + (interactive) + (when prelude-new-irc-persp + (persp-switch "IRC")) + (dolist (buffer (filter-server-buffers)) + (message "Server buffer: %s" (buffer-name buffer)) + (with-current-buffer buffer + (erc-quit-server bye-irc-message))) + (when prelude-new-irc-persp + (persp-kill "IRC"))) + +(provide 'prelude-erc) + +;;; prelude-erc.el ends here diff --git a/emacs/.emacs.d/modules/prelude-erlang.el b/emacs/.emacs.d/modules/prelude-erlang.el new file mode 100644 index 0000000..edc4a7d --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-erlang.el @@ -0,0 +1,60 @@ +;;; prelude-erlang.el --- Emacs Prelude: Erlang programming support. +;; +;; Copyright © 2011-2017 Gleb Peregud +;; +;; Author: Gleb Peregud +;; Version: 1.0.0 +;; Keywords: convenience erlang + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Erlang is a concurrent functional language. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-programming) +(prelude-require-packages '(erlang)) + +(defcustom wrangler-path nil + "The location of wrangler elisp directory." + :group 'prelude-erlang + :type 'string + :safe 'stringp) + +(require 'projectile) + +(when (require 'erlang-start nil t) + + (eval-after-load 'erlang-mode + '(progn + (flymake-mode))) + + (when (not (null wrangler-path)) + (add-to-list 'load-path wrangler-path) + (require 'wrangler))) + +(add-hook 'erlang-mode-hook (lambda () + (setq erlang-compile-function 'projectile-compile-project))) + +(provide 'prelude-erlang) + +;;; prelude-erlang.el ends here diff --git a/emacs/.emacs.d/modules/prelude-evil.el b/emacs/.emacs.d/modules/prelude-evil.el new file mode 100644 index 0000000..0f8bd7c --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-evil.el @@ -0,0 +1,152 @@ +;;; prelude-evil.el --- Emacs Prelude: evil-mode configuration. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: http://batsov.com/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for evil-mode. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +;;; goto-chg lets you use the g-; and g-, to go to recent changes +;;; evil-visualstar enables searching visual selection with * +;;; evil-numbers enables vim style numeric incrementing and decrementing + +(prelude-require-packages '(evil goto-chg evil-surround evil-visualstar evil-numbers)) + +(require 'evil-visualstar) + +(setq evil-mode-line-format 'before) + +(setq evil-emacs-state-cursor '("red" box)) +(setq evil-normal-state-cursor '("gray" box)) +(setq evil-visual-state-cursor '("gray" box)) +(setq evil-insert-state-cursor '("gray" bar)) +(setq evil-motion-state-cursor '("gray" box)) + +;; prevent esc-key from translating to meta-key in terminal mode +(setq evil-esc-delay 0) + +(evil-mode 1) +(global-evil-surround-mode 1) + +(define-key evil-normal-state-map (kbd "C-A") + 'evil-numbers/inc-at-pt) +(define-key evil-normal-state-map (kbd "C-S-A") + 'evil-numbers/dec-at-pt) + +;; +;; Other useful Commands +;; +(evil-ex-define-cmd "W" 'evil-write-all) +(evil-ex-define-cmd "Tree" 'speedbar-get-focus) +(evil-ex-define-cmd "linum" 'linum-mode) +(evil-ex-define-cmd "Align" 'align-regexp) + +(defun prelude-yank-to-end-of-line () + "Yank to end of line." + (interactive) + (evil-yank (point) (point-at-eol))) + +(define-key evil-normal-state-map + (kbd "Y") 'prelude-yank-to-end-of-line) + +(defun prelude-shift-left-visual () + "Shift left and restore visual selection." + (interactive) + (evil-shift-left (region-beginning) (region-end)) + (evil-normal-state) + (evil-visual-restore)) + +(defun prelude-shift-right-visual () + "Shift right and restore visual selection." + (interactive) + (evil-shift-right (region-beginning) (region-end)) + (evil-normal-state) + (evil-visual-restore)) + +(define-key evil-visual-state-map (kbd ">") 'prelude-shift-right-visual) +(define-key evil-visual-state-map (kbd "<") 'prelude-shift-left-visual) + +;; Scrolling +(defun prelude-evil-scroll-down-other-window () + (interactive) + (scroll-other-window)) + +(defun prelude-evil-scroll-up-other-window () + (interactive) + (scroll-other-window '-)) + +(define-key evil-normal-state-map + (kbd "C-S-d") 'prelude-evil-scroll-down-other-window) + +(define-key evil-normal-state-map + (kbd "C-S-u") 'prelude-evil-scroll-up-other-window) + +;; +;; Magit from avsej +;; +(evil-add-hjkl-bindings magit-log-mode-map 'emacs) +(evil-add-hjkl-bindings magit-commit-mode-map 'emacs) +(evil-add-hjkl-bindings magit-branch-manager-mode-map 'emacs + "K" 'magit-discard + "L" 'magit-log-popup) +(evil-add-hjkl-bindings magit-status-mode-map 'emacs + "K" 'magit-discard + "l" 'magit-log-popup + "h" 'magit-diff-toggle-refine-hunk) + +(setq evil-shift-width 2) + +;;; enable avy with evil-mode +(define-key evil-normal-state-map (kbd "SPC") 'avy-goto-word-1) + +;;; snagged from Eric S. Fraga +;;; http://lists.gnu.org/archive/html/emacs-orgmode/2012-05/msg00153.html +(defun prelude-evil-key-bindings-for-org () + ;;(message "Defining evil key bindings for org") + (evil-declare-key 'normal org-mode-map + "gk" 'outline-up-heading + "gj" 'outline-next-visible-heading + "H" 'org-beginning-of-line ; smarter behaviour on headlines etc. + "L" 'org-end-of-line ; smarter behaviour on headlines etc. + "t" 'org-todo ; mark a TODO item as DONE + ",c" 'org-cycle + (kbd "TAB") 'org-cycle + ",e" 'org-export-dispatch + ",n" 'outline-next-visible-heading + ",p" 'outline-previous-visible-heading + ",t" 'org-set-tags-command + ",u" 'outline-up-heading + "$" 'org-end-of-line ; smarter behaviour on headlines etc. + "^" 'org-beginning-of-line ; ditto + "-" 'org-ctrl-c-minus ; change bullet style + "<" 'org-metaleft ; out-dent + ">" 'org-metaright ; indent + )) +(prelude-evil-key-bindings-for-org) +(provide 'prelude-evil) diff --git a/emacs/.emacs.d/modules/prelude-go.el b/emacs/.emacs.d/modules/prelude-go.el new file mode 100644 index 0000000..d711445 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-go.el @@ -0,0 +1,84 @@ +;;; prelude-go.el --- Emacs Prelude: Go programming support. +;; +;; Author: Doug MacEachern +;; Version: 1.0.0 +;; Keywords: convenience go + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Prelude configuration for Go + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-programming) + +(prelude-require-packages '(go-mode + company-go + go-eldoc + go-projectile + gotest)) + +(require 'go-projectile) + +;; Ignore go test -c output files +(add-to-list 'completion-ignored-extensions ".test") + +(define-key 'help-command (kbd "G") 'godoc) + +(eval-after-load 'go-mode + '(progn + (defun prelude-go-mode-defaults () + ;; Add to default go-mode key bindings + (let ((map go-mode-map)) + (define-key map (kbd "C-c a") 'go-test-current-project) ;; current package, really + (define-key map (kbd "C-c m") 'go-test-current-file) + (define-key map (kbd "C-c .") 'go-test-current-test) + (define-key map (kbd "C-c b") 'go-run) + (define-key map (kbd "C-h f") 'godoc-at-point)) + + ;; Prefer goimports to gofmt if installed + (let ((goimports (executable-find "goimports"))) + (when goimports + (setq gofmt-command goimports))) + + ;; gofmt on save + (add-hook 'before-save-hook 'gofmt-before-save nil t) + + ;; stop whitespace being highlighted + (whitespace-toggle-options '(tabs)) + + ;; Company mode settings + (set (make-local-variable 'company-backends) '(company-go)) + + ;; El-doc for Go + (go-eldoc-setup) + + ;; CamelCase aware editing operations + (subword-mode +1)) + + (setq prelude-go-mode-hook 'prelude-go-mode-defaults) + + (add-hook 'go-mode-hook (lambda () + (run-hooks 'prelude-go-mode-hook))))) + +(provide 'prelude-go) +;;; prelude-go.el ends here diff --git a/emacs/.emacs.d/modules/prelude-haskell.el b/emacs/.emacs.d/modules/prelude-haskell.el new file mode 100644 index 0000000..d3f3b65 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-haskell.el @@ -0,0 +1,53 @@ +;;; prelude-haskell.el --- Emacs Prelude: Nice config for Haskell programming. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Nice config for Haskell programming. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-programming) +(prelude-require-packages '(haskell-mode)) + +(eval-after-load 'haskell-mode + '(progn + (defun prelude-haskell-mode-defaults () + (subword-mode +1) + (eldoc-mode +1) + (haskell-indentation-mode +1) + (interactive-haskell-mode +1)) + + (setq prelude-haskell-mode-hook 'prelude-haskell-mode-defaults) + + (add-hook 'haskell-mode-hook (lambda () + (run-hooks 'prelude-haskell-mode-hook))))) + +(provide 'prelude-haskell) + +;;; prelude-haskell.el ends here diff --git a/emacs/.emacs.d/modules/prelude-helm-everywhere.el b/emacs/.emacs.d/modules/prelude-helm-everywhere.el new file mode 100644 index 0000000..49c739d --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-helm-everywhere.el @@ -0,0 +1,72 @@ +;;; prelude-helm-everywhere.el --- Enable Helm everywhere +;; +;; Copyright © 2014-2017 Tu, Do Hoang +;; +;; Author: Tu, Do Hoang (tuhdo1710@gmail.com) +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Enable Helm everywhere with global key bindings to replace common +;; global bindings and `helm-mode' is activated to replace `completing-read' +;; with `helm-completing-read-default', so users can use Helm with every prompt. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: +(require 'prelude-helm) +(prelude-require-packages '(helm-descbinds helm-ag)) +(require 'helm-eshell) + +(global-set-key (kbd "M-x") 'helm-M-x) +(global-set-key (kbd "C-x C-m") 'helm-M-x) +(global-set-key (kbd "M-y") 'helm-show-kill-ring) +(global-set-key (kbd "C-x b") 'helm-mini) +(global-set-key (kbd "C-x C-b") 'helm-buffers-list) +(global-set-key (kbd "C-x C-f") 'helm-find-files) +(global-set-key (kbd "C-h f") 'helm-apropos) +(global-set-key (kbd "C-h r") 'helm-info-emacs) +(global-set-key (kbd "C-h C-l") 'helm-locate-library) +(define-key prelude-mode-map (kbd "C-c f") 'helm-recentf) + +(define-key minibuffer-local-map (kbd "C-c C-l") 'helm-minibuffer-history) + +(define-key isearch-mode-map (kbd "C-o") 'helm-occur-from-isearch) + +;; shell history. +(define-key shell-mode-map (kbd "C-c C-l") 'helm-comint-input-ring) + +;; use helm to list eshell history +(add-hook 'eshell-mode-hook + #'(lambda () + (substitute-key-definition 'eshell-list-history 'helm-eshell-history eshell-mode-map))) + +(substitute-key-definition 'find-tag 'helm-etags-select global-map) +(setq projectile-completion-system 'helm) +(helm-descbinds-mode) +(helm-mode 1) + +;; enable Helm version of Projectile with replacment commands +(helm-projectile-on) + +(provide 'prelude-helm-everywhere) +;; prelude-helm-everywhere.el ends here. diff --git a/emacs/.emacs.d/modules/prelude-helm.el b/emacs/.emacs.d/modules/prelude-helm.el new file mode 100644 index 0000000..253484e --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-helm.el @@ -0,0 +1,67 @@ +;;; prelude-helm.el --- Helm setup +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some configuration for Helm following this guide: +;; http://tuhdo.github.io/helm-intro.html + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(prelude-require-packages '(helm helm-projectile)) + +(require 'helm-config) +(require 'helm-projectile) + +(when (executable-find "curl") + (setq helm-google-suggest-use-curl-p t)) + +;; See https://github.com/bbatsov/prelude/pull/670 for a detailed +;; discussion of these options. +(setq helm-split-window-in-side-p t + helm-buffers-fuzzy-matching t + helm-move-to-line-cycle-in-source t + helm-ff-search-library-in-sexp t + helm-ff-file-name-history-use-recentf t) + +;; The default "C-x c" is quite close to "C-x C-c", which quits Emacs. +;; Changed to "C-c h". Note: We must set "C-c h" globally, because we +;; cannot change `helm-command-prefix-key' once `helm-config' is loaded. +(global-set-key (kbd "C-c h") 'helm-command-prefix) +(global-unset-key (kbd "C-x c")) + +(define-key helm-command-map (kbd "o") 'helm-occur) +(define-key helm-command-map (kbd "g") 'helm-do-grep) +(define-key helm-command-map (kbd "C-c w") 'helm-wikipedia-suggest) +(define-key helm-command-map (kbd "SPC") 'helm-all-mark-rings) + +(push "Press to navigate a project in Helm." prelude-tips) + +(provide 'prelude-helm) + +;;; prelude-helm.el ends here diff --git a/emacs/.emacs.d/modules/prelude-ido.el b/emacs/.emacs.d/modules/prelude-ido.el new file mode 100644 index 0000000..768bf74 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-ido.el @@ -0,0 +1,64 @@ +;;; prelude-ido.el --- Ido setup +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Ido-related config. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: +(prelude-require-packages '(flx-ido ido-completing-read+ smex)) + +(require 'ido) +(require 'ido-completing-read+) +(require 'flx-ido) + +(setq ido-enable-prefix nil + ido-enable-flex-matching t + ido-create-new-buffer 'always + ido-use-filename-at-point 'guess + ido-max-prospects 10 + ido-save-directory-list-file (expand-file-name "ido.hist" prelude-savefile-dir) + ido-default-file-method 'selected-window + ido-auto-merge-work-directories-length -1) +(ido-mode +1) +(ido-ubiquitous-mode +1) + +;;; smarter fuzzy matching for ido +(flx-ido-mode +1) +;; disable ido faces to see flx highlights +(setq ido-use-faces nil) + +;;; smex, remember recently and most frequently used commands +(require 'smex) +(setq smex-save-file (expand-file-name ".smex-items" prelude-savefile-dir)) +(smex-initialize) +(global-set-key (kbd "M-x") 'smex) +(global-set-key (kbd "M-X") 'smex-major-mode-commands) + +(provide 'prelude-ido) +;;; prelude-ido.el ends here diff --git a/emacs/.emacs.d/modules/prelude-ivy.el b/emacs/.emacs.d/modules/prelude-ivy.el new file mode 100644 index 0000000..8ecea2f --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-ivy.el @@ -0,0 +1,70 @@ +;;; prelude-ivy.el --- Ivy setup +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Ivy-related config. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: +(prelude-require-packages '(ivy swiper counsel)) + +;; ivy is a powerful alternative to the popular ido-mode + +(require 'ivy) + +(ivy-mode 1) +(setq ivy-use-virtual-buffers t) +(setq enable-recursive-minibuffers t) +(global-set-key (kbd "C-c C-r") 'ivy-resume) +(global-set-key (kbd "") 'ivy-resume) + +(setq projectile-completion-system 'ivy) + +;; swiper provides enhanced buffer search + +(global-set-key "\C-s" 'swiper) + + +;; counsel supercharges a lot of commands with some ivy magic + +(global-set-key (kbd "M-x") 'counsel-M-x) +(global-set-key (kbd "C-x C-f") 'counsel-find-file) +(global-set-key (kbd " f") 'counsel-describe-function) +(global-set-key (kbd " v") 'counsel-describe-variable) +(global-set-key (kbd " l") 'counsel-find-library) +(global-set-key (kbd " i") 'counsel-info-lookup-symbol) +(global-set-key (kbd " u") 'counsel-unicode-char) +(global-set-key (kbd "C-c g") 'counsel-git) +(global-set-key (kbd "C-c j") 'counsel-git-grep) +(global-set-key (kbd "C-c k") 'counsel-ag) +(global-set-key (kbd "C-x l") 'counsel-locate) +(define-key minibuffer-local-map (kbd "C-r") 'counsel-minibuffer-history) + + +(provide 'prelude-ivy) +;;; prelude-ivy.el ends here diff --git a/emacs/.emacs.d/modules/prelude-js.el b/emacs/.emacs.d/modules/prelude-js.el new file mode 100644 index 0000000..fd46dca --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-js.el @@ -0,0 +1,58 @@ +;;; prelude-js.el --- Emacs Prelude: js-mode configuration. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for js-mode. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-programming) +(prelude-require-packages '(js2-mode json-mode)) + +(require 'js2-mode) + +(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode)) +(add-to-list 'auto-mode-alist '("\\.pac\\'" . js2-mode)) +(add-to-list 'interpreter-mode-alist '("node" . js2-mode)) + +(eval-after-load 'js2-mode + '(progn + (defun prelude-js-mode-defaults () + ;; electric-layout-mode doesn't play nice with smartparens + (setq-local electric-layout-rules '((?\; . after))) + (setq mode-name "JS2") + (js2-imenu-extras-mode +1)) + + (setq prelude-js-mode-hook 'prelude-js-mode-defaults) + + (add-hook 'js2-mode-hook (lambda () (run-hooks 'prelude-js-mode-hook))))) + +(provide 'prelude-js) + +;;; prelude-js.el ends here diff --git a/emacs/.emacs.d/modules/prelude-key-chord.el b/emacs/.emacs.d/modules/prelude-key-chord.el new file mode 100644 index 0000000..814f4cc --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-key-chord.el @@ -0,0 +1,60 @@ +;;; prelude-key-chord.el --- Key chord setup +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Configure key-chord key bindings. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: +(prelude-require-package 'key-chord) + +(require 'key-chord) + +(key-chord-define-global "jj" 'avy-goto-word-1) +(key-chord-define-global "jl" 'avy-goto-line) +(key-chord-define-global "jk" 'avy-goto-char) +(key-chord-define-global "JJ" 'crux-switch-to-previous-buffer) +(key-chord-define-global "uu" 'undo-tree-visualize) +(key-chord-define-global "xx" 'execute-extended-command) +(key-chord-define-global "yy" 'browse-kill-ring) + +(defvar key-chord-tips '("Press quickly to jump to the beginning of a visible word." + "Press quickly to jump to a visible line." + "Press quickly to jump to a visible character." + "Press quickly to switch to previous buffer." + "Press quickly to visualize the undo tree." + "Press quickly to execute extended command." + "Press quickly to browse the kill ring.")) + +(setq prelude-tips (append prelude-tips key-chord-tips)) + +(key-chord-mode +1) + +(provide 'prelude-key-chord) + +;;; prelude-key-chord.el ends here diff --git a/emacs/.emacs.d/modules/prelude-latex.el b/emacs/.emacs.d/modules/prelude-latex.el new file mode 100644 index 0000000..3ae0af3 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-latex.el @@ -0,0 +1,93 @@ +;;; prelude-latex.el --- Emacs Prelude: Sane setup for LaTeX writers. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Nice defaults for the premium LaTeX editing mode auctex. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(prelude-require-packages '(auctex cdlatex)) +(require 'smartparens-latex) +;; for case +(require 'cl) + +(eval-after-load "company" + '(progn + (prelude-require-packages '(company-auctex)) + (company-auctex-init))) + +(defcustom prelude-latex-fast-math-entry 'LaTeX-math-mode + "Method used for fast math symbol entry in LaTeX." + :link '(function-link :tag "AUCTeX Math Mode" LaTeX-math-mode) + :link '(emacs-commentary-link :tag "CDLaTeX" "cdlatex.el") + :group 'prelude + :type '(choice (const :tag "None" nil) + (const :tag "AUCTeX Math Mode" LaTeX-math-mode) + (const :tag "CDLaTeX" cdlatex))) + +;; AUCTeX configuration +(setq TeX-auto-save t) +(setq TeX-parse-self t) +(setq TeX-close-quote "") +(setq TeX-open-quote "") + +(setq-default TeX-master nil) + +;; use pdflatex +(setq TeX-PDF-mode t) + +;; sensible defaults for OS X, other OSes should be covered out-of-the-box +(when (eq system-type 'darwin) + (setq TeX-view-program-selection + '((output-dvi "DVI Viewer") + (output-pdf "PDF Viewer") + (output-html "HTML Viewer"))) + + (setq TeX-view-program-list + '(("DVI Viewer" "open %o") + ("PDF Viewer" "open %o") + ("HTML Viewer" "open %o")))) + +(defun prelude-latex-mode-defaults () + "Default Prelude hook for `LaTeX-mode'." + (turn-on-auto-fill) + (abbrev-mode +1) + (smartparens-mode +1) + (case prelude-latex-fast-math-entry + (LaTeX-math-mode (LaTeX-math-mode 1)) + (cdlatex (turn-on-cdlatex)))) + +(setq prelude-latex-mode-hook 'prelude-latex-mode-defaults) + +(add-hook 'LaTeX-mode-hook (lambda () + (run-hooks 'prelude-latex-mode-hook))) + +(provide 'prelude-latex) + +;;; prelude-latex.el ends here diff --git a/emacs/.emacs.d/modules/prelude-lisp.el b/emacs/.emacs.d/modules/prelude-lisp.el new file mode 100644 index 0000000..65ca528 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-lisp.el @@ -0,0 +1,64 @@ +;;; prelude-lisp.el --- Emacs Prelude: Configuration common to all lisp modes. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Configuration shared between all modes related to lisp-like languages. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-programming) +(prelude-require-packages '(rainbow-delimiters)) + +;; Lisp configuration +(define-key read-expression-map (kbd "TAB") 'completion-at-point) + +;; wrap keybindings +(define-key lisp-mode-shared-map (kbd "M-(") (prelude-wrap-with "(")) +;; FIXME: Pick terminal-friendly binding. +;;(define-key lisp-mode-shared-map (kbd "M-[") (prelude-wrap-with "[")) +(define-key lisp-mode-shared-map (kbd "M-\"") (prelude-wrap-with "\"")) + +;; a great lisp coding hook +(defun prelude-lisp-coding-defaults () + (smartparens-strict-mode +1) + (rainbow-delimiters-mode +1)) + +(setq prelude-lisp-coding-hook 'prelude-lisp-coding-defaults) + +;; interactive modes don't need whitespace checks +(defun prelude-interactive-lisp-coding-defaults () + (smartparens-strict-mode +1) + (rainbow-delimiters-mode +1) + (whitespace-mode -1)) + +(setq prelude-interactive-lisp-coding-hook 'prelude-interactive-lisp-coding-defaults) + +(provide 'prelude-lisp) + +;;; prelude-lisp.el ends here diff --git a/emacs/.emacs.d/modules/prelude-mediawiki.el b/emacs/.emacs.d/modules/prelude-mediawiki.el new file mode 100644 index 0000000..5796ad9 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-mediawiki.el @@ -0,0 +1,47 @@ +;;; prelude-mediawiki.el --- Emacs Prelude: mediawiki editing config +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Basic configs for access to WikEmacs and Wikipedia. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(prelude-require-packages '(mediawiki)) + +(eval-after-load 'mediawiki + '(progn + (setq mediawiki-site-alist '(("Wikipedia" "http://en.wikipedia.org/w" "" "" "Main Page") + ("WikEmacs" "http://wikemacs.org/w/" "" "" "Main Page"))) + + ;; Emacs users care more for WikEmacs than Wikipedia :-) + (setq mediawiki-site-default "WikEmacs"))) + +(provide 'prelude-mediawiki) + +;;; prelude-mediawiki.el ends here diff --git a/emacs/.emacs.d/modules/prelude-ocaml.el b/emacs/.emacs.d/modules/prelude-ocaml.el new file mode 100644 index 0000000..a354d48 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-ocaml.el @@ -0,0 +1,92 @@ +;;; prelude-ocaml.el --- Emacs Prelude: decent Perl coding settings. +;; +;; Copyright © 2014-2017 Geoff Shannon +;; +;; Author: Geoff Shannon +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; tuareg is the preferred ocaml mode for Emacs + +;; These setups for ocaml assume that you are using the OPAM package +;; manager (http://opam.ocaml.org/). + +;; Because of the apparent complexity of getting emacs environment +;; variables setup to use opam correctly, it is instead easier to use +;; opam itself to execute any necessary commands. + +;; Also, the standard OCaml toplevel usage has been replaced in favor +;; of UTOP, the universal toplevel, and we assume that you are using +;; the Jane Street Core libraries rather than the regular OCaml +;; standard libraries + +;; The minimum required setup for using Prelude's OCaml setup would be +;; to install OPAM, and then, minimally `opam install core utop'. A +;; good getting started guide is available at +;; https://github.com/realworldocaml/book/wiki/Installation-Instructions + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(prelude-require-packages '(tuareg utop merlin flycheck-ocaml)) + +(require 'tuareg) +(require 'utop) +(require 'merlin) + +(setq auto-mode-alist + (append '(("\\.ml[ily]?\\'" . tuareg-mode) + ("\\.topml\\'" . tuareg-mode)) + auto-mode-alist)) + +(with-eval-after-load 'merlin + ;; Disable Merlin's own error checking + (setq merlin-error-after-save nil) + + ;; Enable Flycheck checker + (flycheck-ocaml-setup)) + +(add-hook 'tuareg-mode-hook #'utop-minor-mode) +(add-hook 'tuareg-mode-hook #'merlin-mode) + +(add-hook 'tuareg-mode-hook (lambda () + (progn + (define-key tuareg-mode-map (kbd "C-c C-s") + 'utop) + (setq compile-command + "opam config exec corebuild ")))) + +;; Setup merlin completions company is used by default in prelude +(add-to-list 'company-backends 'merlin-company-backend) + +;; Merlin also offers support for autocomplete, uncomment this next line +;; to activate it. +;; (setq merlin-use-auto-complete-mode t) + +(setq utop-command "opam config exec utop -- -emacs" + merlin-error-after-save nil) + +(provide 'prelude-ocaml) + +;;; prelude-ocaml.el ends here diff --git a/emacs/.emacs.d/modules/prelude-org.el b/emacs/.emacs.d/modules/prelude-org.el new file mode 100644 index 0000000..d810cac --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-org.el @@ -0,0 +1,58 @@ +;;; prelude-org.el --- Emacs Prelude: org-mode configuration. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for org-mode. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(add-to-list 'auto-mode-alist '("\\.org\\’" . org-mode)) +(global-set-key "\C-cl" 'org-store-link) +(global-set-key "\C-ca" 'org-agenda) +(global-set-key "\C-cb" 'org-iswitchb) +(setq org-log-done t) + +(defun prelude-org-mode-defaults () + (let ((oldmap (cdr (assoc 'prelude-mode minor-mode-map-alist))) + (newmap (make-sparse-keymap))) + (set-keymap-parent newmap oldmap) + (define-key newmap (kbd "C-c +") nil) + (define-key newmap (kbd "C-c -") nil) + (define-key newmap (kbd "C-a") nil) + (make-local-variable 'minor-mode-overriding-map-alist) + (push `(prelude-mode . ,newmap) minor-mode-overriding-map-alist)) +) + +(setq prelude-org-mode-hook 'prelude-org-mode-defaults) + +(add-hook 'org-mode-hook (lambda () (run-hooks 'prelude-org-mode-hook))) + +(provide 'prelude-org) + +;;; prelude-org.el ends here diff --git a/emacs/.emacs.d/modules/prelude-perl.el b/emacs/.emacs.d/modules/prelude-perl.el new file mode 100644 index 0000000..b9a2f4d --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-perl.el @@ -0,0 +1,70 @@ +;;; prelude-perl.el --- Emacs Prelude: decent Perl coding settings. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; cperl-mode is the best Perl mode for Emacs out there. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-programming) + +;; use cperl-mode instead of perl-mode +(defalias 'perl-mode 'cperl-mode) + +(define-key 'help-command "P" 'cperl-perldoc) + +(defun prelude-cperl-mode-defaults () + (setq cperl-indent-level 4) + (setq cperl-continued-statement-offset 8) + ;; cperl-hairy affects all those variables, but I prefer + ;; a more fine-grained approach as far as they are concerned + (setq cperl-font-lock t) + (setq cperl-electric-lbrace-space t) + (setq cperl-electric-parens nil) + (setq cperl-electric-linefeed nil) + (setq cperl-electric-keywords nil) + (setq cperl-info-on-command-no-prompt t) + (setq cperl-clobber-lisp-bindings t) + (setq cperl-lazy-help-time 3) + + ;; if you want all the bells and whistles + ;; (setq cperl-hairy) + + (set-face-background 'cperl-array-face nil) + (set-face-background 'cperl-hash-face nil) + (setq cperl-invalid-face nil)) + +(setq prelude-cperl-mode-hook 'prelude-cperl-mode-defaults) + +(add-hook 'cperl-mode-hook (lambda () + (run-hooks 'prelude-cperl-mode-hook)) t) + +(provide 'prelude-perl) + +;;; prelude-perl.el ends here diff --git a/emacs/.emacs.d/modules/prelude-programming.el b/emacs/.emacs.d/modules/prelude-programming.el new file mode 100644 index 0000000..f487652 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-programming.el @@ -0,0 +1,91 @@ +;;; prelude-programming.el --- Emacs Prelude: prog-mode configuration +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic prog-mode configuration and programming related utilities. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(defun prelude-local-comment-auto-fill () + (set (make-local-variable 'comment-auto-fill-only-comments) t)) + +(defun prelude-font-lock-comment-annotations () + "Highlight a bunch of well known comment annotations. + +This functions should be added to the hooks of major modes for programming." + (font-lock-add-keywords + nil '(("\\<\\(\\(FIX\\(ME\\)?\\|TODO\\|OPTIMIZE\\|HACK\\|REFACTOR\\):\\)" + 1 font-lock-warning-face t)))) + +;; show the name of the current function definition in the modeline +(require 'which-func) +(which-function-mode 1) + +;; in Emacs 24 programming major modes generally derive from a common +;; mode named prog-mode; for others, we'll arrange for our mode +;; defaults function to run prelude-prog-mode-hook directly. To +;; augment and/or counteract these defaults your own function +;; to prelude-prog-mode-hook, using: +;; +;; (add-hook 'prelude-prog-mode-hook 'my-prog-mode-defaults t) +;; +;; (the final optional t sets the *append* argument) + +;; smart curly braces +(sp-pair "{" nil :post-handlers + '(((lambda (&rest _ignored) + (crux-smart-open-line-above)) "RET"))) + +;; enlist a more liberal guru +(setq guru-warn-only t) + +(defun prelude-prog-mode-defaults () + "Default coding hook, useful with any programming language." + (when (and (executable-find ispell-program-name) + prelude-flyspell) + (flyspell-prog-mode)) + (when prelude-guru + (guru-mode +1)) + (smartparens-mode +1) + (prelude-enable-whitespace) + (prelude-local-comment-auto-fill) + (prelude-font-lock-comment-annotations)) + +(setq prelude-prog-mode-hook 'prelude-prog-mode-defaults) + +(add-hook 'prog-mode-hook (lambda () + (run-hooks 'prelude-prog-mode-hook))) + +;; enable on-the-fly syntax checking +(if (fboundp 'global-flycheck-mode) + (global-flycheck-mode +1) + (add-hook 'prog-mode-hook 'flycheck-mode)) + +(provide 'prelude-programming) +;;; prelude-programming.el ends here diff --git a/emacs/.emacs.d/modules/prelude-python.el b/emacs/.emacs.d/modules/prelude-python.el new file mode 100644 index 0000000..49a43ff --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-python.el @@ -0,0 +1,111 @@ +;;; prelude-python.el --- Emacs Prelude: python.el configuration. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for python.el (the latest and greatest +;; Python mode Emacs has to offer). + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(prelude-require-package 'anaconda-mode) + +(when (boundp 'company-backends) + (prelude-require-package 'company-anaconda) + (add-to-list 'company-backends 'company-anaconda)) + +(require 'electric) +(require 'prelude-programming) + +;; Copy pasted from ruby-mode.el +(defun prelude-python--encoding-comment-required-p () + (re-search-forward "[^\0-\177]" nil t)) + +(defun prelude-python--detect-encoding () + (let ((coding-system + (or save-buffer-coding-system + buffer-file-coding-system))) + (if coding-system + (symbol-name + (or (coding-system-get coding-system 'mime-charset) + (coding-system-change-eol-conversion coding-system nil))) + "ascii-8bit"))) + +(defun prelude-python--insert-coding-comment (encoding) + (let ((newlines (if (looking-at "^\\s *$") "\n" "\n\n"))) + (insert (format "# coding: %s" encoding) newlines))) + +(defun prelude-python-mode-set-encoding () + "Insert a magic comment header with the proper encoding if necessary." + (save-excursion + (widen) + (goto-char (point-min)) + (when (prelude-python--encoding-comment-required-p) + (goto-char (point-min)) + (let ((coding-system (prelude-python--detect-encoding))) + (when coding-system + (if (looking-at "^#!") (beginning-of-line 2)) + (cond ((looking-at "\\s *#\\s *.*\\(en\\)?coding\\s *:\\s *\\([-a-z0-9_]*\\)") + ;; update existing encoding comment if necessary + (unless (string= (match-string 2) coding-system) + (goto-char (match-beginning 2)) + (delete-region (point) (match-end 2)) + (insert coding-system))) + ((looking-at "\\s *#.*coding\\s *[:=]")) + (t (prelude-python--insert-coding-comment coding-system))) + (when (buffer-modified-p) + (basic-save-buffer-1))))))) + +(when (fboundp 'exec-path-from-shell-copy-env) + (exec-path-from-shell-copy-env "PYTHONPATH")) + +(defun prelude-python-mode-defaults () + "Defaults for Python programming." + (subword-mode +1) + (anaconda-mode 1) + (eldoc-mode 1) + (setq-local electric-layout-rules + '((?: . (lambda () + (and (zerop (first (syntax-ppss))) + (python-info-statement-starts-block-p) + 'after))))) + (when (fboundp #'python-imenu-create-flat-index) + (setq-local imenu-create-index-function + #'python-imenu-create-flat-index)) + (add-hook 'post-self-insert-hook + #'electric-layout-post-self-insert-function nil 'local) + (add-hook 'after-save-hook 'prelude-python-mode-set-encoding nil 'local)) + +(setq prelude-python-mode-hook 'prelude-python-mode-defaults) + +(add-hook 'python-mode-hook (lambda () + (run-hooks 'prelude-python-mode-hook))) + +(provide 'prelude-python) + +;;; prelude-python.el ends here diff --git a/emacs/.emacs.d/modules/prelude-ruby.el b/emacs/.emacs.d/modules/prelude-ruby.el new file mode 100644 index 0000000..13ba6b4 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-ruby.el @@ -0,0 +1,78 @@ +;;; prelude-ruby.el --- Emacs Prelude: A nice setup for Ruby (and Rails) devs. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for Ruby and Rails development. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-programming) + +(prelude-require-packages '(ruby-tools inf-ruby yari)) + +;; Rake files are ruby, too, as are gemspecs, rackup files, and gemfiles. +(add-to-list 'auto-mode-alist '("\\.rake\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("Rakefile\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("\\.gemspec\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("\\.ru\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("Gemfile\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("Guardfile\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("Capfile\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("\\.cap\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("\\.thor\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("\\.rabl\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("Thorfile\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("Vagrantfile\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("\\.jbuilder\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("Podfile\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("\\.podspec\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("Puppetfile\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("Berksfile\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("Appraisals\\'" . ruby-mode)) + +;; We never want to edit Rubinius bytecode +(add-to-list 'completion-ignored-extensions ".rbc") + +(define-key 'help-command (kbd "R") 'yari) + +(eval-after-load 'ruby-mode + '(progn + (defun prelude-ruby-mode-defaults () + (inf-ruby-minor-mode +1) + (ruby-tools-mode +1) + ;; CamelCase aware editing operations + (subword-mode +1)) + + (setq prelude-ruby-mode-hook 'prelude-ruby-mode-defaults) + + (add-hook 'ruby-mode-hook (lambda () + (run-hooks 'prelude-ruby-mode-hook))))) + +(provide 'prelude-ruby) +;;; prelude-ruby.el ends here diff --git a/emacs/.emacs.d/modules/prelude-rust.el b/emacs/.emacs.d/modules/prelude-rust.el new file mode 100644 index 0000000..bb4c4a8 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-rust.el @@ -0,0 +1,66 @@ +;;; prelude-rust.el --- Emacs Prelude: Rust programming support. +;; +;; Authors: Doug MacEachern, Manoel Vilela +;; Version: 1.0.1 +;; Keywords: convenience rust + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Prelude configuration for Rust + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-programming) + +;; You may need installing the following packages on your system: +;; * rustc (Rust Compiler) +;; * cargo (Rust Package Manager) +;; * racer (Rust Completion Tool) +;; * rustfmt (Rust Tool for formatting code) + +(prelude-require-packages '(rust-mode + racer + flycheck-rust + cargo)) + +(setq rust-format-on-save t) + +(eval-after-load 'rust-mode + '(progn + (add-hook 'rust-mode-hook 'racer-mode) + (add-hook 'racer-mode-hook 'eldoc-mode) + (add-hook 'rust-mode-hook 'cargo-minor-mode) + (add-hook 'rust-mode-hook 'flycheck-rust-setup) + (add-hook 'flycheck-mode-hook 'flycheck-rust-setup) + + (defun prelude-rust-mode-defaults () + (local-set-key (kbd "C-c C-d") 'racer-describe) + ;; CamelCase aware editing operations + (subword-mode +1)) + + (setq prelude-rust-mode-hook 'prelude-rust-mode-defaults) + + (add-hook 'rust-mode-hook (lambda () + (run-hooks 'prelude-rust-mode-hook))))) + +(provide 'prelude-rust) +;;; prelude-rust.el ends here diff --git a/emacs/.emacs.d/modules/prelude-scala.el b/emacs/.emacs.d/modules/prelude-scala.el new file mode 100644 index 0000000..6270bea --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-scala.el @@ -0,0 +1,48 @@ +;;; prelude-scala.el --- Emacs Prelude: scala-mode configuration. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic support for the Scala programming language + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-programming) +(prelude-require-packages '(scala-mode ensime)) + +(defun prelude-scala-mode-defaults () + (subword-mode +1) + (ensime-mode +1)) + +(setq prelude-scala-mode-hook 'prelude-scala-mode-defaults) + +(add-hook 'scala-mode-hook (lambda () + (run-hooks 'prelude-scala-mode-hook))) +(provide 'prelude-scala) + +;;; prelude-scala.el ends here diff --git a/emacs/.emacs.d/modules/prelude-scheme.el b/emacs/.emacs.d/modules/prelude-scheme.el new file mode 100644 index 0000000..a429c3d --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-scheme.el @@ -0,0 +1,50 @@ +;;; prelude-scheme.el --- Emacs Prelude: Some defaults for Scheme. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for Scheme programming. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: +(prelude-require-package 'geiser) + +(require 'prelude-lisp) +(require 'geiser) + +;; geiser replies on a REPL to provide autodoc and completion +(setq geiser-mode-start-repl-p t) + +;; keep the home clean +(setq geiser-repl-history-filename + (expand-file-name "geiser-history" prelude-savefile-dir)) + +(add-hook 'scheme-mode-hook (lambda () (run-hooks 'prelude-lisp-coding-hook))) + +(provide 'prelude-scheme) + +;;; prelude-scheme.el ends here diff --git a/emacs/.emacs.d/modules/prelude-scss.el b/emacs/.emacs.d/modules/prelude-scss.el new file mode 100644 index 0000000..be92668 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-scss.el @@ -0,0 +1,49 @@ +;;; prelude-scss.el --- Emacs Prelude: scss support +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: http://www.batsov.com/emacs-prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for scss-mode. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'prelude-css) +(prelude-require-packages '(scss-mode)) + +;; turn off annoying auto-compile on save +(setq scss-compile-at-save nil) + +(defun prelude-scss-mode-defaults () + (prelude-css-mode-defaults)) + +(setq prelude-scss-mode-hook 'prelude-scss-mode-defaults) + +(add-hook 'scss-mode-hook (lambda () (run-hooks 'prelude-scss-mode-hook))) + +(provide 'prelude-scss) +;;; prelude-scss.el ends here diff --git a/emacs/.emacs.d/modules/prelude-shell.el b/emacs/.emacs.d/modules/prelude-shell.el new file mode 100644 index 0000000..8d15547 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-shell.el @@ -0,0 +1,51 @@ +;;; prelude-shell.el --- Emacs Prelude: sh-mode configuration. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for cc-mode and the modes derived from it. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'sh-script) + +;; recognize prezto files as zsh scripts +(defvar prelude-prezto-files '("zlogin" "zlogin" "zlogout" "zpreztorc" "zprofile" "zshenv" "zshrc")) + +(mapc (lambda (file) + (add-to-list 'auto-mode-alist `(,(format "\\%s\\'" file) . sh-mode))) + prelude-prezto-files) + +(add-hook 'sh-mode-hook + (lambda () + (if (and buffer-file-name + (member (file-name-nondirectory buffer-file-name) prelude-prezto-files)) + (sh-set-shell "zsh")))) + +(provide 'prelude-shell) +;;; prelude-shell.el ends here diff --git a/emacs/.emacs.d/modules/prelude-web.el b/emacs/.emacs.d/modules/prelude-web.el new file mode 100644 index 0000000..665f903 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-web.el @@ -0,0 +1,73 @@ +;;; prelude-web.el --- Emacs Prelude: web template support +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: http://www.batsov.com/emacs-prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic configuration for web-mode. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(prelude-require-packages '(web-mode)) + +(require 'web-mode) + +(add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.tpl\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.blade\\.php\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.jsp\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode)) +(add-to-list 'auto-mode-alist +'("/\\(views\\|html\\|theme\\|templates\\)/.*\\.php\\'" . web-mode)) + +;; make web-mode play nice with smartparens +(setq web-mode-enable-auto-pairing nil) + +(sp-with-modes '(web-mode) + (sp-local-pair "%" "%" + :unless '(sp-in-string-p) + :post-handlers '(((lambda (&rest _ignored) + (just-one-space) + (save-excursion (insert " "))) + "SPC" "=" "#"))) + (sp-local-tag "%" "<% " " %>") + (sp-local-tag "=" "<%= " " %>") + (sp-local-tag "#" "<%# " " %>")) + +(eval-after-load 'web-mode + '(progn + (defun prelude-web-mode-defaults ()) + (setq prelude-web-mode-hook 'prelude-web-mode-defaults) + + (add-hook 'web-mode-hook (lambda () + (run-hooks 'prelude-web-mode-hook))))) + +(provide 'prelude-web) +;;; prelude-web.el ends here diff --git a/emacs/.emacs.d/modules/prelude-xml.el b/emacs/.emacs.d/modules/prelude-xml.el new file mode 100644 index 0000000..d6248d3 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-xml.el @@ -0,0 +1,50 @@ +;;; prelude-xml.el --- Emacs Prelude: XML editing configuration. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: Bozhidar Batsov +;; URL: https://github.com/bbatsov/prelude +;; Version: 1.0.0 +;; Keywords: convenience + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Some basic nxml-mode configuration. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: + +(require 'nxml-mode) + +(push '("<\\?xml" . nxml-mode) magic-mode-alist) + +;; pom files should be treated as xml files +(add-to-list 'auto-mode-alist '("\\.pom$" . nxml-mode)) + +(setq nxml-child-indent 4) +(setq nxml-attribute-indent 4) +(setq nxml-auto-insert-xml-declaration-flag nil) +(setq nxml-bind-meta-tab-to-complete-flag t) +(setq nxml-slash-auto-complete-flag t) + +(provide 'prelude-xml) + +;;; prelude-xml.el ends here diff --git a/emacs/.emacs.d/modules/prelude-yaml.el b/emacs/.emacs.d/modules/prelude-yaml.el new file mode 100644 index 0000000..3e11508 --- /dev/null +++ b/emacs/.emacs.d/modules/prelude-yaml.el @@ -0,0 +1,44 @@ +;;; prelude-yaml.el --- Emacs Prelude: YAML programming support. +;; +;; Copyright © 2011-2017 Bozhidar Batsov +;; +;; Author: ToBeReplaced +;; URL: http://batsov.com/prelude +;; Version: 1.0.0 +;; Keywords: convenience yaml + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Prelude configuration for YAML. + +;;; License: + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 3 +;; of the License, or (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Code: +(prelude-require-packages '(yaml-mode)) + +;; yaml-mode doesn't derive from prog-mode, but we can at least enable +;; whitespace-mode and apply cleanup. +(add-hook 'yaml-mode-hook 'whitespace-mode) +(add-hook 'yaml-mode-hook 'subword-mode) +(add-hook 'yaml-mode-hook + (lambda () (add-hook 'before-save-hook 'prelude-cleanup-maybe nil t))) + +(provide 'prelude-yaml) +;;; prelude-yaml.el ends here diff --git a/emacs/.emacs.d/personal/.dir-locals.el b/emacs/.emacs.d/personal/.dir-locals.el new file mode 100644 index 0000000..69fa3ca --- /dev/null +++ b/emacs/.emacs.d/personal/.dir-locals.el @@ -0,0 +1,5 @@ +;; This will make sure that nothing in your personal directory will be +;; forced through the emacs-lisp-checkdoc flychecker. That's a great +;; checker for real modules, but these are just config files, and you +;; deserve not to get warnings all the time +((emacs-lisp-mode . ((flycheck-disabled-checkers . (emacs-lisp-checkdoc))))) diff --git a/emacs/.emacs.d/personal/.gitkeep b/emacs/.emacs.d/personal/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/emacs/.emacs.d/personal/preload/.gitkeep b/emacs/.emacs.d/personal/preload/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/emacs/.emacs.d/sample/prelude-modules.el b/emacs/.emacs.d/sample/prelude-modules.el new file mode 100644 index 0000000..08cbe9c --- /dev/null +++ b/emacs/.emacs.d/sample/prelude-modules.el @@ -0,0 +1,40 @@ +;;; Uncomment the modules you'd like to use and restart Prelude afterwards + +;; Emacs IRC client +(require 'prelude-erc) +;; (require 'prelude-ido) ;; Super charges Emacs completion for C-x C-f and more +(require 'prelude-ivy) ;; A mighty modern alternative to ido +;; (require 'prelude-helm) ;; Interface for narrowing and search +;; (require 'prelude-helm-everywhere) ;; Enable Helm everywhere +(require 'prelude-company) +;; (require 'prelude-key-chord) ;; Binds useful features to key combinations +;; (require 'prelude-mediawiki) +;; (require 'prelude-evil) + +;;; Programming languages support +(require 'prelude-c) +;; (require 'prelude-clojure) +;; (require 'prelude-coffee) +;; (require 'prelude-common-lisp) +;; (require 'prelude-css) +(require 'prelude-emacs-lisp) +;; (require 'prelude-erlang) +;; (require 'prelude-elixir) +;; (require 'prelude-go) +;; (require 'prelude-haskell) +(require 'prelude-js) +;; (require 'prelude-latex) +(require 'prelude-lisp) +;; (require 'prelude-ocaml) +(require 'prelude-org) ;; Org-mode helps you keep TODO lists, notes and more +(require 'prelude-perl) +;; (require 'prelude-python) +;; (require 'prelude-ruby) +;; (require 'prelude-rust) +;; (require 'prelude-scala) +(require 'prelude-scheme) +(require 'prelude-shell) +;; (require 'prelude-scss) +;; (require 'prelude-web) ;; Emacs mode for web templates +(require 'prelude-xml) +;; (require 'prelude-yaml) diff --git a/emacs/.emacs.d/sample/prelude-pinned-packages.el b/emacs/.emacs.d/sample/prelude-pinned-packages.el new file mode 100644 index 0000000..6d79431 --- /dev/null +++ b/emacs/.emacs.d/sample/prelude-pinned-packages.el @@ -0,0 +1,133 @@ +(add-to-list 'package-archives + '("melpa-stable" . "https://stable.melpa.org/packages/") t) + +(setq package-pinned-packages + '( + (ace-window . "melpa-stable") + (alchemist . "melpa-stable") + (anaconda-mode . "melpa-stable") + (anzu . "melpa-stable") + (async . "melpa-stable") + (avy . "melpa-stable") + (browse-kill-ring . "melpa-stable") + (caml . "melpa-stable") + (cask-mode . "melpa-stable") + (cdlatex . "melpa-stable") + (cider . "melpa-stable") + (clojure-mode . "melpa-stable") + (cmake-mode . "melpa-stable") + (coffee-mode . "melpa-stable") + (company . "melpa-stable") + (company-anaconda . "melpa-stable") + (company-auctex . "melpa-stable") + (company-go . "melpa-stable") + (crux . "melpa-stable") + (cython-mode . "melpa-stable") + (d-mode . "melpa-stable") + (dart-mode . "melpa-stable") + (dash . "melpa-stable") + (diff-hl . "melpa-stable") + (diminish . "melpa-stable") + (discover-my-major . "melpa-stable") + (dockerfile-mode . "melpa-stable") + (easy-kill . "melpa-stable") + (elisp-slime-nav . "melpa-stable") + (elixir-mode . "melpa-stable") + (elm-mode . "melpa-stable") + (ensime . "melpa-stable") + (epl . "melpa-stable") + (erlang . "melpa-stable") + (evil . "melpa-stable") + (evil-numbers . "melpa-stable") + (evil-surround . "melpa-stable") + (evil-visualstar . "melpa-stable") + (exec-path-from-shell . "melpa-stable") + (expand-region . "melpa-stable") + (f . "melpa-stable") + (feature-mode . "melpa-stable") + (flx . "melpa-stable") + (flx-ido . "melpa-stable") + (flycheck . "melpa-stable") + (flycheck-ocaml . "melpa-stable") + (geiser . "melpa-stable") + (gh . "melpa-stable") + (gist . "melpa-stable") + (git-commit . "melpa-stable") + (git-timemachine . "melpa-stable") + (gitconfig-mode . "melpa-stable") + (gitignore-mode . "melpa-stable") + (go-eldoc . "melpa-stable") + (go-guru . "melpa-stable") + (go-mode . "melpa-stable") + (go-projectile . "melpa-stable") + (go-rename . "melpa-stable") + (gotest . "melpa-stable") + (goto-chg . "melpa-stable") + (grizzl . "melpa-stable") + (groovy-mode . "melpa-stable") + (guru-mode . "melpa-stable") + (haml-mode . "melpa-stable") + (haskell-mode . "melpa-stable") + (helm . "melpa-stable") + (helm-ag . "melpa-stable") + (helm-core . "melpa-stable") + (helm-descbinds . "melpa-stable") + (helm-projectile . "melpa-stable") + (imenu-anywhere . "melpa-stable") + (inf-ruby . "melpa-stable") + (js2-mode . "melpa-stable") + (json-mode . "melpa-stable") + (json-reformat . "melpa-stable") + (json-snatcher . "melpa-stable") + (kivy-mode . "melpa-stable") + (less-css-mode . "melpa-stable") + (logito . "melpa-stable") + (lua-mode . "melpa-stable") + (macrostep . "melpa-stable") + (magit . "melpa-stable") + (magit-popup . "melpa-stable") + (makey . "melpa-stable") + (markdown-mode . "melpa-stable") + (marshal . "melpa-stable") + (mediawiki . "melpa-stable") + (merlin . "melpa-stable") + (operate-on-number . "melpa-stable") + (ov . "melpa-stable") + (pcache . "melpa-stable") + (php-mode . "melpa-stable") + (pkg-info . "melpa-stable") + (pkgbuild-mode . "melpa-stable") + (popup . "melpa-stable") + (projectile . "melpa-stable") + (protobuf-mode . "melpa-stable") + (puppet-mode . "melpa-stable") + (pythonic . "melpa-stable") + (queue . "gnu") + (rich-minority . "melpa-stable") + (ruby-tools . "melpa-stable") + (s . "melpa-stable") + (sass-mode . "melpa-stable") + (sbt-mode . "melpa-stable") + (scala-mode . "melpa-stable") + (scss-mode . "melpa-stable") + (slim-mode . "melpa-stable") + (slime . "melpa-stable") + (smart-mode-line . "melpa-stable") + (smartparens . "melpa-stable") + (smartrep . "melpa-stable") + (smex . "melpa-stable") + (spinner . "gnu") + (stylus-mode . "melpa-stable") + (swift-mode . "melpa-stable") + (thrift . "melpa-stable") + (tuareg . "melpa-stable") + (utop . "melpa-stable") + (volatile-highlights . "melpa-stable") + (web-mode . "melpa-stable") + (which-key . "melpa-stable") + (with-editor . "melpa-stable") + (yaml-mode . "melpa-stable") + (yasnippet . "melpa-stable") + (zenburn-theme . "melpa-stable") + (zop-to-char . "melpa-stable") + )) diff --git a/emacs/.emacs.d/snippets/c++-mode/.yas-parents b/emacs/.emacs.d/snippets/c++-mode/.yas-parents deleted file mode 100644 index ce9828b..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -cc-mode diff --git a/emacs/.emacs.d/snippets/c++-mode/.yas-setup.el b/emacs/.emacs.d/snippets/c++-mode/.yas-setup.el deleted file mode 100644 index 59c0295..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/.yas-setup.el +++ /dev/null @@ -1,12 +0,0 @@ -(require 'yasnippet) - -(defun yas-c++-class-name (str) - "Search for a class name like `DerivedClass' in STR -(which may look like `DerivedClass : ParentClass1, ParentClass2, ...') - -If found, the class name is returned, otherwise STR is returned" - (yas-substr str "[^: ]*")) - -(defun yas-c++-class-method-declare-choice () - "Choose and return the end of a C++11 class method declaration" - (yas-choose-value '(";" " = default;" " = delete;"))) diff --git a/emacs/.emacs.d/snippets/c++-mode/.yas-setup.elc b/emacs/.emacs.d/snippets/c++-mode/.yas-setup.elc deleted file mode 100644 index 6cbc4c7..0000000 Binary files a/emacs/.emacs.d/snippets/c++-mode/.yas-setup.elc and /dev/null differ diff --git a/emacs/.emacs.d/snippets/c++-mode/acl b/emacs/.emacs.d/snippets/c++-mode/acl deleted file mode 100644 index 9d5d042..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/acl +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: accumulate -# key: acl -# -- -auto sum = std::accumulate(std::begin(${1:container}), std::end($1), 0, [](int total, $2) { - $3 -}); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/acm b/emacs/.emacs.d/snippets/c++-mode/acm deleted file mode 100644 index 6e885bc..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/acm +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: accumulate -# key: acm -# -- -auto sum = std::accumulate(std::begin(${1:container}), std::end($1), 0); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/ajf b/emacs/.emacs.d/snippets/c++-mode/ajf deleted file mode 100644 index 105419e..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ajf +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: adjacent_find -# key: ajf -# -- -auto pos = std::adjacent_find(std::begin(${1:container}), std::end($1)); -if (pos != std::end($1)) { - $2 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/alo b/emacs/.emacs.d/snippets/c++-mode/alo deleted file mode 100644 index f16ad54..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/alo +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: all_of -# key: alo -# -- -if (std::all_of(std::begin(${1:container}), std::end($1), []($2) { - $3 -})) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/ano b/emacs/.emacs.d/snippets/c++-mode/ano deleted file mode 100644 index 36e017f..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ano +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: any_of -# key: ano -# -- -if (std::any_of(std::begin(${1:container}), std::end($1), []($2) { - $3 -})) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/assert b/emacs/.emacs.d/snippets/c++-mode/assert deleted file mode 100644 index f8f6a49..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/assert +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: assert -# key: ass -# -- -assert($0); \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/beginend b/emacs/.emacs.d/snippets/c++-mode/beginend deleted file mode 100644 index 51748ae..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/beginend +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name : v.begin(), v.end() -# key: beginend -# -- -${1:v}.begin(), $1.end \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/boost_require b/emacs/.emacs.d/snippets/c++-mode/boost_require deleted file mode 100644 index 804bb3f..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/boost_require +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: boost_require -# key: req -# group: boost -# -- -BOOST_REQUIRE( ${1:condition} ); -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/cerr b/emacs/.emacs.d/snippets/c++-mode/cerr deleted file mode 100644 index 2be4917..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/cerr +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: cerr -# key: err -# -- -cerr << $0; diff --git a/emacs/.emacs.d/snippets/c++-mode/cin b/emacs/.emacs.d/snippets/c++-mode/cin deleted file mode 100644 index 401ccda..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/cin +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: cin -# key: cin -# -- -cin >> $0; \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/class b/emacs/.emacs.d/snippets/c++-mode/class deleted file mode 100644 index 18d0b54..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/class +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: class -# key: cls -# -- -class ${1:Name} -{ -public: - ${1:$(yas/substr yas-text "[^: ]*")}(); - ${2:virtual ~${1:$(yas/substr yas-text "[^: ]*")}();} -}; -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/class11 b/emacs/.emacs.d/snippets/c++-mode/class11 deleted file mode 100644 index 8151299..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/class11 +++ /dev/null @@ -1,44 +0,0 @@ -# -*- mode: snippet -*- -# name: class11 -# key: cls11 -# group: c++11 -# uuid: d7c41f87-9b8a-479d-bb12-89f4cbdd46a7 -# contributor: Ved Vyas -# desc: Snippet for C++11 classes based on c++-mode/class. Allows for Rule of -# [0, All]. A choice between ";", " = default;", and " = delete;" is presented -# for each method. The methods and some of the optional keywords/specifiers are -# exposed as fields that users can easily skip-and-clear. -# Hackish query-replace-regexp to renumber non-mirror fields in the region -# between public and protected (can use N as a field number in the snippet): -# \${[0-9N]*:\([^\$]\) -> ${\,(+ 2 \#):\1 -# References: -# 1. http://en.cppreference.com/w/cpp/language/rule_of_three#Rule_of_five -# 2. https://en.wikipedia.org/wiki/Rule_of_three_%28C%2B%2B_programming%29#Example_in_C.2B.2B -# 3. http://stackoverflow.com/a/4782927 -# -- -class ${1:Name} -{ -public: -${2: ${3://! Default constructor - }${1:$(yas-c++-class-name yas-text)}()${4:;$(yas-c++-class-method-declare-choice)} - -}${5: ${6://! Copy constructor - }${1:$(yas-c++-class-name yas-text)}(const ${1:$(yas-c++-class-name yas-text)} &other)${7:;$(yas-c++-class-method-declare-choice)} - -}${8: ${9://! Move constructor - }${1:$(yas-c++-class-name yas-text)}(${1:$(yas-c++-class-name yas-text)} &&other)${10: noexcept}${11:;$(yas-c++-class-method-declare-choice)} - -}${12: ${13://! Destructor - }${14:virtual }~${1:$(yas-c++-class-name yas-text)}()${15: noexcept}${16:;$(yas-c++-class-method-declare-choice)} - -}${17: ${18://! Copy assignment operator - }${1:$(yas-c++-class-name yas-text)}& operator=(const ${1:$(yas-c++-class-name yas-text)} &other)${19:;$(yas-c++-class-method-declare-choice)} - -}${20: ${21://! Move assignment operator - }${1:$(yas-c++-class-name yas-text)}& operator=(${1:$(yas-c++-class-name yas-text)} &&other)${22: noexcept}${23:;$(yas-c++-class-method-declare-choice)} - -}$0 - -protected: -private: -}; \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/cni b/emacs/.emacs.d/snippets/c++-mode/cni deleted file mode 100644 index e8694d2..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/cni +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: count_if -# key: cni -# -- -auto n = std::count_if(std::begin(${1:container}), std::end($1), []($2) { - $3 -}); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/cnt b/emacs/.emacs.d/snippets/c++-mode/cnt deleted file mode 100644 index 0004798..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/cnt +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: count -# key: cnt -# -- -auto n = std::count(std::begin(${1:container}), std::end($1), $2); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/const_[] b/emacs/.emacs.d/snippets/c++-mode/const_[] deleted file mode 100644 index ef92ffb..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/const_[] +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: const_[] -# key: c[ -# -- -const ${1:Type}& operator[](${2:int index}) const -{ - $0 -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/constructor b/emacs/.emacs.d/snippets/c++-mode/constructor deleted file mode 100644 index 95ed499..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/constructor +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: constructor -# key: ct -# -- -${1:Class}::$1(${2:args}) ${3: : ${4:init}} -{ - $0 -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/cout b/emacs/.emacs.d/snippets/c++-mode/cout deleted file mode 100644 index 1c8e600..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/cout +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# contributor: York Zhao -# name: cout -# key: cout -# -- -`(progn (goto-char (point-min)) (unless (re-search-forward -"^using\\s-+namespace std;" nil 'no-errer) "std::")) -`cout << $0${1: << "${2:\n}"}; \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/cpb b/emacs/.emacs.d/snippets/c++-mode/cpb deleted file mode 100644 index 0ca826c..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/cpb +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: copy_backward -# key: cpb -# -- -std::copy_backward(std::begin(${1:container}), std::end($1), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/cpi b/emacs/.emacs.d/snippets/c++-mode/cpi deleted file mode 100644 index 4c17712..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/cpi +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: copy_if -# key: cpi -# -- -std::copy_if(std::begin(${1:container}), std::end($1), std::begin($2), -[]($3) { - $4 -}); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/cpn b/emacs/.emacs.d/snippets/c++-mode/cpn deleted file mode 100644 index a96996e..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/cpn +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: copy_n -# key: cpn -# -- -std::copy_n(std::begin(${1:container}), $2, std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/cpp b/emacs/.emacs.d/snippets/c++-mode/cpp deleted file mode 100644 index 99ea53c..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/cpp +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: cpp -# key: cpp -# -- -#include "`(file-name-nondirectory (file-name-sans-extension (buffer-file-name)))`.h" \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/cpy b/emacs/.emacs.d/snippets/c++-mode/cpy deleted file mode 100644 index 14b36b6..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/cpy +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: copy -# key: cpy -# -- -std::copy(std::begin(${1:container}), std::end($1), std::begin($2)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/cstd b/emacs/.emacs.d/snippets/c++-mode/cstd deleted file mode 100644 index 6148875..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/cstd +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: cstd -# key: cstd -# -- -#include \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/d+= b/emacs/.emacs.d/snippets/c++-mode/d+= deleted file mode 100644 index b3bf110..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/d+= +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: d+= -# key: d+= -# -- -${1:MyClass}& operator+=(${2:const $1 &}); \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/d_operator b/emacs/.emacs.d/snippets/c++-mode/d_operator deleted file mode 100644 index c7f40fc..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/d_operator +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: d_operator<< -# key: << -# -- -friend std::ostream& operator<<(std::ostream&, const ${1:Class}&); \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/d_operator[] b/emacs/.emacs.d/snippets/c++-mode/d_operator[] deleted file mode 100644 index d0555f7..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/d_operator[] +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: d_operator[] -# key: [ -# -- -${1:Type}& operator[](${2:int index}); \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/d_operator[]_const b/emacs/.emacs.d/snippets/c++-mode/d_operator[]_const deleted file mode 100644 index b4c1f8f..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/d_operator[]_const +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: d_operator[]_const -# key: c[ -# -- -const ${1:Type}& operator[](${2:int index}) const; \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/d_operator_istream b/emacs/.emacs.d/snippets/c++-mode/d_operator_istream deleted file mode 100644 index 36f88e0..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/d_operator_istream +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: d_operator>> -# key: >> -# -- -friend std::istream& operator>>(std::istream&, const ${1:Class}&); \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/d_operator_ostream b/emacs/.emacs.d/snippets/c++-mode/d_operator_ostream deleted file mode 100644 index c7f40fc..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/d_operator_ostream +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: d_operator<< -# key: << -# -- -friend std::ostream& operator<<(std::ostream&, const ${1:Class}&); \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/delete b/emacs/.emacs.d/snippets/c++-mode/delete deleted file mode 100644 index 61119d1..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/delete +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: delete -# key: dl -# -- -delete ${1:pointer}; \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/delete[] b/emacs/.emacs.d/snippets/c++-mode/delete[] deleted file mode 100644 index 69223c2..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/delete[] +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: delete[] -# key: dla -# -- -delete[] ${1:arr}; \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/doc b/emacs/.emacs.d/snippets/c++-mode/doc deleted file mode 100644 index b58550a..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/doc +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: doc -# key: doc -# -- -/** - * $0 - */ \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/dynamic_casting b/emacs/.emacs.d/snippets/c++-mode/dynamic_casting deleted file mode 100644 index f09c171..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/dynamic_casting +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: dynamic_casting -# key: cast -# -- -check_and_cast<${1:Type} *>(${2:msg}); \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/enum b/emacs/.emacs.d/snippets/c++-mode/enum deleted file mode 100644 index 7b22035..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/enum +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: enum -# key: enum -# -- -enum ${1:NAME}{ -$0 -}; \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/eql b/emacs/.emacs.d/snippets/c++-mode/eql deleted file mode 100644 index 01368cc..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/eql +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: equal -# key: eql -# -- -if (std::equal(std::begin(${1:container}), std::end($1), std::begin($2))) { - $3 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/erm b/emacs/.emacs.d/snippets/c++-mode/erm deleted file mode 100644 index 16b8f36..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/erm +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: remove -# key: erm -# -- -${1:container}.erase(std::remove(std::begin($1), std::end($1), $2), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/ffo b/emacs/.emacs.d/snippets/c++-mode/ffo deleted file mode 100644 index 36c6894..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ffo +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: find_first_of -# key: ffo -# -- -auto pos = std::find_first_of(std::begin(${1:container}), std::end($1), - std::begin($2), std::end($3)); -if (pos != std::end($1)) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/fil b/emacs/.emacs.d/snippets/c++-mode/fil deleted file mode 100644 index 12d065a..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/fil +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: fill -# key: fil -# -- -std::fill(std::begin(${1:container}), std::end($1), $2); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/fin b/emacs/.emacs.d/snippets/c++-mode/fin deleted file mode 100644 index 41eaf6c..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/fin +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: find_if_not -# key: fin -# -- -auto pos = std::find_if_not(std::begin(${1:container}), std::end($1),[]($2) { - $3 -}); -if (pos != std::end($1)) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/fixture b/emacs/.emacs.d/snippets/c++-mode/fixture deleted file mode 100644 index 1a25aee..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/fixture +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: fixture -# key: fixt -# -- -BOOST_FIXTURE_TEST_SUITE( ${1:name}, ${2:Fixture} ) - -$0 - -BOOST_AUTO_TEST_SUITE_END() \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/fln b/emacs/.emacs.d/snippets/c++-mode/fln deleted file mode 100644 index ef2028a..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/fln +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: fill_n -# key: fln -# -- -std::fill_n(std::begin(${1:container}), $2, $3); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/fnd b/emacs/.emacs.d/snippets/c++-mode/fnd deleted file mode 100644 index 6009138..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/fnd +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: find -# key: fnd -# -- -auto pos = std::find(std::begin(${1:container}), std::end($1), $2); -if (pos != std::end($1)) { - $3 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/fne b/emacs/.emacs.d/snippets/c++-mode/fne deleted file mode 100644 index 7f27e7a..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/fne +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: find_end -# key: fne -# -- -auto pos = std::find_std::end(std::begin(${1:container}), std::end($1), - std::begin($2), std::end($3)); -if (pos != std::end($1)) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/fni b/emacs/.emacs.d/snippets/c++-mode/fni deleted file mode 100644 index de0a6e8..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/fni +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: find_if -# key: fni -# -- -auto pos = std::find_if(std::begin(${1:container}), std::end($1), []($2) { - $3 -}); -if (pos != std::end($1)) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/fori b/emacs/.emacs.d/snippets/c++-mode/fori deleted file mode 100644 index 7676a89..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/fori +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: fori -# key: fori -# -- -for (${1:auto }${2:it} = ${3:var}.begin(); $2 != $3.end(); ++$2) { - $0 -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/fre b/emacs/.emacs.d/snippets/c++-mode/fre deleted file mode 100644 index 09d1a78..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/fre +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: for_each -# key: fre -# -- -std::for_each(std::begin(${1:container}), std::end($1), []($2) { - $3 -}); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/friend b/emacs/.emacs.d/snippets/c++-mode/friend deleted file mode 100644 index d3c9009..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/friend +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: friend -# key: fr -# -- -friend $0; \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/fun_declaration b/emacs/.emacs.d/snippets/c++-mode/fun_declaration deleted file mode 100644 index 03184dc..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/fun_declaration +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: fun_declaration -# key: f -# -- -${1:type} ${2:name}(${3:args})${4: const}; \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/gnn b/emacs/.emacs.d/snippets/c++-mode/gnn deleted file mode 100644 index b3b74b5..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/gnn +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: generate_n -# key: gnn -# -- -std::generate_n(std::begin(${1:container}), $2, []($3) { - $4 -}); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/gnr b/emacs/.emacs.d/snippets/c++-mode/gnr deleted file mode 100644 index e48e7c1..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/gnr +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: generate -# key: gnr -# -- -std::generate(std::begin(${1:container}), std::end($1), []($2) { - $3 -}); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/gtest b/emacs/.emacs.d/snippets/c++-mode/gtest deleted file mode 100644 index 8ba9c57..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/gtest +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: gtest -# key: gtest -# group: testing -# -- -#include \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/ignore b/emacs/.emacs.d/snippets/c++-mode/ignore deleted file mode 100644 index ac4085d..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ignore +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: ignore -# key: ignore -# -- -${1:std::}cin.ignore(std::numeric_limits::max(), '\n'); \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/ihp b/emacs/.emacs.d/snippets/c++-mode/ihp deleted file mode 100644 index bf975b9..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ihp +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: is_heap -# key: ihp -# -- -if (std::is_heap(std::begin(${1:container}), std::end($1))) { - $2 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/ihu b/emacs/.emacs.d/snippets/c++-mode/ihu deleted file mode 100644 index 765508e..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ihu +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: is_heap_until -# key: ihu -# -- -auto pos = std::is_heap_until(std::begin(${1:container}), std::end($1)); -if (pos != std::end($1)) { - $2 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/inline b/emacs/.emacs.d/snippets/c++-mode/inline deleted file mode 100644 index da5c320..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/inline +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: inline -# key: il -# -- -inline $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/io b/emacs/.emacs.d/snippets/c++-mode/io deleted file mode 100644 index 1355dac..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/io +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: io -# key: io -# -- -#include \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/ipr b/emacs/.emacs.d/snippets/c++-mode/ipr deleted file mode 100644 index c7ffd71..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ipr +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: is_permutation -# key: ipr -# -- -if (std::is_permutation(std::begin(${1:container}), std::end($1), std::begin($2))) { - $3 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/ipt b/emacs/.emacs.d/snippets/c++-mode/ipt deleted file mode 100644 index b7a1509..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ipt +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: is_partitioned -# key: ipt -# -- -if (std::is_partitioned(std::begin(${1:container}), std::end($1), []($2) { - $3 -})) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/iss b/emacs/.emacs.d/snippets/c++-mode/iss deleted file mode 100644 index 11c4cf0..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/iss +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: is_sorted -# key: iss -# -- -if (std::is_sorted(std::begin(${1:container}), std::end($1))) { - $2 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/isu b/emacs/.emacs.d/snippets/c++-mode/isu deleted file mode 100644 index 0c443ff..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/isu +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: is_sorted_until -# key: isu -# -- -auto pos = std::is_sorted_until(std::begin(${1:container}), std::end($1)); -if (pos != std::end($1)) { - $2 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/ita b/emacs/.emacs.d/snippets/c++-mode/ita deleted file mode 100644 index 45da1bc..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ita +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: iota -# key: ita -# -- -std::iota(std::begin(${1:container}), std::end($1), $2); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/iterator b/emacs/.emacs.d/snippets/c++-mode/iterator deleted file mode 100644 index 1aad629..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/iterator +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: iterator -# key: iter -# -- -${1:std::}${2:vector}::iterator ${3:iter}; diff --git a/emacs/.emacs.d/snippets/c++-mode/ltr b/emacs/.emacs.d/snippets/c++-mode/ltr deleted file mode 100644 index 1aec200..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ltr +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: transform -# key: ltr -# -- -${1:container}.erase(0, $1.find_first_not_of(" \t\n\r")); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/lwr b/emacs/.emacs.d/snippets/c++-mode/lwr deleted file mode 100644 index 4736a05..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/lwr +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: transform -# key: lwr -# -- -std::transform(std::begin(${1:container}), std::end($1), std::begin($1), [](char c) { -return std::tolower(c);}); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/lxc b/emacs/.emacs.d/snippets/c++-mode/lxc deleted file mode 100644 index d60c1e5..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/lxc +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: lexigraphical_compare -# key: lxc -# -- -if (std::lexigraphical_compare(std::begin(${1:container}), std::end($1), - std::begin($2), std::end($3)) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/map b/emacs/.emacs.d/snippets/c++-mode/map deleted file mode 100644 index 17ed9ae..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/map +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: map -# key: map -# -- -std::map<${1:type1}$0> ${2:var}; \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/member_function b/emacs/.emacs.d/snippets/c++-mode/member_function deleted file mode 100644 index 8b5ee6a..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/member_function +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: member_function -# key: mf -# -- -${1:type} ${2:Class}::${3:name}(${4:args})${5: const} -{ - $0 -} diff --git a/emacs/.emacs.d/snippets/c++-mode/mkh b/emacs/.emacs.d/snippets/c++-mode/mkh deleted file mode 100644 index 9d50614..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/mkh +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: make_heap -# key: mkh -# -- -std::make_heap(std::begin(${1:container}), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/mme b/emacs/.emacs.d/snippets/c++-mode/mme deleted file mode 100644 index e40fa07..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/mme +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: minmax_element -# key: mme -# -- -auto minmax = std::minmax_element(std::begin(${1:container}), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/mne b/emacs/.emacs.d/snippets/c++-mode/mne deleted file mode 100644 index 0491705..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/mne +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: min_element -# key: mne -# -- -auto pos = std::min_element(std::begin(${1:container}), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/module b/emacs/.emacs.d/snippets/c++-mode/module deleted file mode 100644 index b962be4..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/module +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: module -# key: mod -# -- -class ${1:Class} : public cSimpleModule -{ - $0 -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/mpb b/emacs/.emacs.d/snippets/c++-mode/mpb deleted file mode 100644 index 4ca0b09..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/mpb +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: move_backward -# key: mpb -# -- -std::move_backward(std::begin(${1:container}), std::end($1), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/mrg b/emacs/.emacs.d/snippets/c++-mode/mrg deleted file mode 100644 index d6bbc71..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/mrg +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: merge -# key: mrg -# -- -std::merge(std::begin(${1:container}), std::end($1), -std::begin($2), std::end($3), std::begin($4)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/msm b/emacs/.emacs.d/snippets/c++-mode/msm deleted file mode 100644 index 6c729f6..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/msm +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: mismatch -# key: msm -# -- -auto values = std::mismatch(std::begin(${1:container}), std::end($1), std::begin($1)); -if (values.first == std::end($1)) { - $2 -} else { - $3 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/mxe b/emacs/.emacs.d/snippets/c++-mode/mxe deleted file mode 100644 index a2ffea4..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/mxe +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: max_element -# key: mxe -# -- -auto pos = std::max_element(std::begin(${1:container}), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/namespace b/emacs/.emacs.d/snippets/c++-mode/namespace deleted file mode 100644 index 5f702d8..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/namespace +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: namespace -# key: ns -# -- -namespace ${1:Namespace} { - - `yas/selected-text` - -} // $1 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/nno b/emacs/.emacs.d/snippets/c++-mode/nno deleted file mode 100644 index 4372782..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/nno +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: none_of -# key: nno -# -- -if (std::none_of(std::begin(${1:container}), std::end($1), []($2) { - $3 -})) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/ns b/emacs/.emacs.d/snippets/c++-mode/ns deleted file mode 100644 index 0b736e7..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ns +++ /dev/null @@ -1,4 +0,0 @@ -#name : namespace ... -# key: ns -# -- -namespace \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/nth b/emacs/.emacs.d/snippets/c++-mode/nth deleted file mode 100644 index e0c0fba..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/nth +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: nth_element -# key: nth -# -- -std::nth_element(std::begin(${1:container}), std::end($1), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/nxp b/emacs/.emacs.d/snippets/c++-mode/nxp deleted file mode 100644 index 46ece1e..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/nxp +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: next_permutation -# key: nxp -# -- -if (std::next_permutation(std::begin(${1:container}), std::end($1))) { - $2 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/oit b/emacs/.emacs.d/snippets/c++-mode/oit deleted file mode 100644 index 74ad7e5..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/oit +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: copy -# key: oit -# -- -std::copy(std::begin(${1:container}), std::end($1), std::ostream_iterator<$2>{ -%\istd::cout, "$3" -}); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/operator!= b/emacs/.emacs.d/snippets/c++-mode/operator!= deleted file mode 100644 index 0b9c3c3..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/operator!= +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: operator!= -# key: != -# group: operator overloading -# -- -bool ${1:MyClass}::operator!=(const $1 &other) const -{ - return !(*this == other); -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/operator+ b/emacs/.emacs.d/snippets/c++-mode/operator+ deleted file mode 100644 index cc1d9aa..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/operator+ +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: operator+ -# key: + -# group: operator overloading -# -- -${1:MyClass} $1::operator+(const $1 &other) -{ - $1 result = *this; - result += other; - return result; -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/operator+= b/emacs/.emacs.d/snippets/c++-mode/operator+= deleted file mode 100644 index e913631..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/operator+= +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: operator+= -# key: += -# group: operator overloading -# -- -${1:MyClass}& $1::operator+=(${2:const $1 &rhs}) -{ - $0 - return *this; -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/operator= b/emacs/.emacs.d/snippets/c++-mode/operator= deleted file mode 100644 index 272af5d..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/operator= +++ /dev/null @@ -1,14 +0,0 @@ -# -*- mode: snippet -*- -# name: operator= -# key: = -# where this is a reference to myself -# group: operator overloading -# -- -${1:MyClass}& $1::operator=(const $1 &rhs) -{ - // Check for self-assignment! - if (this == &rhs) - return *this; - $0 - return *this; -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/operator== b/emacs/.emacs.d/snippets/c++-mode/operator== deleted file mode 100644 index f8fb3e9..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/operator== +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: operator== -# key: == -# group: operator overloading -# -- -bool ${1:MyClass}::operator==(const $1 &other) const -{ - $0 -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/operator[] b/emacs/.emacs.d/snippets/c++-mode/operator[] deleted file mode 100644 index 5fb110b..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/operator[] +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: operator[] -# key: [] -# group: operator overloading -# -- -${1:Type}& operator[](${2:int index}) -{ - $0 -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/operator_istream b/emacs/.emacs.d/snippets/c++-mode/operator_istream deleted file mode 100644 index e2296ab..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/operator_istream +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: operator>> -# key: >> -# group: operator overloading -# -- -std::istream& operator>>(std::istream& is, const ${1:Class}& ${2:c}) -{ - $0 - return is; -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/operator_ostream b/emacs/.emacs.d/snippets/c++-mode/operator_ostream deleted file mode 100644 index cd77eb4..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/operator_ostream +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: operator<< -# key: << -# group: operator overloading -# -- -std::ostream& operator<<(std::ostream& os, const ${1:Class}& ${2:c}) -{ - $0 - return os; -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/ostream b/emacs/.emacs.d/snippets/c++-mode/ostream deleted file mode 100644 index 9371338..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ostream +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: ostream -# key: os -# -- -#include \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/pack b/emacs/.emacs.d/snippets/c++-mode/pack deleted file mode 100644 index 5172bb9..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/pack +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: pack -# key: pack -# -- -void cNetCommBuffer::pack(${1:type}) -{ - -} - -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/phh b/emacs/.emacs.d/snippets/c++-mode/phh deleted file mode 100644 index 4527265..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/phh +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: push_heap -# key: phh -# -- -std::push_heap(std::begin(${1:container}), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/ppt b/emacs/.emacs.d/snippets/c++-mode/ppt deleted file mode 100644 index fc05481..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ppt +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: partition_point -# key: ppt -# -- -auto pos = std::partition_point(std::begin(${1:container}), std::end($1), []($2) { - $3 -}); -if (pos != std::end($1)) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/private b/emacs/.emacs.d/snippets/c++-mode/private deleted file mode 100644 index bba11e4..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/private +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: private -# key: pr -# expand-env: ((yas-also-auto-indent-first-line t)) -# -- -private: - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/protected b/emacs/.emacs.d/snippets/c++-mode/protected deleted file mode 100644 index 9553957..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/protected +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: protected -# key: pt -# expand-env: ((yas-also-auto-indent-first-line t)) -# -- -protected: - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/prp b/emacs/.emacs.d/snippets/c++-mode/prp deleted file mode 100644 index a94f0e9..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/prp +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: prev_permutation -# key: prp -# -- -if (std::prev_permutation(std::begin(${1:container}), std::end($1))) { - $2 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/psc b/emacs/.emacs.d/snippets/c++-mode/psc deleted file mode 100644 index ad8ff42..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/psc +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: partial_sort_copy -# key: psc -# -- -std::partial_sort_copy(std::begin(${1:container}), std::end($1), - std::begin($2), std::end($3)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/pst b/emacs/.emacs.d/snippets/c++-mode/pst deleted file mode 100644 index e7287e2..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/pst +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: partial_sort -# key: pst -# -- -std::partial_sort(std::begin(${1:container}), std::end($1), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/ptc b/emacs/.emacs.d/snippets/c++-mode/ptc deleted file mode 100644 index dcd7e38..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ptc +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: partition_copy -# key: ptc -# -- -std::partition_copy(std::begin(${1:container}), std::end($1), - std::begin($2), std::end($3)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/ptn b/emacs/.emacs.d/snippets/c++-mode/ptn deleted file mode 100644 index 44f3c42..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ptn +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: partition -# key: ptn -# -- -auto pos = std::partition(std::begin(${1:container}), std::end($1), []($2) { - $3 -}); -if (pos != std::end($1)) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/public b/emacs/.emacs.d/snippets/c++-mode/public deleted file mode 100644 index eea5b34..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/public +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: public -# key: pb -# expand-env: ((yas-also-auto-indent-first-line t)) -# -- -public: - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/rci b/emacs/.emacs.d/snippets/c++-mode/rci deleted file mode 100644 index 1149255..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/rci +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: replace_copy_if -# key: rci -# -- -std::replace_copy_if(std::begin(${1:container}), std::end($1), - std::begin($1), []($2) { - $3 -}, $4); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/rmc b/emacs/.emacs.d/snippets/c++-mode/rmc deleted file mode 100644 index 681c10b..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/rmc +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: remove_copy -# key: rmc -# -- -std::remove_copy(std::begin(${1:container}), std::end($1), - std::begin($1), $2); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/rmf b/emacs/.emacs.d/snippets/c++-mode/rmf deleted file mode 100644 index c1713ff..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/rmf +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: remove_copy_if -# key: rmf -# -- -std::remove_copy_if(std::begin(${1:container}), std::end($1), - std::begin($1), []($2) { - $3 -}); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/rmi b/emacs/.emacs.d/snippets/c++-mode/rmi deleted file mode 100644 index c78f926..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/rmi +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: remove_if -# key: rmi -# -- -auto pos = std::remove_if(std::begin(${1:container}), std::end($1), []($2) { - $3 -}); -if (pos != std::end($1)) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/rmv b/emacs/.emacs.d/snippets/c++-mode/rmv deleted file mode 100644 index 01fa9f9..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/rmv +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: remove -# key: rmv -# -- -auto pos = std::remove(std::begin(${1:container}), std::end($1), $2); -if (pos != std::end($1)) { - $3 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/rpc b/emacs/.emacs.d/snippets/c++-mode/rpc deleted file mode 100644 index a4116f1..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/rpc +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: replace_copy -# key: rpc -# -- -std::replace_copy(std::begin(${1:container}), std::end($1), std::begin($1), $2, $3); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/rpi b/emacs/.emacs.d/snippets/c++-mode/rpi deleted file mode 100644 index bc96c47..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/rpi +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: replace_if -# key: rpi -# -- -std::replace_if(std::begin(${1:container}), std::end($1), []($2) { -$3 -}, $4); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/rpl b/emacs/.emacs.d/snippets/c++-mode/rpl deleted file mode 100644 index 9badf4b..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/rpl +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: replace -# key: rpl -# -- -std::replace(std::begin(${1:container}), std::end($1), $2, $3); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/rtc b/emacs/.emacs.d/snippets/c++-mode/rtc deleted file mode 100644 index 373f85d..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/rtc +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: rotate_copy -# key: rtc -# -- -std::rotate_copy(std::begin(${1:container}), std::begin($2), std::end($1), - std::begin($3)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/rte b/emacs/.emacs.d/snippets/c++-mode/rte deleted file mode 100644 index a098782..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/rte +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: rotate -# key: rte -# -- -std::rotate(std::begin(${1:container}), std::begin($2), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/rvc b/emacs/.emacs.d/snippets/c++-mode/rvc deleted file mode 100644 index 2e4618d..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/rvc +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: reverse_copy -# key: rvc -# -- -std::reverse_copy(std::begin(${1:container}), std::end($1), std::begin($2)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/rvr b/emacs/.emacs.d/snippets/c++-mode/rvr deleted file mode 100644 index 71d00c5..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/rvr +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: reverse -# key: rvr -# -- -std::reverse(std::begin(${1:container}), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/shf b/emacs/.emacs.d/snippets/c++-mode/shf deleted file mode 100644 index ef7adb1..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/shf +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: random_shuffle -# key: shf -# -- -std::random_shuffle(std::begin(${1:container}), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/spt b/emacs/.emacs.d/snippets/c++-mode/spt deleted file mode 100644 index 40ef2c8..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/spt +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: stable_partition -# key: spt -# -- -auto pos = std::stable_partition(std::begin(${1:container}), std::end($1), []($2) { - $3}); -if (pos != std::end($1)) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/srh b/emacs/.emacs.d/snippets/c++-mode/srh deleted file mode 100644 index 2c9df59..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/srh +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: search -# key: srh -# -- -auto pos = std::search(std::begin(${1:container}), std::end($1), - std::begin($2), std::end($3)); -if (pos != std::end($1)) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/srn b/emacs/.emacs.d/snippets/c++-mode/srn deleted file mode 100644 index c7d929d..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/srn +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: search_n -# key: srn -# -- -auto pos = std::search_n(std::begin(${1:container}), std::end($1),$2,$3); -if (pos != std::end($1)) { - $4 -} -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/srt b/emacs/.emacs.d/snippets/c++-mode/srt deleted file mode 100644 index 8d44cfd..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/srt +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: sort -# key: srt -# -- -std::sort(std::begin(${1:container}), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/sstream b/emacs/.emacs.d/snippets/c++-mode/sstream deleted file mode 100644 index 738fd11..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/sstream +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: -# key: ss -# -- -#include \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/std b/emacs/.emacs.d/snippets/c++-mode/std deleted file mode 100644 index 04d8772..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/std +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: std -# key: std -# -- -using namespace std; \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/std_colon b/emacs/.emacs.d/snippets/c++-mode/std_colon deleted file mode 100644 index d9ea8e7..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/std_colon +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: std:: -# key: st -# -- -std::$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/sth b/emacs/.emacs.d/snippets/c++-mode/sth deleted file mode 100644 index c8e6fb1..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/sth +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: sort_heap -# key: sth -# -- -std::sort_heap(std::begin(${1:container}), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/sti b/emacs/.emacs.d/snippets/c++-mode/sti deleted file mode 100644 index 37a2182..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/sti +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: cin -# key: sti -# -- -std::cin >> -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/sto b/emacs/.emacs.d/snippets/c++-mode/sto deleted file mode 100644 index 30db50b..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/sto +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: cout -# key: sto -# -- -std::cout << -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/str b/emacs/.emacs.d/snippets/c++-mode/str deleted file mode 100644 index 95b865c..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/str +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: str -# key: str -# -- -#include \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/sts b/emacs/.emacs.d/snippets/c++-mode/sts deleted file mode 100644 index a5c4d12..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/sts +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: stable_sort -# key: sts -# -- -std::stable_sort(std::begin(${1:container}), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/stv b/emacs/.emacs.d/snippets/c++-mode/stv deleted file mode 100644 index 1354c3d..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/stv +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: vector -# key: stv -# -- -std::vector<$2> $3 -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/swr b/emacs/.emacs.d/snippets/c++-mode/swr deleted file mode 100644 index 9357578..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/swr +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: swap_ranges -# key: swr -# -- -std::swap_ranges(std::begin(${1:container}), std::end($1), std::begin($2)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/template b/emacs/.emacs.d/snippets/c++-mode/template deleted file mode 100644 index 64814b8..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/template +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: template -# key: temp -# -- -template<${1:$$(yas/choose-value '("typename" "class"))} ${2:T}> -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/test case b/emacs/.emacs.d/snippets/c++-mode/test case deleted file mode 100644 index 4977ae8..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/test case +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: test case -# key: tc -# group: testing -# -- -BOOST_AUTO_TEST_CASE( ${1:test_case} ) -{ - $0 -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/test_main b/emacs/.emacs.d/snippets/c++-mode/test_main deleted file mode 100644 index 9321cf3..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/test_main +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: test_main -# key: test_main -# group: testing -# -- -int main(int argc, char **argv) -{ - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/test_suite b/emacs/.emacs.d/snippets/c++-mode/test_suite deleted file mode 100644 index 84d0f46..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/test_suite +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: test_suite -# key: ts -# group: testing -# -- -BOOST_AUTO_TEST_SUITE( ${1:test_suite1} ) - -$0 - -BOOST_AUTO_TEST_SUITE_END() \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/tfm b/emacs/.emacs.d/snippets/c++-mode/tfm deleted file mode 100644 index 12d4881..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/tfm +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: transform -# key: tfm -# -- -std::transform(std::begin(${1:container}), std::end($1), - std::begin($1), []($2) { -$3% -}); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/this b/emacs/.emacs.d/snippets/c++-mode/this deleted file mode 100644 index 5c7e6a3..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/this +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: this -# key: th -# -- -this \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/throw b/emacs/.emacs.d/snippets/c++-mode/throw deleted file mode 100644 index 95616db..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/throw +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: throw -# key: throw -# -- -throw ${1:MyError}($0); \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/trm b/emacs/.emacs.d/snippets/c++-mode/trm deleted file mode 100644 index d7ffea1..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/trm +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: generate_n -# key: trm -# -- -${1:container}.erase($1.find_last_not_of(" \t\n\r") + 1); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/try b/emacs/.emacs.d/snippets/c++-mode/try deleted file mode 100644 index f44c67f..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/try +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: try -# key: try -# a bit too intrusive now still, not always I want to do this -# -- -try { - $0 -} catch (${1:type}) { - -} diff --git a/emacs/.emacs.d/snippets/c++-mode/tryw b/emacs/.emacs.d/snippets/c++-mode/tryw deleted file mode 100644 index cf61928..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/tryw +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: tryw -# key: tryw -# -- -try { - `(or yas/selected-text (car kill-ring))` -} catch ${1:Exception} { - -} diff --git a/emacs/.emacs.d/snippets/c++-mode/ucp b/emacs/.emacs.d/snippets/c++-mode/ucp deleted file mode 100644 index 1dc71ff..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/ucp +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: unique_copy -# key: ucp -# -- -std::unique_copy(std::begin(${1:container}), std::end($1), - std::ostream_iterator(std::cout, "\n")); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/upr b/emacs/.emacs.d/snippets/c++-mode/upr deleted file mode 100644 index 8c9e0f8..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/upr +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: transform -# key: upr -# -- -std::transform(std::begin(${1:container}), std::end($1), std::begin($1), [](char c) { -return std::toupper(c); -}); -$2 -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/uqe b/emacs/.emacs.d/snippets/c++-mode/uqe deleted file mode 100644 index c35ff16..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/uqe +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: unique -# key: uqe -# -- -auto pos = std::unique(std::begin(${1:container}), std::end($1)); -$0 diff --git a/emacs/.emacs.d/snippets/c++-mode/using b/emacs/.emacs.d/snippets/c++-mode/using deleted file mode 100644 index 27ec885..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/using +++ /dev/null @@ -1,5 +0,0 @@ -#name : using namespace ... -# key: using -# -- -using namespace ${std}; -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/c++-mode/vector b/emacs/.emacs.d/snippets/c++-mode/vector deleted file mode 100644 index ef118a2..0000000 --- a/emacs/.emacs.d/snippets/c++-mode/vector +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: vector -# key: vec -# -- -std::vector<${1:Class}> ${2:var}${3:(${4:10}, $1($5))}; \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/acronym b/emacs/.emacs.d/snippets/latex-mode/acronym deleted file mode 100644 index ea2314c..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/acronym +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: acronym -# key: ac -# -- -\newacronym{${1:label}}{${1:$(upcase yas-text)}}{${2:Name}} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/alertblock b/emacs/.emacs.d/snippets/latex-mode/alertblock deleted file mode 100644 index d259d2b..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/alertblock +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: alertblock -# key: al -# -- -\begin{alertblock}{$2} - $0 -\end{alertblock} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/alg b/emacs/.emacs.d/snippets/latex-mode/alg deleted file mode 100644 index 24a9c94..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/alg +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: alg -# key: alg -# -- -\begin{algorithmic} -$0 -\end{algorithmic} diff --git a/emacs/.emacs.d/snippets/latex-mode/article b/emacs/.emacs.d/snippets/latex-mode/article deleted file mode 100644 index ec46c9a..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/article +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: full template of article class -# key: article -# -- -\documentclass[${1:options}]{article} - -\author{$3} - -\begin{document} -$0 -\end{document} diff --git a/emacs/.emacs.d/snippets/latex-mode/begin b/emacs/.emacs.d/snippets/latex-mode/begin deleted file mode 100644 index dabcbe8..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/begin +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: begin -# key: begin -# -- -\begin{${1:environment}} -$0 -\end{$1} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/block b/emacs/.emacs.d/snippets/latex-mode/block deleted file mode 100644 index 6b16f4b..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/block +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: block -# key: bl -# -- -\begin{block}{$1} - $0 -\end{block} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/capgls b/emacs/.emacs.d/snippets/latex-mode/capgls deleted file mode 100644 index d469185..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/capgls +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: Gls -# key: G -# -- -\Gls{${1:label}} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/caption b/emacs/.emacs.d/snippets/latex-mode/caption deleted file mode 100644 index 98e25fb..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/caption +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: caption -# key: ca -# -- -\caption{$0} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/cite b/emacs/.emacs.d/snippets/latex-mode/cite deleted file mode 100644 index 2e24838..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/cite +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: cite -# key: c -# -- -\cite{$1} $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/code b/emacs/.emacs.d/snippets/latex-mode/code deleted file mode 100644 index cef9570..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/code +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: code -# key: code -# -- -\begin{lstlisting} -$0 -\end{lstlisting} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/columns b/emacs/.emacs.d/snippets/latex-mode/columns deleted file mode 100644 index 80388f1..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/columns +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: columns -# key: cols -# -- -\begin{columns} - \begin{column}{.${1:5}\textwidth} - $0 - \end{column} - - \begin{column}{.${2:5}\textwidth} - - \end{column} -\end{columns} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/documentclass b/emacs/.emacs.d/snippets/latex-mode/documentclass deleted file mode 100644 index 9c03a21..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/documentclass +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: documentclass -# key: doc -# -- -\documentclass[${1:options}]{$2} -$0 diff --git a/emacs/.emacs.d/snippets/latex-mode/emph b/emacs/.emacs.d/snippets/latex-mode/emph deleted file mode 100644 index 36b19d7..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/emph +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: emph -# key: e -# -- -\emph{$1}$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/enumerate b/emacs/.emacs.d/snippets/latex-mode/enumerate deleted file mode 100644 index d49ce37..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/enumerate +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: enumerate -# key: enum -# -- -\begin{enumerate} -\item $0 -\end{enumerate} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/figure b/emacs/.emacs.d/snippets/latex-mode/figure deleted file mode 100644 index a25d601..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/figure +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: figure -# key: fig -# -- -\begin{figure}[ht] - \centering - \includegraphics[${1:options}]{figures/${2:path.pdf}} - \caption{\label{fig:${3:label}} $0} -\end{figure} diff --git a/emacs/.emacs.d/snippets/latex-mode/frac b/emacs/.emacs.d/snippets/latex-mode/frac deleted file mode 100644 index b35f8ef..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/frac +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: frac -# key: frac -# -- -\frac{${1:numerator}}{${2:denominator}}$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/frame b/emacs/.emacs.d/snippets/latex-mode/frame deleted file mode 100644 index f94357d..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/frame +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: frame -# key: fr -# -- -\begin{frame}${1:[$2]} - ${3:\frametitle{$4}} - $0 -\end{frame} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/fsrtable b/emacs/.emacs.d/snippets/latex-mode/fsrtable deleted file mode 100644 index db8385c..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/fsrtable +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: fsrtable -# key: fsrtable -# -- -\\\\ -\begin{tabular}{ccc} -\toprule -Ja & Nein & Enthaltung \\\\\midrule -0 & 0 & 0 \\\\\bottomrule -\end{tabular} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/gls b/emacs/.emacs.d/snippets/latex-mode/gls deleted file mode 100644 index c6a7aac..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/gls +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: gls -# key: g -# -- -\gls{${1:label}} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/glspl b/emacs/.emacs.d/snippets/latex-mode/glspl deleted file mode 100644 index 699927b..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/glspl +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: glspl -# key: gp -# -- -\glspl{${1:label}} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/if b/emacs/.emacs.d/snippets/latex-mode/if deleted file mode 100644 index 2d80b81..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/if +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: if -# key: if -# -- -\IF {$${1:cond}$} - $0 -\ELSE -\ENDIF diff --git a/emacs/.emacs.d/snippets/latex-mode/includegraphics b/emacs/.emacs.d/snippets/latex-mode/includegraphics deleted file mode 100644 index d46c9a4..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/includegraphics +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: includegraphics -# key: ig -# -- -\includegraphics${1:[$2]}{$0} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/item b/emacs/.emacs.d/snippets/latex-mode/item deleted file mode 100644 index d4773f5..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/item +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: item -# key: - -# -- -\item $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/itemize b/emacs/.emacs.d/snippets/latex-mode/itemize deleted file mode 100644 index 09a848f..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/itemize +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: itemize -# key: it -# -- -\begin{itemize} -\item $0 -\end{itemize} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/label b/emacs/.emacs.d/snippets/latex-mode/label deleted file mode 100644 index 96a72b4..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/label +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: label -# key: lab -# -- -\label{$0} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/listing b/emacs/.emacs.d/snippets/latex-mode/listing deleted file mode 100644 index 3c95b17..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/listing +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: listing -# key: lst -# -- -\begin{lstlisting}[float,label=lst:${1:label},caption=nextHopInfo: ${2:caption}] -$0 -\end{lstlisting} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/moderncv b/emacs/.emacs.d/snippets/latex-mode/moderncv deleted file mode 100644 index 8de90bb..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/moderncv +++ /dev/null @@ -1,15 +0,0 @@ -# -*- mode: snippet -*- -# name: full template of moderncv class -# key: moderncv -# -- -\documentclass[${1:options}]{moderncv} - -\firstname{$3} -\familyname{$4} - -\moderncvstyle{${5:casual}} -\moderncvcolor{${6:blue}} - -\begin{document} -$0 -\end{document} diff --git a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvcomputer b/emacs/.emacs.d/snippets/latex-mode/moderncv-cvcomputer deleted file mode 100644 index 1d69393..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvcomputer +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: moderncv-cvcomputer -# key: cvcomp -# -- -\cvcomputer{${1:category}}{${2:programs}}{${3:category}}{${4:programs}} -$0 diff --git a/emacs/.emacs.d/snippets/latex-mode/moderncv-cventry b/emacs/.emacs.d/snippets/latex-mode/moderncv-cventry deleted file mode 100644 index 8a7b656..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/moderncv-cventry +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: moderncv-cventry -# key: cventry -# -- -\cventry{${1:year}}{${2:job}}{${3:employer}}{${4:city}}{${5:description}} -$0 diff --git a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvitem b/emacs/.emacs.d/snippets/latex-mode/moderncv-cvitem deleted file mode 100644 index 268973a..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvitem +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: moderncv-cvitem -# key: cvi -# -- -\cvitem{${1:item}}{} -$0 diff --git a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvitemwithcomment b/emacs/.emacs.d/snippets/latex-mode/moderncv-cvitemwithcomment deleted file mode 100644 index 1a38902..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvitemwithcomment +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: moderncv-cvitemwithcomment -# key: cviwc -# -- -\cvitemwithcomment{${1:item}}{${2:item}}{${3:item}} -$0 diff --git a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvlanguage b/emacs/.emacs.d/snippets/latex-mode/moderncv-cvlanguage deleted file mode 100644 index c9dd65b..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvlanguage +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: moderncv-cvlanguage -# key: cvlang -# -- -\cvlanguage{${1:language}}{${2:skill-level}}{${3:comment}} -$0 diff --git a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvline b/emacs/.emacs.d/snippets/latex-mode/moderncv-cvline deleted file mode 100644 index a193fed..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvline +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: moderncv-cvline -# key: cvline -# -- -\cvline{${1:hobby}}{${2:Description}} -$0 diff --git a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvlistdoubleitem b/emacs/.emacs.d/snippets/latex-mode/moderncv-cvlistdoubleitem deleted file mode 100644 index 41f86c6..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvlistdoubleitem +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: moderncv-cvlistdoubleitem -# key: cvditem -# -- -\cvlistdoubleitem{${1:item}}{${2:item}} -$0 diff --git a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvlistitem b/emacs/.emacs.d/snippets/latex-mode/moderncv-cvlistitem deleted file mode 100644 index d50fc8c..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvlistitem +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: moderncv-cvlistitem -# key: cvitem -# -- -\cvlistitem{${1:item}} -$0 diff --git a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvskill b/emacs/.emacs.d/snippets/latex-mode/moderncv-cvskill deleted file mode 100644 index c5c8161..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/moderncv-cvskill +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: moderncv-cvskill -# key: cvskill -# -- -\cvitemwithcomment{${1:skill}}{\skill{${2:level}}}{${3:comment}} -$0 diff --git a/emacs/.emacs.d/snippets/latex-mode/movie b/emacs/.emacs.d/snippets/latex-mode/movie deleted file mode 100644 index a01d032..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/movie +++ /dev/null @@ -1,15 +0,0 @@ -# -*- mode: snippet -*- -# name: movie -# key: movie -# -- -\begin{center} -\includemovie[ - label=test, - controls=false, - text={\includegraphics[width=4in]{${1:image.pdf}}} -]{4in}{4in}{${2:video file}} - -\movieref[rate=3]{test}{Play Fast} -\movieref[rate=1]{test}{Play Normal Speed} -\movieref[rate=0.2]{test}{Play Slow} -\movieref[resume]{test}{Pause/Resume} diff --git a/emacs/.emacs.d/snippets/latex-mode/newcommand b/emacs/.emacs.d/snippets/latex-mode/newcommand deleted file mode 100644 index e9e03ca..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/newcommand +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: newcommand -# key: cmd -# -- -\newcommand{\\${1:name}}${2:[${3:0}]}{$0} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/newglossaryentry b/emacs/.emacs.d/snippets/latex-mode/newglossaryentry deleted file mode 100644 index 66c964a..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/newglossaryentry +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: newglossaryentry -# key: gl -# -- -\newglossaryentry{${1:AC}}{name=${2:Andrea Crotti}${3:, description=${4:description}}} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/note b/emacs/.emacs.d/snippets/latex-mode/note deleted file mode 100644 index 1122d7a..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/note +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: note -# key: no -# -- -\note{$0} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/python b/emacs/.emacs.d/snippets/latex-mode/python deleted file mode 100644 index 0ba0fc4..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/python +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: python -# key: py -# -- -\lstset{language=python} -\begin[language=python]{lstlisting} -$0 -\end{lstlisting} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/question b/emacs/.emacs.d/snippets/latex-mode/question deleted file mode 100644 index 235eb59..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/question +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: question -# key: q -# -- -\question{$0} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/section b/emacs/.emacs.d/snippets/latex-mode/section deleted file mode 100644 index 88faeab..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/section +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: section -# key: sec -# -- -\section{${1:name}} -\label{sec:${2:label}} - -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/subf b/emacs/.emacs.d/snippets/latex-mode/subf deleted file mode 100644 index 0497748..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/subf +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: subf -# key: sf -# -- -\subfigure[${1:caption}]{ - \label{fig:${2:label}} - \includegraphics[width=.${3:3}\textwidth]{${4:path}}} -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/subfigure b/emacs/.emacs.d/snippets/latex-mode/subfigure deleted file mode 100644 index e93678b..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/subfigure +++ /dev/null @@ -1,13 +0,0 @@ -# -*- mode: snippet -*- -# name: subfigure -# key: subfig -# -- -\begin{figure}[ht] - \centering - \subfigure[$1] - {\label{fig:${2:label}} - \includegraphics[width=.${3:5}\textwidth]{${4:path}}} - - \caption{${5:caption}} -\label{fig:${6:label}} -\end{figure} diff --git a/emacs/.emacs.d/snippets/latex-mode/subsec b/emacs/.emacs.d/snippets/latex-mode/subsec deleted file mode 100644 index 5658494..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/subsec +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: subsec -# key: sub -# -- -\subsection{${1:name}} -\label{subsec:${2:label}} - -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/textbf b/emacs/.emacs.d/snippets/latex-mode/textbf deleted file mode 100644 index 84171d7..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/textbf +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: textbf -# key: b -# -- -\textbf{$1}$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/textit b/emacs/.emacs.d/snippets/latex-mode/textit deleted file mode 100644 index 8c1ca27..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/textit +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: textit -# key: i -# -- -\textit{$1}$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/latex-mode/usepackage b/emacs/.emacs.d/snippets/latex-mode/usepackage deleted file mode 100644 index 223ba70..0000000 --- a/emacs/.emacs.d/snippets/latex-mode/usepackage +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: usepackage -# key: use -# -- -\usepackage{$0} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/.yas-parents b/emacs/.emacs.d/snippets/python-mode/.yas-parents deleted file mode 100644 index 75d003f..0000000 --- a/emacs/.emacs.d/snippets/python-mode/.yas-parents +++ /dev/null @@ -1 +0,0 @@ -prog-mode diff --git a/emacs/.emacs.d/snippets/python-mode/.yas-setup.el b/emacs/.emacs.d/snippets/python-mode/.yas-setup.el deleted file mode 100644 index 1af8703..0000000 --- a/emacs/.emacs.d/snippets/python-mode/.yas-setup.el +++ /dev/null @@ -1,39 +0,0 @@ -(require 'yasnippet) -(defvar yas-text) - -(defun python-split-args (arg-string) - "Split a python argument string into ((name, default)..) tuples" - (mapcar (lambda (x) - (split-string x "[[:blank:]]*=[[:blank:]]*" t)) - (split-string arg-string "[[:blank:]]*,[[:blank:]]*" t))) - -(defun python-args-to-docstring () - "return docstring format for the python arguments in yas-text" - (let* ((indent (concat "\n" (make-string (current-column) 32))) - (args (python-split-args yas-text)) - (max-len (if args (apply 'max (mapcar (lambda (x) (length (nth 0 x))) args)) 0)) - (formatted-args (mapconcat - (lambda (x) - (concat (nth 0 x) (make-string (- max-len (length (nth 0 x))) ? ) " -- " - (if (nth 1 x) (concat "\(default " (nth 1 x) "\)")))) - args - indent))) - (unless (string= formatted-args "") - (mapconcat 'identity (list "Keyword Arguments:" formatted-args) indent)))) - -(defun python-args-to-docstring-numpy () - "return docstring format for the python arguments in yas-text" - (let* ((args (python-split-args yas-text)) - (format-arg (lambda(arg) - (concat (nth 0 arg) " : " (if (nth 1 arg) ", optional") "\n"))) - (formatted-params (mapconcat format-arg args "\n")) - (formatted-ret (mapconcat format-arg (list (list "out")) "\n"))) - (unless (string= formatted-params "") - (mapconcat 'identity - (list "\nParameters\n----------" formatted-params - "\nReturns\n-------" formatted-ret) - "\n")))) - - -(add-hook 'python-mode-hook - '(lambda () (set (make-local-variable 'yas-indent-line) 'fixed))) diff --git a/emacs/.emacs.d/snippets/python-mode/.yas-setup.elc b/emacs/.emacs.d/snippets/python-mode/.yas-setup.elc deleted file mode 100644 index 58fca13..0000000 Binary files a/emacs/.emacs.d/snippets/python-mode/.yas-setup.elc and /dev/null differ diff --git a/emacs/.emacs.d/snippets/python-mode/__contains__ b/emacs/.emacs.d/snippets/python-mode/__contains__ deleted file mode 100644 index 4d4ad50..0000000 --- a/emacs/.emacs.d/snippets/python-mode/__contains__ +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: __contains__ -# key: cont -# group: dunder methods -# -- -def __contains__(self, el): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/__enter__ b/emacs/.emacs.d/snippets/python-mode/__enter__ deleted file mode 100644 index 3dcc3ba..0000000 --- a/emacs/.emacs.d/snippets/python-mode/__enter__ +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: __enter__ -# key: ent -# group: dunder methods -# -- -def __enter__(self): - $0 - - return self \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/__exit__ b/emacs/.emacs.d/snippets/python-mode/__exit__ deleted file mode 100644 index cd9de7d..0000000 --- a/emacs/.emacs.d/snippets/python-mode/__exit__ +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: __exit__ -# key: ex -# group: dunder methods -# -- -def __exit__(self, type, value, traceback): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/__getitem__ b/emacs/.emacs.d/snippets/python-mode/__getitem__ deleted file mode 100644 index 939bd1a..0000000 --- a/emacs/.emacs.d/snippets/python-mode/__getitem__ +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: __getitem__ -# key: getit -# group: dunder methods -# -- -def __getitem__(self, ${1:key}): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/__len__ b/emacs/.emacs.d/snippets/python-mode/__len__ deleted file mode 100644 index 9e6c164..0000000 --- a/emacs/.emacs.d/snippets/python-mode/__len__ +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: __len__ -# key: len -# group: dunder methods -# -- -def __len__(self): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/__new__ b/emacs/.emacs.d/snippets/python-mode/__new__ deleted file mode 100644 index 8ccb151..0000000 --- a/emacs/.emacs.d/snippets/python-mode/__new__ +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: __new__ -# key: new -# group: dunder methods -# -- -def __new__(mcs, name, bases, dct): - $0 - return type.__new__(mcs, name, bases, dct) diff --git a/emacs/.emacs.d/snippets/python-mode/__setitem__ b/emacs/.emacs.d/snippets/python-mode/__setitem__ deleted file mode 100644 index c7db5b1..0000000 --- a/emacs/.emacs.d/snippets/python-mode/__setitem__ +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: __setitem__ -# key: setit -# group: dunder methods -# -- -def __setitem__(self, ${1:key}, ${2:val}): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/all b/emacs/.emacs.d/snippets/python-mode/all deleted file mode 100644 index b92c4dc..0000000 --- a/emacs/.emacs.d/snippets/python-mode/all +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: all -# key: all -# -- -__all__ = [ - $0 -] \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/arg b/emacs/.emacs.d/snippets/python-mode/arg deleted file mode 100644 index f5145ec..0000000 --- a/emacs/.emacs.d/snippets/python-mode/arg +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: arg -# key: arg -# group: argparser -# -- -parser.add_argument('-$1', '--$2', - $0) diff --git a/emacs/.emacs.d/snippets/python-mode/arg_positional b/emacs/.emacs.d/snippets/python-mode/arg_positional deleted file mode 100644 index b54fc46..0000000 --- a/emacs/.emacs.d/snippets/python-mode/arg_positional +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: arg_positional -# key: arg -# group: argparser -# -- -parser.add_argument('${1:varname}', $0) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/assert b/emacs/.emacs.d/snippets/python-mode/assert deleted file mode 100644 index ec82efe..0000000 --- a/emacs/.emacs.d/snippets/python-mode/assert +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: assert -# key: ass -# group: testing -# -- -assert $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/assertEqual b/emacs/.emacs.d/snippets/python-mode/assertEqual deleted file mode 100644 index 29282b9..0000000 --- a/emacs/.emacs.d/snippets/python-mode/assertEqual +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: assertEqual -# key: ae -# group: testing -# -- -self.assertEqual($1, $2) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/assertFalse b/emacs/.emacs.d/snippets/python-mode/assertFalse deleted file mode 100644 index 41a9dcf..0000000 --- a/emacs/.emacs.d/snippets/python-mode/assertFalse +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: assertFalse -# key: af -# group: testing -# -- -self.assertFalse($0) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/assertIn b/emacs/.emacs.d/snippets/python-mode/assertIn deleted file mode 100644 index 74e1ee7..0000000 --- a/emacs/.emacs.d/snippets/python-mode/assertIn +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: assertIn -# key: ai -# group: testing -# -- -self.assertIn(${1:member}, ${2:container}) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/assertNotEqual b/emacs/.emacs.d/snippets/python-mode/assertNotEqual deleted file mode 100644 index 6837407..0000000 --- a/emacs/.emacs.d/snippets/python-mode/assertNotEqual +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: assertNotEqual -# key: ane -# group: testing -# -- -self.assertNotEqual($1, $2) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/assertNotIn b/emacs/.emacs.d/snippets/python-mode/assertNotIn deleted file mode 100644 index 4780a7e..0000000 --- a/emacs/.emacs.d/snippets/python-mode/assertNotIn +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: assetNotIn -# key: an -# group: testing -# -- -self.assertNotIn(${1:member}, ${2:container}) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/assertRaises b/emacs/.emacs.d/snippets/python-mode/assertRaises deleted file mode 100644 index db125da..0000000 --- a/emacs/.emacs.d/snippets/python-mode/assertRaises +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: assertRaises -# key: ar -# group: testing -# -- -self.assertRaises(${1:Exception}, ${2:fun}) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/assertRaises.with b/emacs/.emacs.d/snippets/python-mode/assertRaises.with deleted file mode 100644 index c97807e..0000000 --- a/emacs/.emacs.d/snippets/python-mode/assertRaises.with +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: assertRaises -# key: ar -# -- -with self.assertRaises(${1:Exception}): - $0 diff --git a/emacs/.emacs.d/snippets/python-mode/assertTrue b/emacs/.emacs.d/snippets/python-mode/assertTrue deleted file mode 100644 index 1cc59ac..0000000 --- a/emacs/.emacs.d/snippets/python-mode/assertTrue +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: assertTrue -# key: at -# group: testing -# -- -self.assertTrue($0) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/celery_pdb b/emacs/.emacs.d/snippets/python-mode/celery_pdb deleted file mode 100644 index 6095b2d..0000000 --- a/emacs/.emacs.d/snippets/python-mode/celery_pdb +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: celery pdb -# key: cdb -# group: debug -# -- -from celery.contrib import rdb; rdb.set_trace() \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/classmethod b/emacs/.emacs.d/snippets/python-mode/classmethod deleted file mode 100644 index 8e0e106..0000000 --- a/emacs/.emacs.d/snippets/python-mode/classmethod +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: classmethod -# key: cm -# group: object oriented -# -- -@classmethod -def ${1:meth}(cls, $2): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/cls b/emacs/.emacs.d/snippets/python-mode/cls deleted file mode 100644 index f857cdb..0000000 --- a/emacs/.emacs.d/snippets/python-mode/cls +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: class -# key: cls -# group: object oriented -# -- -class ${1:class}: - $0 diff --git a/emacs/.emacs.d/snippets/python-mode/dec b/emacs/.emacs.d/snippets/python-mode/dec deleted file mode 100644 index b22c9e9..0000000 --- a/emacs/.emacs.d/snippets/python-mode/dec +++ /dev/null @@ -1,14 +0,0 @@ -# -*- mode: snippet -*- -# name: dec -# key: dec -# group : definitions -# -- -def ${1:decorator}(func): - $2 - def _$1(*args, **kwargs): - $3 - ret = func(*args, **kwargs) - $4 - return ret - - return _$1 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/deftest b/emacs/.emacs.d/snippets/python-mode/deftest deleted file mode 100644 index 394553a..0000000 --- a/emacs/.emacs.d/snippets/python-mode/deftest +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: deftest -# key: dt -# group: testing -# -- -def test_${1:long_name}(self): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/django_test_class b/emacs/.emacs.d/snippets/python-mode/django_test_class deleted file mode 100644 index 386e305..0000000 --- a/emacs/.emacs.d/snippets/python-mode/django_test_class +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet; require-final-newline: nil -*- -# name: django_test_class -# key: tcs -# group: testing -# -- -class ${1:Model}Test(TestCase): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/doc b/emacs/.emacs.d/snippets/python-mode/doc deleted file mode 100644 index 2929e78..0000000 --- a/emacs/.emacs.d/snippets/python-mode/doc +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: doc -# key: d -# -- -"""$0 -""" \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/doctest b/emacs/.emacs.d/snippets/python-mode/doctest deleted file mode 100644 index a5e4bb5..0000000 --- a/emacs/.emacs.d/snippets/python-mode/doctest +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: doctest -# key: doc -# group: testing -# -- ->>> ${1:function calls} -${2:desired output} -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/embed b/emacs/.emacs.d/snippets/python-mode/embed deleted file mode 100644 index 8d21a7c..0000000 --- a/emacs/.emacs.d/snippets/python-mode/embed +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: embed -# key: embed -# -- -from IPython import embed; embed() diff --git a/emacs/.emacs.d/snippets/python-mode/eq b/emacs/.emacs.d/snippets/python-mode/eq deleted file mode 100644 index e19c328..0000000 --- a/emacs/.emacs.d/snippets/python-mode/eq +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: __eq__ -# key: eq -# group: dunder methods -# -- -def __eq__(self, other): - return self.$1 == other.$1 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/for b/emacs/.emacs.d/snippets/python-mode/for deleted file mode 100644 index 0033c87..0000000 --- a/emacs/.emacs.d/snippets/python-mode/for +++ /dev/null @@ -1,6 +0,0 @@ -# name: for ... in ... : ... -# key: for -# group : control structure -# -- -for ${var} in ${collection}: - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/from b/emacs/.emacs.d/snippets/python-mode/from deleted file mode 100644 index 3a4acfc..0000000 --- a/emacs/.emacs.d/snippets/python-mode/from +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: from -# key: from -# group : general -# -- -from ${1:lib} import ${2:funs} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/function b/emacs/.emacs.d/snippets/python-mode/function deleted file mode 100644 index d7e8f12..0000000 --- a/emacs/.emacs.d/snippets/python-mode/function +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: function -# key: f -# group: definitions -# -- -def ${1:fun}(${2:args}): - $0 diff --git a/emacs/.emacs.d/snippets/python-mode/function_docstring b/emacs/.emacs.d/snippets/python-mode/function_docstring deleted file mode 100644 index f372d26..0000000 --- a/emacs/.emacs.d/snippets/python-mode/function_docstring +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: function_docstring -# key: fd -# group: definitions -# NOTE: Use minimum indentation, because Emacs 25+ doesn't dedent docstrings. -# -- -def ${1:name}($2): - \"\"\"$3 - ${2:$(python-args-to-docstring)} - \"\"\" - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/function_docstring_numpy b/emacs/.emacs.d/snippets/python-mode/function_docstring_numpy deleted file mode 100644 index 00ea351..0000000 --- a/emacs/.emacs.d/snippets/python-mode/function_docstring_numpy +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# contributor: Egor Panfilov -# name: function_docstring_numpy -# key: fdn -# group: definitions -# -- -def ${1:name}($2): - \"\"\"$3 - ${2:$(python-args-to-docstring-numpy)} - \"\"\" - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/if b/emacs/.emacs.d/snippets/python-mode/if deleted file mode 100644 index d1538a9..0000000 --- a/emacs/.emacs.d/snippets/python-mode/if +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: if -# key: if -# group : control structure -# -- -if ${1:cond}: - $0 diff --git a/emacs/.emacs.d/snippets/python-mode/ife b/emacs/.emacs.d/snippets/python-mode/ife deleted file mode 100644 index 4b8f613..0000000 --- a/emacs/.emacs.d/snippets/python-mode/ife +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: ife -# key: ife -# group : control structure -# -- -if $1: - $2 -else: - $0 diff --git a/emacs/.emacs.d/snippets/python-mode/ifmain b/emacs/.emacs.d/snippets/python-mode/ifmain deleted file mode 100644 index 9575798..0000000 --- a/emacs/.emacs.d/snippets/python-mode/ifmain +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: ifmain -# key: ifm -# -- -if __name__ == '__main__': - ${1:main()} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/import b/emacs/.emacs.d/snippets/python-mode/import deleted file mode 100644 index f34bc39..0000000 --- a/emacs/.emacs.d/snippets/python-mode/import +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: import -# key: imp -# group : general -# -- -import ${1:lib}${2: as ${3:alias}} -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/init b/emacs/.emacs.d/snippets/python-mode/init deleted file mode 100644 index aece55c..0000000 --- a/emacs/.emacs.d/snippets/python-mode/init +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: init -# key: init -# group : definitions -# -- -def __init__(self${1:, args}): - ${2:"${3:docstring}" - }$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/init_docstring b/emacs/.emacs.d/snippets/python-mode/init_docstring deleted file mode 100644 index 51af8db..0000000 --- a/emacs/.emacs.d/snippets/python-mode/init_docstring +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: init_docstring -# key: id -# group : definitions -# -- -def __init__(self$1): - \"\"\"$2 - ${1:$(python-args-to-docstring)} - \"\"\" - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/interact b/emacs/.emacs.d/snippets/python-mode/interact deleted file mode 100644 index 4b412c8..0000000 --- a/emacs/.emacs.d/snippets/python-mode/interact +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: interact -# key: int -# -- -import code; code.interact(local=locals()) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/ipdbdebug b/emacs/.emacs.d/snippets/python-mode/ipdbdebug deleted file mode 100644 index f45ad75..0000000 --- a/emacs/.emacs.d/snippets/python-mode/ipdbdebug +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet; require-final-newline: nil -*- -# name: ipdb trace -# key: itr -# group: debug -# -- -import ipdb; ipdb.set_trace() \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/iter b/emacs/.emacs.d/snippets/python-mode/iter deleted file mode 100644 index a4fed13..0000000 --- a/emacs/.emacs.d/snippets/python-mode/iter +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: __iter__ -# key: iter -# group: dunder methods -# -- -def __iter__(self): - return ${1:iter($2)} \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/lambda b/emacs/.emacs.d/snippets/python-mode/lambda deleted file mode 100644 index 08b268b..0000000 --- a/emacs/.emacs.d/snippets/python-mode/lambda +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: lambda -# key: lam -# -- -lambda ${1:x}: $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/list b/emacs/.emacs.d/snippets/python-mode/list deleted file mode 100644 index 63cef24..0000000 --- a/emacs/.emacs.d/snippets/python-mode/list +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: list -# key: li -# group : definitions -# -- -[${1:el} for $1 in ${2:list}] -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/logger_name b/emacs/.emacs.d/snippets/python-mode/logger_name deleted file mode 100644 index 9759dd9..0000000 --- a/emacs/.emacs.d/snippets/python-mode/logger_name +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: logger_name -# key: ln -# -- -logger = logging.getLogger(${1:__name__}) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/logging b/emacs/.emacs.d/snippets/python-mode/logging deleted file mode 100644 index 568eeea..0000000 --- a/emacs/.emacs.d/snippets/python-mode/logging +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: logging -# key: log -# -- -logger = logging.getLogger("${1:name}") -logger.setLevel(logging.${2:level}) diff --git a/emacs/.emacs.d/snippets/python-mode/main b/emacs/.emacs.d/snippets/python-mode/main deleted file mode 100644 index 9f3c721..0000000 --- a/emacs/.emacs.d/snippets/python-mode/main +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: main -# key: main -# -- -def main(): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/metaclass b/emacs/.emacs.d/snippets/python-mode/metaclass deleted file mode 100644 index 1e688e4..0000000 --- a/emacs/.emacs.d/snippets/python-mode/metaclass +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: metaclass -# key: mt -# group: object oriented -# -- -__metaclass__ = type \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/method b/emacs/.emacs.d/snippets/python-mode/method deleted file mode 100644 index 985ef0c..0000000 --- a/emacs/.emacs.d/snippets/python-mode/method +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: method -# key: m -# group: object oriented -# -- -def ${1:method}(self${2:, $3}): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/method_docstring b/emacs/.emacs.d/snippets/python-mode/method_docstring deleted file mode 100644 index 8f5e78d..0000000 --- a/emacs/.emacs.d/snippets/python-mode/method_docstring +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: method_docstring -# key: md -# group: object oriented -# -- -def ${1:name}(self$2): - \"\"\"$3 - ${2:$(python-args-to-docstring)} - \"\"\" - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/not_impl b/emacs/.emacs.d/snippets/python-mode/not_impl deleted file mode 100644 index 515e353..0000000 --- a/emacs/.emacs.d/snippets/python-mode/not_impl +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: not_impl -# key: not_impl -# -- -raise NotImplementedError \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/np b/emacs/.emacs.d/snippets/python-mode/np deleted file mode 100644 index 9f6327c..0000000 --- a/emacs/.emacs.d/snippets/python-mode/np +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: np -# key: np -# group : general -# -- -import numpy as np -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/parse_args b/emacs/.emacs.d/snippets/python-mode/parse_args deleted file mode 100644 index aa61070..0000000 --- a/emacs/.emacs.d/snippets/python-mode/parse_args +++ /dev/null @@ -1,9 +0,0 @@ -# -*- mode: snippet -*- -# name: parse_args -# key: pargs -# group: argparser -# -- -def parse_arguments(): - parser = argparse.ArgumentParser(description='$1') - $0 - return parser.parse_args() \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/parser b/emacs/.emacs.d/snippets/python-mode/parser deleted file mode 100644 index 29a04ea..0000000 --- a/emacs/.emacs.d/snippets/python-mode/parser +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: parser -# key: pars -# group: argparser -# -- -parser = argparse.ArgumentParser(description='$1') -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/pass b/emacs/.emacs.d/snippets/python-mode/pass deleted file mode 100644 index 4734f7f..0000000 --- a/emacs/.emacs.d/snippets/python-mode/pass +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: pass -# key: ps -# -- -pass \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/pl b/emacs/.emacs.d/snippets/python-mode/pl deleted file mode 100644 index f0fdd05..0000000 --- a/emacs/.emacs.d/snippets/python-mode/pl +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: Import pyplot -# key: plt -# group : general -# -- -import matplotlib.pyplot as plt -$0 diff --git a/emacs/.emacs.d/snippets/python-mode/print b/emacs/.emacs.d/snippets/python-mode/print deleted file mode 100644 index cc1c797..0000000 --- a/emacs/.emacs.d/snippets/python-mode/print +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: print -# key: p -# -- -print($0) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/prop b/emacs/.emacs.d/snippets/python-mode/prop deleted file mode 100644 index 34e4fa1..0000000 --- a/emacs/.emacs.d/snippets/python-mode/prop +++ /dev/null @@ -1,17 +0,0 @@ -# contributor: Mads D. Kristensen -# name: prop -# -- -def ${1:foo}(): - doc = """${2:Doc string}""" - def fget(self): - return self._$1 - - def fset(self, value): - self._$1 = value - - def fdel(self): - del self._$1 - return locals() -$1 = property(**$1()) - -$0 diff --git a/emacs/.emacs.d/snippets/python-mode/reg b/emacs/.emacs.d/snippets/python-mode/reg deleted file mode 100644 index c4ebeac..0000000 --- a/emacs/.emacs.d/snippets/python-mode/reg +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: reg -# key: reg -# group : general -# -- -${1:regexp} = re.compile(r"${2:expr}") -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/repr b/emacs/.emacs.d/snippets/python-mode/repr deleted file mode 100644 index a1f6783..0000000 --- a/emacs/.emacs.d/snippets/python-mode/repr +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: __repr__ -# key: repr -# group: dunder methods -# -- -def __repr__(self): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/return b/emacs/.emacs.d/snippets/python-mode/return deleted file mode 100644 index 641a308..0000000 --- a/emacs/.emacs.d/snippets/python-mode/return +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: return -# key: r -# -- -return $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/scls b/emacs/.emacs.d/snippets/python-mode/scls deleted file mode 100644 index 4a10e28..0000000 --- a/emacs/.emacs.d/snippets/python-mode/scls +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: subclass -# key: scls -# group: object oriented -# -- -class ${1:class}(${2:super-class}): - $0 diff --git a/emacs/.emacs.d/snippets/python-mode/script b/emacs/.emacs.d/snippets/python-mode/script deleted file mode 100644 index 55e42e9..0000000 --- a/emacs/.emacs.d/snippets/python-mode/script +++ /dev/null @@ -1,11 +0,0 @@ -# -*- mode: snippet -*- -# name: script -# key: script -# -- -#!/usr/bin/env python - -def main(): - pass - -if __name__ == '__main__': - main() diff --git a/emacs/.emacs.d/snippets/python-mode/self b/emacs/.emacs.d/snippets/python-mode/self deleted file mode 100644 index 4461022..0000000 --- a/emacs/.emacs.d/snippets/python-mode/self +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: self -# key: . -# group: object oriented -# -- -self.$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/self_without_dot b/emacs/.emacs.d/snippets/python-mode/self_without_dot deleted file mode 100644 index a1a0526..0000000 --- a/emacs/.emacs.d/snippets/python-mode/self_without_dot +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: self_without_dot -# key: s -# group: object oriented -# -- -self \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/selfassign b/emacs/.emacs.d/snippets/python-mode/selfassign deleted file mode 100644 index 95d7b2b..0000000 --- a/emacs/.emacs.d/snippets/python-mode/selfassign +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: selfassign -# key: sn -# group: object oriented -# -- -self.$1 = $1 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/setdef b/emacs/.emacs.d/snippets/python-mode/setdef deleted file mode 100644 index 2398eb1..0000000 --- a/emacs/.emacs.d/snippets/python-mode/setdef +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: setdef -# key: setdef -# -- -${1:var}.setdefault(${2:key}, []).append(${3:value}) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/setup b/emacs/.emacs.d/snippets/python-mode/setup deleted file mode 100644 index 107abc1..0000000 --- a/emacs/.emacs.d/snippets/python-mode/setup +++ /dev/null @@ -1,14 +0,0 @@ -# -*- mode: snippet -*- -# name: setup -# key: setup -# group: distribute -# -- -from setuptools import setup - -package = '${1:name}' -version = '${2:0.1}' - -setup(name=package, - version=version, - description="${3:description}", - url='${4:url}'$0) diff --git a/emacs/.emacs.d/snippets/python-mode/size b/emacs/.emacs.d/snippets/python-mode/size deleted file mode 100644 index 47a0f38..0000000 --- a/emacs/.emacs.d/snippets/python-mode/size +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: size -# key: size -# -- -sys.getsizeof($0) \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/static b/emacs/.emacs.d/snippets/python-mode/static deleted file mode 100644 index 19c3df9..0000000 --- a/emacs/.emacs.d/snippets/python-mode/static +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: static -# key: sm -# -- -@staticmethod -def ${1:func}($0): diff --git a/emacs/.emacs.d/snippets/python-mode/str b/emacs/.emacs.d/snippets/python-mode/str deleted file mode 100644 index b0572e3..0000000 --- a/emacs/.emacs.d/snippets/python-mode/str +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: __str__ -# key: str -# group: dunder methods -# -- -def __str__(self): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/super b/emacs/.emacs.d/snippets/python-mode/super deleted file mode 100644 index 23fba5d..0000000 --- a/emacs/.emacs.d/snippets/python-mode/super +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: super -# key: super -# group: object oriented -# -- -super(`(replace-regexp-in-string "\\([.]\\)[^.]+$" ", self)." (python-info-current-defun) nil nil 1)`($1) -$0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/test_class b/emacs/.emacs.d/snippets/python-mode/test_class deleted file mode 100644 index 7342c5f..0000000 --- a/emacs/.emacs.d/snippets/python-mode/test_class +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: test_class -# key: tcs -# group : testing -# -- -class Test${1:toTest}(${2:unittest.TestCase}): - $0 diff --git a/emacs/.emacs.d/snippets/python-mode/test_file b/emacs/.emacs.d/snippets/python-mode/test_file deleted file mode 100644 index e4b5315..0000000 --- a/emacs/.emacs.d/snippets/python-mode/test_file +++ /dev/null @@ -1,12 +0,0 @@ -# -*- mode: snippet -*- -# name: test_file -# key: tf -# group : testing -# -- -import unittest -${1:from ${2:test_file} import *} - -$0 - -if __name__ == '__main__': - unittest.main() \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/trace b/emacs/.emacs.d/snippets/python-mode/trace deleted file mode 100644 index e475d62..0000000 --- a/emacs/.emacs.d/snippets/python-mode/trace +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: trace -# key: tr -# group: debug -# -- -import pdb; pdb.set_trace() \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/try b/emacs/.emacs.d/snippets/python-mode/try deleted file mode 100644 index 8836de6..0000000 --- a/emacs/.emacs.d/snippets/python-mode/try +++ /dev/null @@ -1,8 +0,0 @@ -# -*- mode: snippet -*- -# name: try -# key: try -# -- -try: - $1 -except ${2:Exception}: - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/tryelse b/emacs/.emacs.d/snippets/python-mode/tryelse deleted file mode 100644 index f2e44e4..0000000 --- a/emacs/.emacs.d/snippets/python-mode/tryelse +++ /dev/null @@ -1,10 +0,0 @@ -# -*- mode: snippet -*- -# name: tryelse -# key: try -# -- -try: - $1 -except $2: - $3 -else: - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/unicode b/emacs/.emacs.d/snippets/python-mode/unicode deleted file mode 100644 index 52d6b8d..0000000 --- a/emacs/.emacs.d/snippets/python-mode/unicode +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: __unicode__ -# key: un -# group: dunder methods -# -- -def __unicode__(self): - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/unicode_literals b/emacs/.emacs.d/snippets/python-mode/unicode_literals deleted file mode 100644 index 08e2eb5..0000000 --- a/emacs/.emacs.d/snippets/python-mode/unicode_literals +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: unicode_literals -# key: fu -# group: future -# -- -from __future__ import unicode_literals diff --git a/emacs/.emacs.d/snippets/python-mode/utf8 b/emacs/.emacs.d/snippets/python-mode/utf8 deleted file mode 100644 index 2ebd82e..0000000 --- a/emacs/.emacs.d/snippets/python-mode/utf8 +++ /dev/null @@ -1,5 +0,0 @@ -# -*- mode: snippet -*- -# name: utf-8 encoding -# key: utf8 -# -- -# -*- coding: utf-8 -*- diff --git a/emacs/.emacs.d/snippets/python-mode/while b/emacs/.emacs.d/snippets/python-mode/while deleted file mode 100644 index 7b3539c..0000000 --- a/emacs/.emacs.d/snippets/python-mode/while +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: while -# key: wh -# group: control structure -# -- -while ${1:True}: - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/with b/emacs/.emacs.d/snippets/python-mode/with deleted file mode 100644 index 7fcbd38..0000000 --- a/emacs/.emacs.d/snippets/python-mode/with +++ /dev/null @@ -1,7 +0,0 @@ -# -*- mode: snippet -*- -# name: with -# key: with -# group : control structure -# -- -with ${1:expr}${2: as ${3:alias}}: - $0 \ No newline at end of file diff --git a/emacs/.emacs.d/snippets/python-mode/with_statement b/emacs/.emacs.d/snippets/python-mode/with_statement deleted file mode 100644 index 1be3692..0000000 --- a/emacs/.emacs.d/snippets/python-mode/with_statement +++ /dev/null @@ -1,6 +0,0 @@ -# -*- mode: snippet -*- -# name: with_statement -# key: fw -# group: future -# -- -from __future__ import with_statement \ No newline at end of file diff --git a/emacs/.emacs.d/themes/.gitkeep b/emacs/.emacs.d/themes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/emacs/.emacs.d/utils/installer.sh b/emacs/.emacs.d/utils/installer.sh new file mode 100755 index 0000000..15f6e7e --- /dev/null +++ b/emacs/.emacs.d/utils/installer.sh @@ -0,0 +1,246 @@ +install_prelude () { + printf " Cloning the Prelude's GitHub repository...\n$RESET" + if [ x$PRELUDE_VERBOSE != x ] + then + /usr/bin/env git clone $PRELUDE_URL "$PRELUDE_INSTALL_DIR" + else + /usr/bin/env git clone $PRELUDE_URL "$PRELUDE_INSTALL_DIR" > /dev/null + fi + if ! [ $? -eq 0 ] + then + printf "$RED A fatal error occurred during Prelude's installation. Aborting..." + exit 1 + fi +} + +make_prelude_dirs () { + printf " Making the required directories.\n$RESET" + mkdir -p "$PRELUDE_INSTALL_DIR/savefile" +} + +colors_ () { + case "$SHELL" in + *zsh) + autoload colors && colors + eval RESET='$reset_color' + for COLOR in RED GREEN YELLOW BLUE MAGENTA CYAN BLACK WHITE + do + eval $COLOR='$fg_no_bold[${(L)COLOR}]' + eval B$COLOR='$fg_bold[${(L)COLOR}]' + done + ;; + *) + RESET='\e[0m' # Reset + RED='\e[0;31m' # Red + GREEN='\e[0;32m' # Green + YELLOW='\e[0;33m' # Yellow + BLUE='\e[0;34m' # Blue + PURPLE='\e[0;35m' # Magenta + CYAN='\e[0;36m' # Cyan + WHITE='\e[0;37m' # White + BRED='\e[1;31m' # Bold Red + BGREEN='\e[1;32m' # Bold Green + BYELLOW='\e[1;33m' # Bold Yellow + BBLUE='\e[1;34m' # Bold Blue + BPURPLE='\e[1;35m' # Bold Magenta + BCYAN='\e[1;36m' # Bold Cyan + BWHITE='\e[1;37m' # Bold White + ;; + esac +} + +# Commandline args: +# -d/--directory [dir] +# Install prelude into the specified directory. If 'dir' is a relative path prefix it with $HOME. +# Defaults to '$HOME/.emacs.d' +# -c/--colors +# Enable colors +# -s/--source [url] +# Clone prelude from 'url'. +# Defaults to 'https://github.com/bbatsov/prelude.git' +# -i/--into +# If one exists, install into the existing config +# -n/--no-bytecompile +# Skip the compilation of the prelude files. +# -h/--help +# Print help +# -v/--verbose +# Verbose output, for debugging + +usage() { + printf "Usage: $0 [OPTION]\n" + printf " -c, --colors \t \t \t Enable colors.\n" + printf " -d, --directory [dir] \t Install prelude into the specified directory.\n" + printf " \t \t \t \t If 'dir' is a relative path prefix with $HOME.\n" + printf " \t \t \t \t Defaults to $HOME/.emacs.d\n" + printf " -s, --source [url] \t \t Clone prelude from 'url'.\n" + printf " \t \t \t \t Defaults to 'https://github.com/bbatsov/prelude.git'.\n" + printf " -n, --no-bytecompile \t \t Skip the bytecompilation step of prelude.\n" + printf " -i, --into \t \t \t Install Prelude into a subdirectory in the existing configuration\n" + printf " \t \t \t \t The default behavious is to install prelude into the existing\n" + printf " \t \t \t \t emacs configuration.\n" + printf " -h, --help \t \t \t Display this help and exit\n" + printf " -v, --verbose \t \t Display verbose information\n" + printf "\n" +} + +### Parse cli +while [ $# -gt 0 ] +do + case $1 in + -d | --directory) + PRELUDE_INSTALL_DIR=$2 + shift 2 + ;; + -c | --colors) + colors_ + shift 1 + ;; + -s | --source) + PRELUDE_URL=$2 + shift 2 + ;; + -i | --into) + PRELUDE_INTO='true' + shift 1 + ;; + -n | --no-bytecompile) + PRELUDE_SKIP_BC='true' + shift 1 + ;; + -h | --help) + usage + exit 0 + ;; + -v | --verbose) + PRELUDE_VERBOSE='true'; + shift 1 + ;; + *) + printf "Unkown option: $1\n" + shift 1 + ;; + esac +done + +VERBOSE_COLOR=$BBLUE + +[ -z "$PRELUDE_URL" ] && PRELUDE_URL="https://github.com/bbatsov/prelude.git" +[ -z "$PRELUDE_INSTALL_DIR" ] && PRELUDE_INSTALL_DIR="$HOME/.emacs.d" + +if [ x$PRELUDE_VERBOSE != x ] +then + printf "$VERBOSE_COLOR" + printf "PRELUDE_VERBOSE = $PRELUDE_VERBOSE\n" + printf "INSTALL_DIR = $PRELUDE_INSTALL_DIR\n" + printf "SOURCE_URL = $PRELUDE_URL\n" + printf "$RESET" + if [ -n "$PRELUDE_SKIP_BC" ] + then + printf "Skipping bytecompilation.\n" + fi + if [ -n "$PRELUDE_INTO" ] + then + printf "Replacing existing config (if one exists).\n" + fi + printf "$RESET" +fi + +# If prelude is already installed +if [ -f "$PRELUDE_INSTALL_DIR/core/prelude-core.el" ] +then + printf "\n\n$BRED" + printf "You already have Prelude installed.$RESET\nYou'll need to remove $PRELUDE_INSTALL_DIR/prelude if you want to install Prelude again.\n" + printf "If you want to update your copy of prelude, run 'git pull origin master' from your prelude directory\n\n" + exit 1; +fi + +### Check dependencies +printf "$CYAN Checking to see if git is installed... $RESET" +if hash git 2>&- +then + printf "$GREEN found.$RESET\n" +else + printf "$RED not found. Aborting installation!$RESET\n" + exit 1 +fi; + +printf "$CYAN Checking to see if aspell is installed... " +if hash aspell 2>&- +then + printf "$GREEN found.$RESET\n" +else + printf "$RED not found. Install aspell to benefit from flyspell-mode!$RESET\n" +fi + +### Check emacs version +if [ $(emacs --version 2>/dev/null | sed -n 's/.*[^0-9.]\([0-9]*\.[0-9.]*\).*/\1/p;q' | sed 's/\..*//g') -lt 24 ] +then + printf "$YELLOW WARNING:$RESET Prelude depends on emacs $RED 24$RESET !\n" +fi + +if [ -f "$HOME/.emacs" ] +then + ## If $HOME/.emacs exists, emacs ignores prelude's init.el, so remove it + printf " Backing up the existing $HOME/.emacs to $HOME/.emacs.pre-prelude\n" + mv $HOME/.emacs $HOME/.emacs.pre-prelude +fi + +if [ -d "$PRELUDE_INSTALL_DIR" ] || [ -f "$PRELUDE_INSTALL_DIR" ] +then + # Existing file/directory found -> backup + printf " Backing up the existing config to $PRELUDE_INSTALL_DIR.pre-prelude.tar.\n" + tar -cf "$PRELUDE_INSTALL_DIR.pre-prelude.tar" "$PRELUDE_INSTALL_DIR" > /dev/null 2>&1 + PRELUDE_INSTALL_DIR_ORIG="$PRELUDE_INSTALL_DIR" + # Overwrite existing? + [ -n "$PRELUDE_INTO" ] && PRELUDE_INSTALL_DIR="$PRELUDE_INSTALL_DIR/prelude" + # Clear destination directory for git clone to work + rm -fr "$PRELUDE_INSTALL_DIR" + mkdir "$PRELUDE_INSTALL_DIR" + # Replace existing config + install_prelude + make_prelude_dirs + # Reinstate files that weren't replaced + tar --skip-old-files -xf "$PRELUDE_INSTALL_DIR_ORIG.pre-prelude.tar" "$PRELUDE_INSTALL_DIR" > /dev/null 2>&1 + [ -n "$PRELUDE_INTO" ] && cp "$PRELUDE_INSTALL_DIR/sample/prelude-modules.el" "$PRELUDE_INSTALL_DIR" +elif [ -e "$PRELUDE_INSTALL_DIR" ] +then + # File exist but not a regular file or directory + # WTF NOW? + printf "$BRED $PRELUDE_INSTALL_DIR exist but isn't a file or directory.\n" + printf "$BRED please remove this file or install prelude in a different directory" + printf "$BRED (-d flag)\n$RESET" + exit 1 +else + # Nothing yet so just install prelude + install_prelude + make_prelude_dirs + cp "$PRELUDE_INSTALL_DIR/sample/prelude-modules.el" "$PRELUDE_INSTALL_DIR" +fi + +if [ -z "$PRELUDE_SKIP_BC" ]; +then + if which emacs > /dev/null 2>&1 + then + printf " Bytecompiling Prelude.\n" + if [ x$PRELUDE_VERBOSE != x ] + then + emacs -batch -f batch-byte-compile "$PRELUDE_INSTALL_DIR/core"/*.el + else + emacs -batch -f batch-byte-compile "$PRELUDE_INSTALL_DIR/core"/*.el > /dev/null 2>&1 + fi + else + printf "$YELLOW Emacs not found.$RESET Skipping bytecompilation.\n" + fi +else + printf "Skipping bytecompilation.\n" +fi + +printf "\n" +printf "$BBLUE ____ _ _ \n" +printf "$BBLUE | _ \ _ __ ___| |_ _ __| | ___ \n" +printf "$BBLUE | |_) | __/ _ \ | | | |/ _ |/ _ \ \n" +printf "$BBLUE | __/| | | __/ | |_| | (_| | __/ \n" +printf "$BBLUE |_| |_| \___|_|\__,_|\__,_|\___| \n\n" +printf "$GREEN ... is now installed and ready to do thy bidding, Master $USER!$RESET\n" +printf "$GREEN Don't forget to adjust the modules you want to use in $PRELUDE_INSTALL_DIR/sample/prelude-modules.el!$RESET\n" diff --git a/emacs/.emacs.d/vendor/.gitkeep b/emacs/.emacs.d/vendor/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/i3/.config/i3/config b/i3/.config/i3/config index c471c6a..ffa1b83 100644 --- a/i3/.config/i3/config +++ b/i3/.config/i3/config @@ -135,6 +135,7 @@ exec_always --no-startup-id ff-theme-util exec_always --no-startup-id fix_xcursor exec --no-startup-id xautolock -time 10 -locker "python ~/.scripts/i3lock.py" exec --no-startup-id nextcloud +exec --no-startup-id emacs --daemon ############################################################################### ################################# Keybindings ################################# diff --git a/i3/.scripts/conkyi3 b/i3/.scripts/conkyi3 index 64ecd5a..8803cb4 100755 --- a/i3/.scripts/conkyi3 +++ b/i3/.scripts/conkyi3 @@ -1,4 +1,4 @@ #!/bin/bash echo "{\"version\":1}" echo "[[]" -exec conky -c /home/tuan/.scripts/conkyrc +exec conky -c ~/.scripts/conkyrc diff --git a/i3/.scripts/dotfiles.sh b/i3/.scripts/dotfiles.sh deleted file mode 100755 index 797ac94..0000000 --- a/i3/.scripts/dotfiles.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash - -# A script to manage my dotfiles and copy them to my git -dotfiles=$HOME/.dotfiles - -# -avv for debugging purposes -# -a for normal use -copy(){ -# rsync -avv $HOME/$1 $dotfiles/$1 - rsync -a $HOME/$1 $dotfiles/$1 -} - -notify-send "Copied dotfiles." - -# i3 gaps -# Powerline fonts must be installed -printf "\nCopying i3 configs...\n" -copy .config/i3/ - -# Termite -printf "\nCopying Termite configs...\n" -copy .config/termite/ - -# Scripts -printf "\nCopying Scripts...\n" -copy .scripts/ - -# zsh -printf "\nCopying zsh configs...\n" -copy .zshrc -copy .warprc - -# Emacs -# printf "For Emacs (with elpy) following python modules are needed: jedi rope importmagic autopep8 yapf flake8" -# printf "You must also add '~/.local/bin' to your path." -printf "\nCopying emacs configs...\n" -copy .emacs -copy .emacs.d/snippets/ - -# Latex templates -copy Templates/ diff --git a/zsh/.zshrc b/zsh/.zshrc index 9f5a6f5..9a55adf 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -58,9 +58,8 @@ PATH=$PATH:~/.local/bin # User alias alias df="df -h" alias mkvirtenv="python -m virtualenv --system-site-packages" -alias e="emacs" +alias e="emacsclient -t" alias nyan="nyancat" -alias emacs="emacs -nw" alias rm="rm -i" alias dir="du -hd 1" alias -s tex=emacs