Emacs 重新映射<;空间>;及<;退格>;在Vimpulse中滚动更多

Emacs 重新映射<;空间>;及<;退格>;在Vimpulse中滚动更多,emacs,viper-mode,viper,vimpulse,Emacs,Viper Mode,Viper,Vimpulse,在中,Shinobu建议重新映射,不适用于带有Vimpulse 0.5的Emacs 2.3.1 我做错了什么 ;; from .emacs ; simulate vim's "nnoremap <space> 10<c-e>10j" (vimpulse-map " " (lambda () (interactive) (next-line 10)

在中,Shinobu建议重新映射,不适用于带有Vimpulse 0.5的Emacs 2.3.1

我做错了什么

;; from .emacs

; simulate vim's "nnoremap <space> 10<c-e>10j"
(vimpulse-map " " (lambda ()
                     (interactive)
                     (next-line 10)
                     (viper-scroll-up-one 10)
                     ))

; simulate vim's "nnoremap <backspace> 10<c-y>10k"
(define-key viper-vi-global-user-map [backspace] (lambda ()
                     (interactive)
                     (previous-line 10)
                     (viper-scroll-down-one 10)
                     ))
;;来自.emacs
; 模拟vim的“nnoremap 1010j”
(vimpulse map“”(λ()
(互动)
(下一行10)
(毒蛇向上滚动一个10)
))
; 模拟vim的“nnoremap 1010k”
(定义关键viper vi全局用户地图[退格](lambda()
(互动)
(前一行10)
(毒蛇向下滚动一个10)
))

知道什么不起作用会有帮助

以下内容适用于我,如SPC和backspace在命令模式(Vi状态)下滚动10:


这就是使用和
viper专家级
5.

的方法。我应该用(vimpulse map)代替(define key)吗?@Natan我不是vimpulse专家,所以我不知道
vimpulse map
什么时候有用。最后一个问题:您如何知道使用
[退格]
而不是
?根据
C-hk
是正确的绑定,但只有
[backspace]
有效。实际上,我更喜欢使用的是调用
kbd
,这更容易使用。你快到了。完成
C-hk
后,您正确地看到键映射到
,现在,要在调用
定义键时使用它,只需执行
(kbd“”)
(基本上是从帮助缓冲区剪切/粘贴到传递给kbd的字符串中。我不是100%确定您键入的键与此相同,但我会适当地更新答案。太好了。感谢您帮助我自己解决未来的问题。
(define-key viper-vi-global-user-map [backspace]
  (lambda ()
    (interactive)
    (previous-line 10)
    (viper-scroll-down-one 10)))

(define-key viper-vi-global-user-map (kbd "SPC")
  (lambda ()
    (interactive)
    (next-line 10)
    (viper-scroll-up-one 10)))