Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; Set 'kj' to exit insert mode
- (define-key evil-insert-state-map "k" #'cofi/maybe-exit-kj)
- (evil-define-command cofi/maybe-exit-kj ()
- :repeat change
- (interactive)
- (let ((modified (buffer-modified-p)))
- (insert "k")
- (let ((evt (read-event (format "Insert %c to exit insert state" ?j)
- nil 0.5)))
- (cond
- ((null evt) (message ""))
- ((and (integerp evt) (char-equal evt ?j))
- (delete-char -1)
- (set-buffer-modified-p modified)
- (push 'escape unread-command-events))
- (t (setq unread-command-events (append unread-command-events
- (list evt))))))))
- (define-key evil-insert-state-map "j" #'cofi/maybe-exit-jk)
- (evil-define-command cofi/maybe-exit-jk ()
- :repeat change
- (interactive)
- (let ((modified (buffer-modified-p)))
- (insert "j")
- (let ((evt (read-event (format "Insert %c to exit insert state" ?k)
- nil 0.5)))
- (cond
- ((null evt) (message ""))
- ((and (integerp evt) (char-equal evt ?k))
- (delete-char -1)
- (set-buffer-modified-p modified)
- (push 'escape unread-command-events))
- (t (setq unread-command-events (append unread-command-events
- (list evt))))))))
- (define-key evil-insert-state-map "ㅏ" #'cofi/maybe-exit-ㅏㅓ)
- ;; Set 'ㅏㅓ' to exit insert mode
- (evil-define-command cofi/maybe-exit-ㅏㅓ ()
- :repeat change
- (interactive)
- (let ((modified (buffer-modified-p)))
- (insert "ㅏ")
- (let ((evt (read-event (format "Insert %c to exit insert state" ?ㅓ)
- nil 0.5)))
- (cond
- ((null evt) (message ""))
- ((and (integerp evt) (char-equal evt ?ㅓ))
- (delete-char -1)
- (set-buffer-modified-p modified)
- (push 'escape unread-command-events))
- (t (setq unread-command-events (append unread-command-events
- (list evt))))))))
- (evil-define-command cofi/maybe-exit-kj ()
- :repeat change
- (interactive)
- (let ((modified (buffer-modified-p)))
- (self-insert-command 1)
- (let ((evt (read-event (format "Insert %c to exit insert state"
- (if (equal current-input-method
- "arabic") ; "korean-hangul"
- ?ؤ ; ?ㅓ
- ?j))
- nil 0.5)))
- (cond
- ((null evt) (message ""))
- ((and (integerp evt) (memq evt '(?j ?ؤ))) ; '(?j ?ㅓ)
- (delete-char -1)
- (set-buffer-modified-p modified)
- (push 'escape unread-command-events))
- (t
- (setq unread-command-events (append unread-command-events
- (list evt))))))))
- (define-key evil-insert-state-map "ر" #'cofi/maybe-exit-kj) ; "ㅏ"
- (defun test-my-key ()
- (interactive)
- (self-insert-command 1)
- (message "This key works!")
- (sit-for 2))
- (define-key evil-insert-state-map "a" #'test-my-key)
- (define-key evil-insert-state-map "ㅏ" #'test-my-key)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement