experiment with key chord bindings, seems promising
This commit is contained in:
parent
144adbc1eb
commit
975263cca1
29
funcs.el
29
funcs.el
|
@ -1,3 +1,14 @@
|
|||
;; from magnars
|
||||
(defun eval-and-replace ()
|
||||
"Replace the preceding sexp with its value."
|
||||
(interactive)
|
||||
(backward-kill-sexp)
|
||||
(condition-case nil
|
||||
(prin1 (eval (read (current-kill 0)))
|
||||
(current-buffer))
|
||||
(error (message "Invalid expression")
|
||||
(insert (current-kill 0)))))
|
||||
|
||||
;; from https://gist.github.com/3402786
|
||||
(defun toggle-maximize-buffer () "Maximize buffer"
|
||||
(interactive)
|
||||
|
@ -30,6 +41,7 @@
|
|||
(set-window-start w2 s1)
|
||||
(setq i (1+ i))))))))
|
||||
|
||||
;; from magnars
|
||||
(defun rename-current-buffer-file ()
|
||||
"Renames current buffer and file it is visiting."
|
||||
(interactive)
|
||||
|
@ -47,6 +59,7 @@
|
|||
(set-buffer-modified-p nil)
|
||||
(message "File '%s' successfully renamed to '%s'" name (file-name-nondirectory new-name))))))))
|
||||
|
||||
;; from magnars
|
||||
(defun delete-current-buffer-file ()
|
||||
"Removes file connected to current buffer and kills buffer."
|
||||
(interactive)
|
||||
|
@ -60,6 +73,7 @@
|
|||
(kill-buffer buffer)
|
||||
(message "File '%s' successfully removed" filename)))))
|
||||
|
||||
;; from magnars
|
||||
(defun copy-current-file-path ()
|
||||
"Add current file path to kill ring. Limits the filename to project root if possible."
|
||||
(interactive)
|
||||
|
@ -68,16 +82,19 @@
|
|||
(s-chop-prefix (eproject-root) filename)
|
||||
filename))))
|
||||
|
||||
;; from magnars
|
||||
(defun find-or-create-file-at-point ()
|
||||
"Guesses what parts of the buffer under point is a file name and opens it."
|
||||
(interactive)
|
||||
(find-file (file-name-at-point)))
|
||||
|
||||
;; from magnars
|
||||
(defun find-or-create-file-at-point-other-window ()
|
||||
"Guesses what parts of the buffer under point is a file name and opens it."
|
||||
(interactive)
|
||||
(find-file-other-window (file-name-at-point)))
|
||||
|
||||
;; from magnars
|
||||
(defun file-name-at-point ()
|
||||
(save-excursion
|
||||
(let* ((file-name-regexp "[./a-zA-Z0-9\-_~]")
|
||||
|
@ -91,26 +108,18 @@
|
|||
(point))))
|
||||
(buffer-substring start end))))
|
||||
|
||||
;; from magnars
|
||||
(defun touch-buffer-file ()
|
||||
(interactive)
|
||||
(insert " ")
|
||||
(backward-delete-char 1)
|
||||
(save-buffer))
|
||||
|
||||
;; from magnars
|
||||
(defun sudo-edit (&optional arg)
|
||||
(interactive "p")
|
||||
(if (or arg (not buffer-file-name))
|
||||
(find-file (concat "/sudo:root@localhost:" (ido-read-file-name "File: ")))
|
||||
(find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name))))
|
||||
|
||||
(defun eval-and-replace ()
|
||||
"Replace the preceding sexp with its value."
|
||||
(interactive)
|
||||
(backward-kill-sexp)
|
||||
(condition-case nil
|
||||
(prin1 (eval (read (current-kill 0)))
|
||||
(current-buffer))
|
||||
(error (message "Invalid expression")
|
||||
(insert (current-kill 0)))))
|
||||
|
||||
(provide 'funcs)
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
(autoload 'autopair-global-mode "autopair" nil t)
|
||||
(autopair-global-mode)
|
||||
(add-hook 'lisp-mode-hook #'(lambda () (setq autopair-dont-activate t)))
|
||||
(require 'autopair)
|
||||
|
||||
(defvar autopair-modes '(python-mode))
|
||||
(defun turn-on-autopair-mode () (autopair-mode 1))
|
||||
(dolist (mode autopair-modes)
|
||||
(add-hook (intern (concat (symbol-name mode) "-hook")) 'turn-on-autopair-mode))
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
(require 'diminish)
|
||||
(eval-after-load "auto-complete"
|
||||
'(diminish 'auto-complete-mode "ac"))
|
||||
'(diminish 'auto-complete-mode "AC"))
|
||||
|
||||
(eval-after-load "autopair"
|
||||
'(diminish 'autopair-mode))
|
||||
'(diminish 'autopair-mode "AP"))
|
||||
|
||||
(eval-after-load "eproject"
|
||||
'(diminish 'eproject-mode "prj"))
|
||||
'(diminish 'eproject-mode "eproj"))
|
||||
|
||||
(eval-after-load "paredit"
|
||||
'(diminish 'paredit-mode "pedit"))
|
||||
'(diminish 'paredit-mode "PE"))
|
||||
|
||||
(eval-after-load "rainbow-mode"
|
||||
'(diminish 'rainbow-mode))
|
||||
|
@ -20,6 +20,9 @@
|
|||
(eval-after-load "yasnippet"
|
||||
'(diminish 'yas-minor-mode))
|
||||
|
||||
(eval-after-load 'elisp-slime-nav
|
||||
'(diminish 'elisp-slime-nav-mode))
|
||||
|
||||
;; -----------------------------------------------------------------------------
|
||||
|
||||
(add-hook 'emacs-lisp-mode-hook
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
;; Elisp go-to-definition with M-. and back again with M-,
|
||||
(require 'elisp-slime-nav)
|
||||
(require 'evil)
|
||||
(add-hook 'emacs-lisp-mode-hook (lambda () (elisp-slime-nav-mode t)))
|
|
@ -3,9 +3,9 @@
|
|||
|
||||
(setq evil-emacs-state-cursor '("red" box))
|
||||
(setq evil-normal-state-cursor '("orange" box))
|
||||
(setq evil-visual-state-cursor '("green" box))
|
||||
(setq evil-visual-state-cursor '("black" box))
|
||||
(setq evil-insert-state-cursor '("green" bar))
|
||||
(setq evil-motion-state-cursor '("gray" box))
|
||||
(setq evil-motion-state-cursor '("purple" box))
|
||||
|
||||
(evil-mode 1)
|
||||
;;Make evil-mode up/down operate in screen lines instead of logical lines
|
||||
|
@ -13,6 +13,7 @@
|
|||
(define-key evil-normal-state-map (kbd "k") 'evil-previous-visual-line)
|
||||
;;Exit insert mode by pressing j and then k quickly
|
||||
(key-chord-define evil-insert-state-map "jk" 'evil-normal-state)
|
||||
(key-chord-define evil-visual-state-map "jk" 'evil-normal-state)
|
||||
|
||||
(define-key evil-normal-state-map (kbd "SPC") 'ace-jump-mode)
|
||||
;; This is an endless debate and is just a matter of convention
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
(setq jedi:setup-keys t)
|
||||
(require 'jedi)
|
||||
(add-hook 'python-mode-hook 'jedi:setup)
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
(require 'multi-term)
|
||||
(setq multi-term-program "/usr/bin/zsh")
|
||||
;; for solarized dark theme
|
||||
(custom-set-variables
|
||||
'(term-default-bg-color "#002b36")
|
||||
'(term-default-fg-color "#93a1a1"))
|
|
@ -1,9 +1,3 @@
|
|||
(eval-after-load 'paredit
|
||||
;; need a binding that works in the terminal
|
||||
'(progn
|
||||
(define-key paredit-mode-map (kbd "M-)") 'paredit-forward-slurp-sexp)
|
||||
(define-key paredit-mode-map (kbd "M-(") 'paredit-backward-slurp-sexp)))
|
||||
|
||||
(dolist (mode '(scheme emacs-lisp lisp clojure clojurescript))
|
||||
(when (> (display-color-cells) 8)
|
||||
(font-lock-add-keywords (intern (concat (symbol-name mode) "-mode"))
|
||||
|
|
|
@ -1,5 +1,32 @@
|
|||
;; Windows switching
|
||||
(global-set-key (kbd "C-x -") 'rotate-windows)
|
||||
(global-set-key (kbd "C-x C--") 'toggle-maximize-buffer)
|
||||
;; emacs
|
||||
(key-chord-define evil-normal-state-map "em" 'smex)
|
||||
;; elisp
|
||||
(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)
|
||||
;; 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)
|
||||
;; 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 "th" 'multi-term-prev)
|
||||
(key-chord-define evil-normal-state-map "tl" 'multi-term-next)
|
||||
;; git
|
||||
(key-chord-define evil-normal-state-map "ms" 'magit-status)
|
||||
|
||||
(provide 'keybindings)
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
autopair
|
||||
deferred
|
||||
diminish
|
||||
elisp-slime-nav
|
||||
epc
|
||||
eproject
|
||||
erlang
|
||||
|
@ -28,6 +29,7 @@
|
|||
key-chord
|
||||
magit
|
||||
multiple-cursors
|
||||
multi-term
|
||||
p4
|
||||
paredit
|
||||
powerline
|
||||
|
|
Loading…
Reference in New Issue