是否有可能重新绑定数字。例如,"5“是"$",而"%”是"5"?
在evil-maps.el中,数字的定义如下。
(define-key evil-motion-state-map "1" 'digit-argument)
(define-key evil-motion-state-map "2" 'digit-argument)
...我尝试了@ChillarAnand的答案
(add-hook 'evil-mode-hook 'evil-mode-bindings)
(defun evil-mode-bindings ()
"Bind symbols to digits."
(define-key key-translation-map (kbd "%") "5")
(define-key key-translation-map (kbd "*") "8")
)
(define-key evil-normal-state-map "5" 'evil-beginning-of-line)
(define-key evil-normal-state-map "8" 'evil-end-of-line)但Shift-5的行为仍然不像5,8也是如此。有没有可能修复上面的配置?
@tarblet解决方案也是如此。
我使用的测试是一个序列Shift-5,G。
发布于 2015-05-24 18:55:09
这是一个相当老套的解决方案,但它应该能做你想做的事情:
(defun capslock-digit-argument-fn (digit)
`(lambda (arg)
(interactive "P")
(setq last-command-event (+ ,digit ?0))
(digit-argument arg)))
(define-key evil-motion-state-map "!" (capslock-digit-argument-fn 1))
(define-key evil-motion-state-map "@" (capslock-digit-argument-fn 2))
(define-key evil-motion-state-map "#" (capslock-digit-argument-fn 3))
(define-key evil-motion-state-map "$" (capslock-digit-argument-fn 4))
(define-key evil-motion-state-map "%" (capslock-digit-argument-fn 5))
(define-key evil-motion-state-map "^" (capslock-digit-argument-fn 6))
(define-key evil-motion-state-map "&" (capslock-digit-argument-fn 7))
(define-key evil-motion-state-map "*" (capslock-digit-argument-fn 8))
(define-key evil-motion-state-map "(" (capslock-digit-argument-fn 9))它重新绑定变量,当试图确定哪个键被按下时,digit-argument会查看该变量。如果你不介意)的行为不完全像0 (不跳到行首,只作为数字参数工作),你也可以设置它。
发布于 2015-05-25 20:38:57
当然,在emacs中一切皆有可能:)
将这段代码添加到您的配置中。
(add-hook 'evil-mode-hook 'evil-mode-bindings)
(defun evil-mode-bindings ()
"Bind symbols to digits."
(define-key key-translation-map (kbd "!") (kbd "1"))
(define-key key-translation-map (kbd "@") (kbd "2"))
(define-key key-translation-map (kbd "#") (kbd "3"))
(define-key key-translation-map (kbd "$") (kbd "4"))
(define-key key-translation-map (kbd "%") (kbd "5"))
(define-key key-translation-map (kbd "^") (kbd "6"))
(define-key key-translation-map (kbd "&") (kbd "7"))
(define-key key-translation-map (kbd "*") (kbd "8"))
(define-key key-translation-map (kbd "(") (kbd "9"))
(define-key key-translation-map (kbd ")") (kbd "0")))每当您进入邪恶模式时,evil-mode-hook都会运行evil-mode-bindings函数。此函数将符号绑定到相应的数字。
更新:
正如@npostavs所提到的,您还可以使用
(add-hook 'evil-mode-hook 'evil-mode-bindings)
(defun evil-mode-bindings ()
"Bind symbols to digits."
(define-key key-translation-map (kbd "!") "1")
(define-key key-translation-map (kbd "@") "2")
(define-key key-translation-map (kbd "#") "3")
(define-key key-translation-map (kbd "$") "4")
(define-key key-translation-map (kbd "%") "5")
(define-key key-translation-map (kbd "^") "6")
(define-key key-translation-map (kbd "&") "7")
(define-key key-translation-map (kbd "*") "8")
(define-key key-translation-map (kbd "(") "9")
(define-key key-translation-map (kbd ")") "0"))https://stackoverflow.com/questions/30266374
复制相似问题