I wrote these functions for vimpulse. If you rewrite them for evil, send me a copy:

(defun ny-eval-region-dwim ()
  "Evaluates the current region if it exists. Otherwise evals the current line"
  (interactive)
  ;; if there is no region, select current line
  (when (not vimpulse-visual-mode)
    (progn
      (viper-beginning-of-line 1)
      (vimpulse-visual-toggle-line)
      (viper-goto-eol 1)))
  (eval-region (region-beginning) (region-end))
  ;; de-activate visual mode
  (vimpulse-visual-mode -1))

(defun ny-eval-buffer ()
  (interactive)
  (eval-buffer))

;; sample mappings
(vimpulse-map ",er" 'ny-eval-region-dwim)
(vimpulse-map ",eb" 'ny-eval-buffer)


Natan

--
twitter: @aantn

On Sun, Sep 18, 2011 at 9:11 PM, Eric S Fraga <e.fraga@ucl.ac.uk> wrote:
Lorenz Köhl <rainbowtwigs@googlemail.com> writes:

> Hello,
>
> evil is awesome.
>
> As I was customizing to make my vim and emacs habits non-exclusive I
> realized that C-x C-e (eval-last-sexp) works on the next to last sexp
> and I couldn't move over the last paren as it's usually the last
> character.
>
> How do you eval in evil?

I was just going to ask the same question!  The problem is the mismatch
between emacs point and vi's character position.

In any case, the solution is quite straightforward: put the cursor
(point) at the start of the next line.  Not ideal but it works.

HTH,
eric

--
Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D)


_______________________________________________
implementations-list mailing list
implementations-list@lists.ourproject.org
https://lists.ourproject.org/cgi-bin/mailman/listinfo/implementations-list