Closed ReneFroger closed 8 years ago
This modified my-evil-find-char
would do the trick:
(defun my-evil-find-char (arg char)
(interactive (list (prefix-numeric-value current-prefix-arg) (read-key)))
(cond
((characterp char)
(evil-snipe-f arg (list (evil-snipe--process-key char)))
((eq char 'f9)
(foobar))
(t
(user-error "Unknown key combination"))))
(define-key evil-motion-state-map (kbd "f") 'my-evil-find-char)
Unfortunately, there is no simple fix to this problem. It has several causes and evil-snipe is not one of them. To bind f and fF9 separately, you would have to do:
(defvar f-key-map (make-sparse-keymap))
(define-key evil-motion-state-map (kbd "f") 'f-key-map)
(define-key f-key-map (kbd "<F9>") 'foobar)
;; define all other keys and pass them to evil-snipe?
At least, that's all I could come up with.
Hmmz, when pasting both codes in my dot-emacs, I couldn't get it working. Are you sure it worked in your setup? Note that the function my-evil-find-char
have unbalanced parentheses.
Agh, sorry, I completely missed your reply! I fixed the unbalanced parens and it works for me:
(defun my-evil-find-char (arg char)
(interactive (list (prefix-numeric-value current-prefix-arg) (read-key)))
(cond ((characterp char)
(evil-snipe-f arg (list (evil-snipe--process-key char))))
((eq char 'f9)
(foobar))
(t
(user-error "Unknown key combination"))))
(define-key evil-motion-state-map (kbd "f") 'my-evil-find-char)
If it still doesn't work, are you sure this code is running after evil-snipe is loaded?
I got it right after restarting Emacs, I forgot to mentioned it earlier. Thanks for your help!
I would like to bind the keys
f
and<F9>
, without affecting the other Evil operations. So I have the following snippet in my configuration:So I press f and F9, then
foobar
will be called. However, now I'm facing another problem. The f-key is not functioning anymore for other Evil operations. It works only for ff9 and not for finding charactera
with fa. To circumvent this, I use the following workaround.So if there is no f9 key passed, he will pass the other characters to f. This works so far. However, with Evil Snipe I'm facing an another issue. When pressing fF9, I got the following error:
Any suggestion to work around this?