私はemacsのvimバインディングに素晴らしい悪のパッケージを使用しています。
正しくないキーはCtrl+Uです。「up」ではなく、emacs プレフィックスのままです。
私の.emacsのいくつかのLispコードで、誰かがその解決策を持っていますか?
ありがとう。
あなたがあなたに追加できる変数があります.emacs
(setq evil-want-C-u-scroll t)
への呼び出しの前に表示する必要があります(require 'evil)
。
または、独自のキーバインドを定義するのは簡単で、evil
API はそれを非常に簡単にするのに十分なほど豊富です:
(define-key evil-normal-state-map (kbd "C-u") 'evil-scroll-up)
(define-key evil-visual-state-map (kbd "C-u") 'evil-scroll-up)
(define-key evil-insert-state-map (kbd "C-u")
(lambda ()
(interactive)
(evil-delete (point-at-bol) (point))))
evil-want-C-u-scroll
私にとっては正しく機能していなかったので、このルートに行かなければなりませんでした。
John Wiegley のuse-packageを使用しているすべての人にblingの回答が機能するようにするには、セクションで次のように定義してください。:init
(use-package evil
:ensure t
:init
(setq evil-want-C-u-scroll t)
:config
(evil-mode 1)
;; snip...
)
HTH
vimのC-u
は「前の行」ではなく、ページアップに似ています。正確な動作を再現する方法はわかりませんが、C-b
(evil-scroll-page-up) または map をC-k
試して、 C-j
10 行上下に移動することができます。
(global-set-key (kbd "C-k") (lambda () (interactive) (previous-line 10)))
(global-set-key (kbd "C-j") (lambda () (interactive) (next-line 10)))
キーは Emacs にとっても非常に重要であるため、C-u
とにかく上書きするべきではありません。
まず、あなたの質問に答えるために:
(define-key evil-insert-state-map "\C-u" 'previous-line)
(define-key evil-normal-state-map "\C-u" 'previous-line)
(define-key evil-replace-state-map "\C-u" 'previous-line)
(define-key evil-visual-state-map "\C-u" 'previous-line)
(define-key evil-motion-state-map "\C-u" 'previous-line)
私は実際に自分自身をテストすることはできません(悪ではありません)ので、うまくいかない場合は次のことを試してください。
交換
(define-key evil-motion-state-map "\C-u" 'previous-line)
と
(define-key evil-motion-state-map "cu" 'previous-line)
あなたが望む邪悪なモードのためにこれを行います/必要です.
さらに、 の「邪悪な」バージョンが存在up
する可能性があり、代わりにそれをバインドしたい場合があります。
また、私が間違っている場合は修正してください。ただし、これらのキーバインディングのどこかに機能的/有用な「アップ」を備えた悪が「出荷」されていると確信しています。おそらくどこかで読んでください。