narf/evil-window-move-* => narf/evil-window-move; add narf/evil-window-resize

This commit is contained in:
Henrik Lissner 2016-05-19 03:14:02 -04:00
parent 08961c7ca1
commit ba7722d425
3 changed files with 25 additions and 39 deletions

View file

@ -99,8 +99,7 @@
;; Don't ask for confirmation when creating files
(advice-add 'neotree-create-node :around 'narf*neotree-create-node)
;; Prevents messing up the neotree buffer on window changes
(advice-add 'narf--evil-window-move :around 'narf*save-neotree)
(advice-add 'narf--evil-swap-windows :around 'narf*save-neotree)
(advice-add 'narf/evil-window-move :around 'narf*save-neotree)
(add-hook 'neotree-mode-hook 'narf|neotree-init-keymap)
(defun narf|neotree-init-keymap ()

View file

@ -12,16 +12,8 @@
(call-interactively 'evil-window-vsplit)
(evil-window-right 1))
(defun narf--evil-swap-windows (a b)
(let ((a-buffer (window-buffer a))
(b-buffer (window-buffer b)))
(with-selected-window b
(switch-to-buffer a-buffer))
(with-selected-window a
(switch-to-buffer b-buffer))
(select-window b)))
(defun narf--evil-window-move (direction)
;;;###autoload
(defun narf/evil-window-move (direction)
"Move current window to the next window in DIRECTION. If there are no windows
there and there is only one window, split in that direction and place this
window there. If there are no windows and this isn't the only window, use
@ -76,32 +68,22 @@ evil-window-move-* (e.g. `evil-window-move-far-left')"
;;;###autoload
(defun narf/close-frame ()
(interactive)
(let ((data (assq (selected-frame) narf-wg-frames)))
(if data
(progn (wg-delete-workgroup (wg-get-workgroup (cdr data)))
(delete-frame (car data)))
(delete-frame))))
(aif (assq (selected-frame) narf-wg-frames)
(progn (wg-delete-workgroup (wg-get-workgroup (cdr it)))
(delete-frame (car it)))
(delete-frame)))
;;;###autoload
(defun narf/evil-window-move-left ()
"See `narf--evil-window-move'"
(defun narf/evil-window-resize (direction &optional count)
(interactive)
(narf--evil-window-move 'left))
;;;###autoload
(defun narf/evil-window-move-down ()
"See `narf--evil-window-move'"
(interactive)
(narf--evil-window-move 'down))
;;;###autoload
(defun narf/evil-window-move-up ()
"See `narf--evil-window-move'"
(interactive)
(narf--evil-window-move 'up))
;;;###autoload
(defun narf/evil-window-move-right ()
"See `narf--evil-window-move'"
(interactive)
(narf--evil-window-move 'right))
(let ((count (or count 1))
(next-window (window-in-direction direction)))
(when (or (not next-window) (not (narf/real-buffer-p (window-buffer next-window))))
(setq count (- count)))
(cond ((memq direction '(left right))
(evil-window-increase-width count))
((memq direction '(above below))
(evil-window-increase-height count)))))
;;;###autoload
(defun narf/window-reorient ()

View file

@ -46,6 +46,11 @@
"C-h" 'evil-window-left
"C-l" 'evil-window-right
"A-j" (λ! (narf/evil-window-resize 'below))
"A-k" (λ! (narf/evil-window-resize 'above))
"A-h" (λ! (narf/evil-window-resize 'left))
"A-l" (λ! (narf/evil-window-resize 'right))
"C-<escape>" 'evil-emacs-state
:e "C-<escape>" 'evil-normal-state
@ -276,10 +281,10 @@
"v" 'narf/evil-window-vsplit
;; Move window in one step
"H" 'narf/evil-window-move-left
"J" 'narf/evil-window-move-down
"K" 'narf/evil-window-move-up
"L" 'narf/evil-window-move-right
"H" (λ! (narf/evil-window-move 'left))
"J" (λ! (narf/evil-window-move 'down))
"K" (λ! (narf/evil-window-move 'up))
"L" (λ! (narf/evil-window-move 'right))
"C-u" 'narf/undo-window-change
"C-r" 'narf/redo-window-change