Я использую замечательный пакет зла для привязок vim в emacs.
Неправильная клавиша Ctrl + U. Это по-прежнему префикс emacs, а не "вверх".
У кого-нибудь есть решение для этого в некотором lisp для моего .emacs?
Спасибо.
Я использую замечательный пакет зла для привязок vim в emacs.
Неправильная клавиша Ctrl + U. Это по-прежнему префикс emacs, а не "вверх".
У кого-нибудь есть решение для этого в некотором lisp для моего .emacs?
Спасибо.
есть переменная, которую вы можете добавить в свой .emacs
(setq evil-want-C-u-scroll t)
он должен появиться перед вызовом (require 'evil)
.
В качестве альтернативы, достаточно просто определить свои собственные привязки клавиш, а API evil
достаточно богат, чтобы сделать его очень простым:
(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
не работал правильно для меня.
Vim C-u
- это страница с половинным экраном вверх. Я воспроизвел его, используя следующее:
(define-key evil-normal-state-map (kbd "C-u") 'evil-scroll-up)
Из C-h f evil-scroll-up
,
(COUNT с прокруткой зла)
Прокручивает окно и курсор COUNT линии вверх. Значение по умолчанию - половина экрана.
Чтобы получить bling ответ на работу для тех, кто использует John Wiegley use-package, убедитесь, что вы определили его в разделе :init
, например:
(use-package evil
:ensure t
:init
(setq evil-want-C-u-scroll t)
:config
(evil-mode 1)
;; snip...
)
НТН
Чтобы добавить к melleb ответ, я также определил комбинацию клавиш, когда evil-want-C-u-scroll:
(use-package evil
:ensure t
:init
(setq evil-want-C-u-scroll t)
(when evil-want-C-u-scroll
(define-key evil-insert-state-map (kbd "C-u") 'evil-scroll-up)
(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-motion-state-map (kbd "C-u") 'evil-scroll-up))
:config
(evil-mode 1)
...
)
Это работает для GNU Emacs 24.4.1
Во-первых, чтобы ответить на ваш вопрос:
(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
, вы можете захотеть связать ее.
Кроме того, исправьте меня, если я ошибаюсь, но я уверен, что злые "корабли" с функциональным/полезным "вверх" где-то в этих привязках клавиш, возможно, читают его где-то.
vim C-u
не является "предыдущей строкой", это больше похоже на страницу вверх. Я не знаю, как копировать точное поведение, но вы можете просто попробовать C-b
(злой-прокрутить страницу) или отобразить 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)))
Ключ C-u
также очень важен для Emacs, поэтому вы, вероятно, не должны его перезаписывать.