Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. ;; Set 'kj' to exit insert mode
  2. (define-key evil-insert-state-map "k" #'cofi/maybe-exit-kj)
  3. (evil-define-command cofi/maybe-exit-kj ()
  4. :repeat change
  5. (interactive)
  6. (let ((modified (buffer-modified-p)))
  7. (insert "k")
  8. (let ((evt (read-event (format "Insert %c to exit insert state" ?j)
  9. nil 0.5)))
  10. (cond
  11. ((null evt) (message ""))
  12. ((and (integerp evt) (char-equal evt ?j))
  13. (delete-char -1)
  14. (set-buffer-modified-p modified)
  15. (push 'escape unread-command-events))
  16. (t (setq unread-command-events (append unread-command-events
  17. (list evt))))))))
  18.  
  19. (define-key evil-insert-state-map "j" #'cofi/maybe-exit-jk)
  20. (evil-define-command cofi/maybe-exit-jk ()
  21. :repeat change
  22. (interactive)
  23. (let ((modified (buffer-modified-p)))
  24. (insert "j")
  25. (let ((evt (read-event (format "Insert %c to exit insert state" ?k)
  26. nil 0.5)))
  27. (cond
  28. ((null evt) (message ""))
  29. ((and (integerp evt) (char-equal evt ?k))
  30. (delete-char -1)
  31. (set-buffer-modified-p modified)
  32. (push 'escape unread-command-events))
  33. (t (setq unread-command-events (append unread-command-events
  34. (list evt))))))))
  35.  
  36. (define-key evil-insert-state-map "ㅏ" #'cofi/maybe-exit-ㅏㅓ)
  37. ;; Set 'ㅏㅓ' to exit insert mode
  38. (evil-define-command cofi/maybe-exit-ㅏㅓ ()
  39. :repeat change
  40. (interactive)
  41. (let ((modified (buffer-modified-p)))
  42. (insert "ㅏ")
  43. (let ((evt (read-event (format "Insert %c to exit insert state" ?ㅓ)
  44. nil 0.5)))
  45. (cond
  46. ((null evt) (message ""))
  47. ((and (integerp evt) (char-equal evt ?ㅓ))
  48. (delete-char -1)
  49. (set-buffer-modified-p modified)
  50. (push 'escape unread-command-events))
  51. (t (setq unread-command-events (append unread-command-events
  52. (list evt))))))))
  53.  
  54. (evil-define-command cofi/maybe-exit-kj ()
  55. :repeat change
  56. (interactive)
  57. (let ((modified (buffer-modified-p)))
  58. (self-insert-command 1)
  59. (let ((evt (read-event (format "Insert %c to exit insert state"
  60. (if (equal current-input-method
  61. "arabic") ; "korean-hangul"
  62. ?ؤ ; ?ㅓ
  63. ?j))
  64. nil 0.5)))
  65. (cond
  66. ((null evt) (message ""))
  67. ((and (integerp evt) (memq evt '(?j ?ؤ))) ; '(?j ?ㅓ)
  68. (delete-char -1)
  69. (set-buffer-modified-p modified)
  70. (push 'escape unread-command-events))
  71. (t
  72. (setq unread-command-events (append unread-command-events
  73. (list evt))))))))
  74.  
  75. (define-key evil-insert-state-map "ر" #'cofi/maybe-exit-kj) ; "ㅏ"
  76.  
  77. (defun test-my-key ()
  78. (interactive)
  79. (self-insert-command 1)
  80. (message "This key works!")
  81. (sit-for 2))
  82.  
  83. (define-key evil-insert-state-map "a" #'test-my-key)
  84. (define-key evil-insert-state-map "ㅏ" #'test-my-key)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement