summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--evil-helm.el15
1 files changed, 14 insertions, 1 deletions
diff --git a/evil-helm.el b/evil-helm.el
index 304d168..f61b98a 100644
--- a/evil-helm.el
+++ b/evil-helm.el
@@ -42,6 +42,18 @@
(defvar helm-find-files-map)
(defvar helm-read-file-map)
+(defun evil-helm-toggle-visible-mark-backwards (&optional args)
+ (interactive "p")
+ (evil-helm-toggle-visible-mark args t))
+
+(defun evil-helm-toggle-visible-mark (&optional args backwards)
+ (interactive "p")
+ (unless (numberp args) (setq args 1))
+ (dotimes (_ (abs args))
+ (if (or (and (< args 0) (not backwards)) (and (> args 0) backwards))
+ (helm-toggle-visible-mark-backwards)
+ (helm-toggle-visible-mark))))
+
(defun evil-helm-setup ()
"Set up `evil' bindings for `helm'."
;; TODO: We should not modify helm-map in Emacs state but somehow it does not
@@ -61,7 +73,8 @@
"k" 'helm-previous-line
"g" 'helm-beginning-of-buffer
"G" 'helm-end-of-buffer
- (kbd "SPC") 'helm-toggle-visible-mark)
+ (kbd "SPC") 'evil-helm-toggle-visible-mark
+ (kbd "S-SPC") 'evil-helm-toggle-visible-mark-backwards)
(evil-define-key '(normal insert) helm-map
(kbd "M-j") 'helm-next-line