diff --git a/.gitignore b/.gitignore index 2ac913ce1..17afdedc0 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ eproject.lst /eshell/history /.emacs.desktop /.emacs.desktop.lock +/eshell/alias +/eshell/lastdir diff --git a/config/editing.el b/config/editing.el index 116a990d5..c47505ed7 100644 --- a/config/editing.el +++ b/config/editing.el @@ -6,7 +6,7 @@ (show-paren-mode t) ;; use only spaces and no tabs (setq-default indent-tabs-mode nil) -(setq default-tab-width 4) +(setq default-tab-width 2) ;; highlight current line (global-hl-line-mode t) (set-face-background 'hl-line "#073642") diff --git a/config/navigating.el b/config/navigating.el index e1e32daac..48cb26a59 100644 --- a/config/navigating.el +++ b/config/navigating.el @@ -5,6 +5,3 @@ ;; Also auto refresh dired, but be quiet about it (setq global-auto-revert-non-file-buffers t) (setq auto-revert-verbose nil) -;; no tabs and default tab width -(setq-default indent-tabs-mode nil) -(setq tab-width 4) diff --git a/config/python.el b/config/python.el new file mode 100644 index 000000000..f78422c93 --- /dev/null +++ b/config/python.el @@ -0,0 +1,6 @@ +(add-hook 'python-mode-hook + '(lambda() + (setq indent-tabs-mode nil) + (setq indent-level 4) + (setq python-indent 4) + (setq tab-width 4))) diff --git a/config/session.el b/config/session.el index 5925199ec..3fe81963f 100644 --- a/config/session.el +++ b/config/session.el @@ -1,3 +1,5 @@ +;; no welcome buffer +(setq inhibit-startup-screen t) ;; scratch buffer empty (setq initial-scratch-message "") ;; auto-save diff --git a/extensions.el b/extensions.el index 5a4e29a79..d08a6762f 100644 --- a/extensions.el +++ b/extensions.el @@ -1,8 +1,8 @@ (defvar syl:extensions '( emacs-eclim + evil-plugins flymake - linum-relativenumber )) ;; load extensions diff --git a/extensions/evil-plugins/evil-mode-line.el b/extensions/evil-plugins/evil-mode-line.el new file mode 100644 index 000000000..9cc0688f5 --- /dev/null +++ b/extensions/evil-plugins/evil-mode-line.el @@ -0,0 +1,91 @@ +(require 'evil) +(require 'mode-line-color) + +(defgroup evil-mode-line nil + "Mode line color and message for Evil" + :group 'evil) + +(defcustom evil-mode-line-color + `((normal . ,(face-background 'mode-line)) + (insert . "#575735") + (replace . "#575735") + (operator . "DarkSeaGreen4") + (visual . "SteelBlue4") + (emacs . "#8c5353")) + "Mode line color corresponds to Evil state.") +(defcustom evil-normal-state-msg "" + "Mode line message for Evil normal state." + :type 'string + :group 'evil-mode-line) +(defcustom evil-insert-state-msg "INSERT" + "Mode line message for Evil insert state." + :type 'string + :group 'evil-mode-line) +(defcustom evil-replace-state-msg "REPLACE" + "Mode line message for Evil replace state." + :type 'string + :group 'evil-mode-line) +(defcustom evil-emacs-state-msg "x" + "Mode line message for Evil emacs state." + :type 'string + :group 'evil-mode-line) +(defcustom evil-visual-state-msg-alist + '((normal . "VISUAL") (line . "VLINE") (block . "VBLOCK")) + "Mode line messages for Evil visual states." + :type '(list (cons symbol string)) + :group 'evil-mode-line) + +(defun evil-mode-line-state-msg (&optional state) + "Find a message string for STATE. +If `evil-STATE-state-msg' is bound, use that value. Otherwise, +if STATE is a visual state, then `evil-visual-state-msg-alist' is +looked up by the return value of `evil-visual-type'. If no +message string is found, return an empty string." + (unless state (setq state evil-state)) + (let ((sym (intern (concat "evil-" (symbol-name state) "-state-msg")))) + (cond + ((boundp sym) (symbol-value sym)) + ((evil-visual-state-p) + (or (cdr (assq (evil-visual-type) evil-visual-state-msg-alist)) + (cdr (assq 'normal evil-visual-state-msg-alist)))) + (t "")))) + +(defun evil-mode-line-state-msg-format (&optional state) + "Make mode string for STATE. +If `evil-mode-line-state-msg' returns non-empty string, the mode string +is \"--STATE MESSAGE--\". Otherwise, the mode string is \"-\"." + (let* ((msg (evil-mode-line-state-msg state)) (line msg) + (empty (= (length msg) 0)) (tail (if empty "-" "--"))) + (unless empty (setq line (concat "--" msg))) + (list "" line tail))) +(defadvice skk-mode-string-to-indicator + (before evil-remove----from-skk-mode-string (mode string) activate) + "Do not put \"--\" at the beginning of mode string. +We have our own \"--\" put by `evil-mode-line-state-msg-format'." + (when (string-match "^--" string) + (setq string (substring string 2)))) + +(defvar evil-mode-line-msg (evil-mode-line-state-msg-format 'emacs-state)) + +(defun evil-update-mode-line-state-msg () + "Update `evil-mode-line-msg' and update mode line color." + (condition-case () + (progn + (set (make-local-variable 'evil-mode-line-msg) + (evil-mode-line-state-msg-format)) + (mode-line-color-update)) + (error nil))) + +(defadvice evil-refresh-mode-line (after evil-update-mode-line-msg activate) + "Update our own mode string by `evil-update-mode-line-msg'." + (evil-update-mode-line-state-msg)) + +;; setup + +(define-mode-line-color (color) + (unless color (cdr (assq evil-state evil-mode-line-color)))) + +(setq-default mode-line-format + (append '("" evil-mode-line-msg) mode-line-format)) + +(provide 'evil-mode-line) diff --git a/extensions/evil-plugins/evil-operator-comment.el b/extensions/evil-plugins/evil-operator-comment.el new file mode 100644 index 000000000..d19e196ee --- /dev/null +++ b/extensions/evil-plugins/evil-operator-comment.el @@ -0,0 +1,62 @@ +(require 'evil) + +(defgroup evil-operator-comment nil + "Comment/uncomment operator for Evil" + :prefix "evil-operator-comment-" + :group 'evil) + +(defcustom evil-operator-comment-key (kbd "C") + "A key for comment/uncomment operator" + :type `,(if (get 'key-sequence 'widget-type) + 'key-sequence + 'sexp) + :group 'evil-operator-comment) + +(defun evil-mark-on-lines (beg end lines) + (let ((beg-marker (save-excursion (goto-char beg) (point-marker))) + (end-marker (save-excursion (goto-char end) (point-marker)))) + (set-marker-insertion-type end-marker t) + (setcdr lines (cons (cons beg-marker end-marker) (cdr lines))))) + +(defun evil-apply-on-block-markers (func beg end &rest args) + "Like `evil-apply-on-block' but first mark all lines and then +call functions on the marked ranges." + (let ((lines (list nil))) + (evil-apply-on-block #'evil-mark-on-lines beg end lines) + (dolist (range (nreverse (cdr lines))) + (let ((beg (car range)) (end (cdr range))) + (apply func beg end args) + (set-marker beg nil) + (set-marker end nil))))) + +(evil-define-operator evil-comment-or-uncomment-region (beg end type) + "Comment out text from BEG to END with TYPE." + (interactive "") + (if (eq type 'block) + (evil-apply-on-block-markers #'comment-or-uncomment-region beg end) + (comment-or-uncomment-region beg end)) + ;; place cursor on beginning of line + (when (and (evil-called-interactively-p) (eq type 'line)) + (evil-first-non-blank))) + +;;;###autoload +(define-minor-mode evil-operator-comment-mode + "Buffer local minor mode of comment/uncomment operator for Evil." + :lighter "" + :keymap (make-sparse-keymap) + :group 'evil-operator-comment + (evil-normalize-keymaps)) + +(defun evil-operator-comment-mode-install () (evil-operator-comment-mode 1)) + +;;;###autoload +(define-globalized-minor-mode global-evil-operator-comment-mode + evil-operator-comment-mode evil-operator-comment-mode-install + "Global minor mode of comment/uncomment operator for Evil.") + +(evil-define-key 'normal evil-operator-comment-mode-map + evil-operator-comment-key 'evil-comment-or-uncomment-region) +(evil-define-key 'visual evil-operator-comment-mode-map + evil-operator-comment-key 'evil-comment-or-uncomment-region) + +(provide 'evil-operator-comment) diff --git a/extensions/evil-plugins/evil-operator-moccur.el b/extensions/evil-plugins/evil-operator-moccur.el new file mode 100644 index 000000000..21a6706ac --- /dev/null +++ b/extensions/evil-plugins/evil-operator-moccur.el @@ -0,0 +1,53 @@ +(require 'color-moccur) +(require 'evil) + +(defgroup evil-operator-moccur nil + "Moccur operator for Evil" + :prefix "evil-operator-moccur-" + :group 'evil) + +(defcustom evil-operator-moccur-grep-find-key (kbd "M") + "A key for moccur-grep-find operator" + :type `,(if (get 'key-sequence 'widget-type) + 'key-sequence + 'sexp) + :group 'evil-operator-moccur) + +(defcustom evil-operator-moccur-use-current-directory nil + "Uses current directory for grep and does not ask interactively." + :type 'boolean + :group 'evil-operator-moccur) + +(evil-define-operator evil-moccur-grep-find-region (beg end &optional dir) + "Moccur on text from BEG to END." + :move-point nil + (interactive "") + (unless dir + (setq dir (or (and (not evil-operator-moccur-use-current-directory) + (moccur-grep-read-directory)) + (file-name-directory (buffer-file-name))))) + (moccur-grep-find dir (list (buffer-substring-no-properties beg end)))) + +;;;###autoload +(define-minor-mode evil-operator-moccur-mode + "Buffer local minor mode of moccur operator for Evil." + :lighter "" + :keymap (make-sparse-keymap) + :group 'evil-operator-moccur + (evil-normalize-keymaps)) + +(defun evil-operator-moccur-mode-install () (evil-operator-moccur-mode 1)) + +;;;###autoload +(define-globalized-minor-mode global-evil-operator-moccur-mode + evil-operator-moccur-mode evil-operator-moccur-mode-install + "Global minor mode of moccur operator for Evil.") + +(evil-define-key 'normal evil-operator-moccur-mode-map + evil-operator-moccur-grep-find-key + 'evil-moccur-grep-find-region) +(evil-define-key 'visual evil-operator-moccur-mode-map + evil-operator-moccur-grep-find-key + 'evil-moccur-grep-find-region) + +(provide 'evil-operator-moccur) diff --git a/extensions/evil-plugins/evil-relative-linum.el b/extensions/evil-plugins/evil-relative-linum.el new file mode 100644 index 000000000..6e25249d4 --- /dev/null +++ b/extensions/evil-plugins/evil-relative-linum.el @@ -0,0 +1,52 @@ +(require 'linum+) ;; See http://github.com/tarao/elisp/raw/master/linum+.el +(require 'evil) + +(defgroup evil-relative-linum nil + "Relative line numbers when operators are activated." + :prefix "evil-relative-linum-" + :group 'evil) + +(defcustom evil-relative-linum-delay 0.3 + "Delay in showing line numbers after the operator is activated." + :group 'evil-relative-linum + :type 'float) + +(defvar evil-relative-linum-timer nil) +(defvar evil-relative-linum-activated nil) + +(define-minor-mode evil-relative-linum-mode + "Show relative line numbers when operators are activated." + :group 'evil-relative-linum + (let ((exit-cmd `(lambda () + (interactive) + (save-excursion (set-buffer ,(current-buffer)) + (evil-relative-linum-off))))) + (if evil-relative-linum-mode + (progn + (add-hook 'pre-command-hook exit-cmd) + (add-hook 'post-command-hook exit-cmd) + (setq evil-relative-linum-timer + (run-with-idle-timer evil-relative-linum-delay nil + 'evil-relative-linum-activate))) + (cancel-timer evil-relative-linum-timer) + (when evil-relative-linum-activated + (relative-linum-mode 0) + (setq evil-relative-linum-activated nil)) + (remove-hook 'pre-command-hook exit-cmd) + (remove-hook 'post-command-hook exit-cmd)))) + +(defun evil-relative-linum-off () + (interactive) + (evil-relative-linum-mode 0)) + +(defun evil-relative-linum-on () + (interactive) + (evil-relative-linum-mode 1)) + +(defun evil-relative-linum-activate () + (setq evil-relative-linum-activated t) + (relative-linum-mode 1)) + +(add-hook 'evil-operator-state-entry-hook 'evil-relative-linum-on) + +(provide 'evil-relative-linum) diff --git a/extensions/evil-plugins/linum+.el b/extensions/evil-plugins/linum+.el new file mode 100644 index 000000000..d6415425f --- /dev/null +++ b/extensions/evil-plugins/linum+.el @@ -0,0 +1,135 @@ +;;; linum+.el --- Extension to linum.el displaying line numbers + +;; Author: INA Lintaro + +;;; License: + +;; NYSL Version 0.9982 (en) +;; ---------------------------------------- +;; A. This software is "Everyone'sWare". It means: +;; Anybody who has this software can use it as if you're +;; the author. +;; +;; A-1. Freeware. No fee is required. +;; A-2. You can freely redistribute this software. +;; A-3. You can freely modify this software. And the source +;; may be used in any software with no limitation. +;; A-4. When you release a modified version to public, you +;; must publish it with your name. +;; +;; B. The author is not responsible for any kind of damages or loss +;; while using or misusing this software, which is distributed +;; "AS IS". No warranty of any kind is expressed or implied. +;; You use AT YOUR OWN RISK. +;; +;; C. Copyrighted to INA Lintaro +;; +;; D. Above three clauses are applied both to source and binary +;; form of this software. + +;;; Commentary: + +;; An extension to linum.el, which provides display of line numbers on the left +;; side of buffers. + +;; Currently, this file provides only relative-linum-mode, which is to display +;; relative line numbers for the current buffer. It is convenient to show line +;; numbers counted from the line of the cursor position when you are using +;; vi emulation mode such as viper.el and about to operate multi-line commands +;; e.g. 'y15j'. + +;; To use this mode, copy linum.el (written by Markus Triska) and +;; linum+.el (this file) to your load path and add to your .emacs: + +;; (require 'linum+) + +;; Then toggle display of line numbers with M-x relative-linum-mode. + +;;; Change Log: + +;; Code: + +(require 'linum) + +(defvar relative-linum-mode nil) + +(defcustom relative-disable-if-changed t + "Whether relative line number mode should be disabled if buffer is changed." + :group 'linum + :type 'boolean) + +(defadvice linum-mode + (before ensure-relative-disabled first (&optional arg) activate) + (if relative-linum-mode (relative-linum-mode 0))) +(defvar rel-linum-last 0 "Last state of linum-mode") +(defvar rel-linum-format 'dynamic "Last value of linum-format") +(defun rel-linum-restore () + (setq linum-format rel-linum-format) + (internal-linum-mode rel-linum-last)) +(defun internal-linum-mode (&optional arg) + (ad-disable-advice 'linum-mode 'before 'ensure-relative-disabled) + (ad-activate 'linum-mode) + (linum-mode arg) + (ad-enable-advice 'linum-mode 'before 'ensure-relative-disabled) + (ad-activate 'linum-mode)) + +(defvar rel-linum-point nil) +(defun rel-linum-save-point () (setq rel-linum-point (point))) +(defun rel-linum-update (buf) + (linum-delete-overlays) + (rel-linum-save-point) + (linum-update buf)) +(defun rel-linum-schedule () + (run-with-idle-timer 0 nil #'rel-linum-update-current)) +(defun rel-linum-update-current () + (rel-linum-update (current-buffer))) +(defun rel-linum-after-scroll (win start) + (rel-linum-update (window-buffer win))) +(defun rel-linum-after-size (frame) + (rel-linum-after-config)) +(defun rel-linum-after-config () + (walk-windows (lambda (w) (rel-linum-update (window-buffer))) nil 'visible)) +(defun rel-linum-after-change (beg end len) + (if relative-disable-if-changed (relative-linum-mode 0))) + +(define-minor-mode relative-linum-mode + "Toggle display of relative line numbers in the left marginal area." + :lighter "" + (if relative-linum-mode + (progn + (if linum-mode (setq rel-linum-last 1) (setq rel-linum-last 0)) + (setq rel-linum-format + (if linum-format linum-format 'dynamic)) + (internal-linum-mode 0) + (setq linum-format + (lambda (line) + (let ((w (length (number-to-string + (count-lines (point-min) (point-max)))))) + (let ((fmt + (cond ((stringp rel-linum-format) rel-linum-format) + ((eq rel-linum-format 'dynamic) + (concat "%" (number-to-string w) "d")))) + (rline (abs (- (line-number-at-pos rel-linum-point) + line)))) + (if fmt + (propertize (format fmt rline) 'face 'linum) + (funcall rel-linum-format rline)))))) + (add-hook 'after-change-functions 'rel-linum-after-change nil t) + (add-hook 'post-command-hook (if linum-delay + 'rel-linum-schedule + 'rel-linum-update-current) nil t) + (add-hook 'window-scroll-functions 'rel-linum-after-scroll nil t) + (add-hook 'window-size-change-functions 'rel-linum-after-size) + (add-hook 'window-configuration-change-hook + 'rel-linum-after-config nil t) + (rel-linum-save-point) + (internal-linum-mode 1)) + (remove-hook 'after-change-functions 'rel-linum-after-change t) + (remove-hook 'post-command-hook 'rel-linum-update t) + (remove-hook 'window-scroll-functions 'rel-linum-update t) + (remove-hook 'window-size-change-functions 'rel-linum-update) + (remove-hook 'window-configuration-change-hook 'rel-linum-update t) + (rel-linum-restore))) + +(provide 'linum+) +;;; linum+.el ends here diff --git a/funcs.el b/funcs.el index c0cef0944..c0793d4f8 100644 --- a/funcs.el +++ b/funcs.el @@ -122,4 +122,27 @@ (find-file (concat "/sudo:root@localhost:" (ido-read-file-name "File: "))) (find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name)))) +;; Following code was take from: +;; http://emacswiki.org/emacs/MultiTerm +(defun last-multi-term-buffer (l) + "Return most recently used term buffer." + (when l + (if (eq 'term-mode (with-current-buffer (car l) major-mode)) + (car l) (zoo/last-term-buffer (cdr l))))) + +(defun last-used-multi-term () + "Switch to the term buffer last used, or create a new one if + none exists, or if the current buffer is already a term." + (interactive) + (let ((b (last-multi-term-buffer (buffer-list)))) + (if (or (not b) (eq 'term-mode major-mode)) + (multi-term) + (switch-to-buffer b)))) + +;; found at http://emacswiki.org/emacs/KillingBuffers +(defun kill-other-buffers () + "Kill all other buffers." + (interactive) + (mapc 'kill-buffer (delq (current-buffer) (buffer-list)))) + (provide 'funcs) diff --git a/init-extension/init-evil-plugins.el b/init-extension/init-evil-plugins.el new file mode 100644 index 000000000..cad35bb05 --- /dev/null +++ b/init-extension/init-evil-plugins.el @@ -0,0 +1,7 @@ +(require 'evil-relative-linum) + +(require 'evil-operator-moccur) +(global-evil-operator-moccur-mode 1) + +(require 'evil-operator-comment) +(global-evil-operator-comment-mode 1) diff --git a/init-extension/init-linum-relativenumber.el b/init-extension/init-linum-relativenumber.el index 88b549f2d..2cee26104 100644 --- a/init-extension/init-linum-relativenumber.el +++ b/init-extension/init-linum-relativenumber.el @@ -1,2 +1 @@ (load-file (concat user-extensions-directory "linum-relativenumber/linum-relativenumber.el")) -(global-linum-mode t) diff --git a/init-package/init-color-moccur.el b/init-package/init-color-moccur.el new file mode 100644 index 000000000..a30d22b8f --- /dev/null +++ b/init-package/init-color-moccur.el @@ -0,0 +1 @@ + (require 'color-moccur) diff --git a/init-package/init-ipython.el b/init-package/init-ipython.el deleted file mode 100644 index b142e5591..000000000 --- a/init-package/init-ipython.el +++ /dev/null @@ -1,9 +0,0 @@ -;; Setup ipython integration with python-mode" -(setq -python-shell-interpreter "ipython" -python-shell-interpreter-args "" -python-shell-prompt-regexp "In \[[0-9]+\]: " -python-shell-prompt-output-regexp "Out\[[0-9]+\]: " -python-shell-completion-setup-code "" -python-shell-completion-string-code "';'.join(get_ipython().complete('''%s''')[1])\n") - diff --git a/init-package/init-jedi.el b/init-package/init-jedi.el index 44d3faa7c..8adb06156 100644 --- a/init-package/init-jedi.el +++ b/init-package/init-jedi.el @@ -1,3 +1,4 @@ -(setq jedi:setup-keys t) -(require 'jedi) (add-hook 'python-mode-hook 'jedi:setup) +(setq jedi:setup-keys t) +(setq jedi:complete-on-dot t) +(require 'jedi) diff --git a/init-package/init-key-chord.el b/init-package/init-key-chord.el index 60c11c38b..3e5204714 100644 --- a/init-package/init-key-chord.el +++ b/init-package/init-key-chord.el @@ -1,2 +1,2 @@ (key-chord-mode 1) -(setq key-chord-two-keys-delay 0.1) +(setq key-chord-two-keys-delay 0.5) diff --git a/init-package/init-multi-term.el b/init-package/init-multi-term.el index 7967ac361..63d90df2a 100644 --- a/init-package/init-multi-term.el +++ b/init-package/init-multi-term.el @@ -1,6 +1,13 @@ (require 'multi-term) +;; zsh (setq multi-term-program "/usr/bin/zsh") ;; for solarized dark theme (custom-set-variables '(term-default-bg-color "#002b36") '(term-default-fg-color "#93a1a1")) +;; enable evil +(evil-set-initial-state 'term-mode 'emacs) +;; don't switch to other multi-term when closing +;; the current one +(setq multi-term-switch-after-close nil) +;; let TAB key for the terminal diff --git a/init-package/init-nose.el b/init-package/init-nose.el new file mode 100644 index 000000000..1fcd5d73d --- /dev/null +++ b/init-package/init-nose.el @@ -0,0 +1,9 @@ +(require 'nose) +(add-hook 'python-mode-hook + (lambda () + (local-set-key "\C-ca" 'nosetests-all) + (local-set-key "\C-cm" 'nosetests-module) + (local-set-key "\C-c." 'nosetests-one) + (local-set-key "\C-cpa" 'nosetests-pdb-all) + (local-set-key "\C-cpm" 'nosetests-pdb-module) + (local-set-key "\C-cp." 'nosetests-pdb-one))) diff --git a/keybindings.el b/keybindings.el index f2b5505a3..2a28d1d72 100644 --- a/keybindings.el +++ b/keybindings.el @@ -1,32 +1,37 @@ ;; emacs (key-chord-define evil-normal-state-map "em" 'smex) ;; elisp +(key-chord-define evil-normal-state-map "ed" + 'elisp-slime-nav-find-elisp-thing-at-point) (key-chord-define evil-normal-state-map "ev" 'eval-sexp) (key-chord-define evil-normal-state-map "EV" 'eval-and-replace) (key-chord-define evil-normal-state-map "EV" 'eval-and-replace) -(key-chord-define evil-normal-state-map "ed" - 'elisp-slime-nav-find-elisp-thing-at-point) ;; windows -(key-chord-define evil-normal-state-map "wm" 'toggle-maximize-buffer) -(key-chord-define evil-normal-state-map "wr" 'rotate-windows) -(key-chord-define evil-normal-state-map "wp" 'evil-window-prev) (key-chord-define evil-normal-state-map "wh" 'evil-window-left) (key-chord-define evil-normal-state-map "wj" 'evil-window-down) (key-chord-define evil-normal-state-map "wk" 'evil-window-up) (key-chord-define evil-normal-state-map "wl" 'evil-window-right) +(key-chord-define evil-normal-state-map "wm" 'toggle-maximize-buffer) +(key-chord-define evil-normal-state-map "wr" 'rotate-windows) ;; buffers -(key-chord-define evil-normal-state-map "bs" 'ido-switch-buffer) -(key-chord-define evil-normal-state-map "br" 'rename-current-buffer-file) (key-chord-define evil-normal-state-map "bk" 'ido-kill-buffer) (key-chord-define evil-normal-state-map "BK" 'delete-current-buffer-file) +(key-chord-define evil-normal-state-map "bo" 'kill-other-buffers) +(key-chord-define evil-normal-state-map "br" 'rename-current-buffer-file) +(key-chord-define evil-normal-state-map "bs" 'ido-switch-buffer) ;; files (key-chord-define evil-normal-state-map "fo" 'ido-find-file) (key-chord-define evil-normal-state-map "fp" 'find-file-in-project) ;; terminals -(key-chord-define evil-normal-state-map "tn" 'multi-term) +(key-chord-define evil-normal-state-map "te" 'eshell) (key-chord-define evil-normal-state-map "th" 'multi-term-prev) (key-chord-define evil-normal-state-map "tl" 'multi-term-next) +(key-chord-define evil-normal-state-map "tn" 'multi-term) +(key-chord-define evil-normal-state-map "tt" 'last-used-multi-term) ;; git (key-chord-define evil-normal-state-map "gs" 'magit-status) +;; errors +(key-chord-define evil-normal-state-map "rh" 'previous-error) +(key-chord-define evil-normal-state-map "rl" 'next-error) (provide 'keybindings) diff --git a/packages.el b/packages.el index e414dc390..ae7c1a17f 100644 --- a/packages.el +++ b/packages.el @@ -11,6 +11,7 @@ ace-jump-mode auto-complete autopair + color-moccur deferred diminish elisp-slime-nav @@ -24,12 +25,12 @@ fuzzy highlight-symbol ido-ubiquitous - ipython jedi key-chord magit multiple-cursors multi-term + nose p4 paredit powerline