Emacs
在 Evil 模式 Emacs 中定義鍵序列
我在 Evil 文件中找不到任何關於定義鍵序列的說明。
開發人員給出的範例僅涵蓋一個鍵。
(define-key evil-normal-state "w" 'foo)
如果我想在普通模式下定義“gv”或在插入模式下定義“;RET”,我需要做什麼?
例如,在 Vim 中,我只是這樣做:
imap ;<cr> <end>;<cr> map gv :tabprev<cr>
Evil wiki 頁面建議使用elscreen.el來模擬 Vim 的選項卡:
(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>
. 如果按;
後跟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)))))