          (region (emc-get-cursor-region cursor))
          (region-type (emc-get-region-type region))
          (repeat-type (evil-get-command-property cmd :repeat))
+         (evil-last-register (emc-get-cursor-property cursor :evil-last-register))
+         (evil-this-register (emc-get-cursor-property cursor :evil-this-register))
+         (last-input (emc-get-command-last-input))
          (keys-count (emc-get-command-keys-count))
          (keys-vector (emc-get-command-keys-vector)))
     (when emc-debug (message "CMD-VISUAL %s" cmd))


          ((eq cmd 'evil-yank)
           (cond ((null region)
                  (if evil-this-register
                      (execute-kbd-macro (vconcat
                                          [?\"]
                                          (vector evil-this-register)
                                          keys-vector))
                    (execute-kbd-macro keys-vector)))
                 ((emc-char-region-p region)
                  (emc-with-region region
                                   (lambda (start end)
                                     (goto-char start)
                                     (evil-yank start end))))
                 ((emc-line-region-p region)
                  (execute-kbd-macro "yy"))))

          ((eq cmd 'evil-delete)
           (cond ((null region)
                  (execute-kbd-macro keys-vector))
                 ((emc-char-region-p region)
                  (emc-with-region region 'evil-delete))
                 ((emc-line-region-p region)
                  (execute-kbd-macro "dd")))
           (when (eolp) (evil-end-of-line)))

          ((eq cmd 'evil-change)

               (eq cmd 'evil-find-char-backward)
               (eq cmd 'evil-find-char-to-backward))
           (evil-repeat-find-char)
           (setq region (emc-update-region region)))

          ((eq cmd 'evil-use-register)
           (evil-use-register last-input)
           (setq region (emc-update-region region)))

          ((eq cmd 'evil-digit-argument-or-evil-beginning-of-line)
