Evil 문서에서 키 시퀀스 정의에 대한 지침을 찾을 수 없습니다.
개발자가 제공한 예에서는 단일 키만 다룹니다.
(define-key evil-normal-state "w" 'foo)
일반 모드에서 "gv"를 정의하거나 삽입 모드에서 ";RET"를 정의하려면 어떻게 해야 합니까?
예를 들어 Vim에서는 다음과 같이 합니다.
imap ;<cr> <end>;<cr>
map gv :tabprev<cr>
답변1
이것사악한 위키 페이지추천elscreen.elVim의 탭을 시뮬레이션합니다:
(load "elscreen" "ElScreen" t)
(define-key evil-normal-state-map (kbd "C-w t") 'elscreen-create) ;creat tab
(define-key evil-normal-state-map (kbd "C-w x") 'elscreen-kill) ;kill tab
(define-key evil-normal-state-map "gv" 'elscreen-previous) ;previous tab
(define-key evil-normal-state-map "gt" 'elscreen-next) ;next tab
마찬가지로 다음을 정의할 수 있습니다.
(define-key evil-insert-state-map (kbd "; <return>") 'move-end-of-line)
이것 은 소송 을 따랐다 imap ;<cr> <end>;<cr>
. follow 를 누르면 커서가 줄 끝으로 이동하고 세미콜론이 삽입됩니다 ;. Return좀 더 일반화하고 싶지만 중요한 기능이 빠졌습니다.
(define-key evil-insert-state-map (kbd ";") 'insert-or-append)
(defun insert-or-append ()
"If the user enters <return>, then jump to end of line and append a semicolon,
otherwise insert user input at the position of the cursor"
(interactive)
(let ((char-read (read-char-exclusive))
(trigger ";"))
(if (eql ?\r char-read)
(progn
(end-of-line)
(insert trigger))
(insert (this-command-keys)))))