Connor Smith | 21 Mar 22:12 2014

New evil plugin: evil-args

Hi all,

I wanted to notify this board about a new plugin I wrote for evil
called evil-args. It provides motions and text objects for delimited

For example, `cia` changes:

    function(arg1, arg2, ar|g3.f())


    function(arg1, arg2, |)

You can find more examples and the source at Any feedback on code or issue
reports would be welcome.

implementations-list mailing list
implementations-list <at>
Leo Alekseyev | 5 Mar 23:49 2014

Visual selection search/replace

I am slowly attempting to start using vim commands in place of Emacs ones; recently I've been trying to use :s/foo/bar/g in place of query-replace.  Looking at the vim docs, it seems that \%V "atom" in a :s command can be used to obtain the same effect as emacs' query-replace-region (see, but this doesn't seem to work in Evil.  Is this a known bug?  If so, is there an official list of Vim/Evil differences that I can refer to instead of spamming this list? :)

implementations-list mailing list
implementations-list <at>
Sanel Zukan | 20 Feb 12:03 2014

Different behavior between g* and *


I noticed there is difference between '*' and 'g*', especially when
modes are involved. For example, in c-mode when I hit '*' above some
variable like 'sample_variable', only 'sample' gets highlighted and

However, with 'g*' 'sample_variable' is correctly highlighted.Similar
behavior is in lisp-like modes and cases like 'sample-variable'.

Is this expected behavior? Just checked vim behavior, and in
both cases full variable name is highlighted and searched.

Alexandre Pereira | 17 Feb 12:56 2014

buffer-menu remapping my movement keys in motion state

I've remaped my HJKL to JKLÇ both in normal and in motion states, but
for some reason when I enter the buffer-menu the movement keys are
rebound to HJKL, but ONLY in motion state, if I switch to normal state
I get my JKLÇ back. This is even more odd since it has never happened
before and I've found no reason for this to happen. Furthermore, it
only seems to rebind those four keys.

Does anyone have any ideas of what might be causing this?

This is my evilkeybinds.el which is called at some point in my .emacs

; Motion commands

(define-key evil-normal-state-map "j" 'evil-backward-char)
(define-key evil-normal-state-map "k" 'evil-next-line)
(define-key evil-normal-state-map "l" 'evil-previous-line)
(define-key evil-normal-state-map "ç" 'evil-forward-char)
(define-key evil-normal-state-map "«" 'evil-first-non-blank)
(define-key evil-normal-state-map (kbd "ª") 'evil-scroll-up)
(define-key evil-normal-state-map (kbd "º") 'evil-scroll-down)
(define-key evil-normal-state-map (kbd "£") 'other-window)

(define-key evil-motion-state-map "j" 'evil-backward-char)
(define-key evil-motion-state-map "k" 'evil-next-line)
(define-key evil-motion-state-map "l" 'evil-previous-line)
(define-key evil-motion-state-map "ç" 'evil-forward-char)
(define-key evil-motion-state-map "«" 'evil-first-non-blank)
(define-key evil-motion-state-map (kbd "ª") 'evil-scroll-up)
(define-key evil-motion-state-map (kbd "º") 'evil-scroll-down)
(define-key evil-motion-state-map (kbd "£") 'other-window)

; Misc

(define-key evil-insert-state-map (kbd "C-g") 'evil-normal-state)
(define-key evil-insert-state-map (kbd "ESC") nil)

Thank you in advance for all the help provided.

implementations-list mailing list
implementations-list <at>
gregrwm | 12 Feb 16:58 2014

:e# works at first, but not after using :ls

i have emacs 24.3.1 and evil-20131220.342.

:e# works at first, but, after using :ls, :e# no longer works.
Leo Alekseyev | 6 Feb 08:59 2014

Helm-swoop with evil-search-forward

Hi all,
I recently started experimenting with Helm and various Helm-based plugins.  One that I like quite a bit is helm-swoop [1], which can be thought of as a combination of isearch and occur.  I'm particularly intrigued by the possibility to drop into helm-swoop from isearch [2]; this has proven quite useful for me.  However, this functionality doesn't work when I invoke search using "/", i.e. evil-search-forward.  My buffer ends up in a recursive edit state, and the search string doesn't get sent to helm-swoop function.  

Might someone here be familiar with helm-swoop and knows how to make it work with evil, or at least have suggestions about how to best debug?  If not, is it possible to just remap "/" to isearch (I still don't have a clear understanding of how evil-search-forward with isearch as a search module is different from invoking isearch via C-s)?


[2] here is the elisp from helm-swoop.el which enables this functionality:
(defun helm-swoop-from-isearch ()
  "Invoke `helm-swoop' from isearch."
  (let (($query (if isearch-regexp
                  (regexp-quote isearch-string))))
    (helm-swoop :$query $query)))
;; When doing isearch, hand the word over to helm-swoop
(define-key isearch-mode-map (kbd "M-i") 'helm-swoop-from-isearch)

implementations-list mailing list
implementations-list <at>
Leo Alekseyev | 6 Feb 07:18 2014

Last character in visual selection remains unhighlighted

Hi all,
It seems that a lot of the time, visual selection for me is visually off by one character.  For example, consider the following line, with the cursor at BOL.


If I issue commands like "vf)", "v%", I end with the closing paren under the cursor, but the visual mark will NOT include the closing paren, and will only include the first 3 characters, "(123".  Now, it is important to note that if I then try to yank the selection, the yanked region is exactly what it should be, i.e. it will include the closing paren.  As such, this defect for me is purely cosmetic, but a little annoying.  Is this a known issue?  Is it possible there is some misconfiguration on my part?


implementations-list mailing list
implementations-list <at>
Currell Berry | 3 Feb 01:52 2014

Evil numbered register behavior vis-a-vis vim


First thanks to all who work on Evil.  It makes my days working in emacs much better.

One feature I use a lot in vim is, use 'yy' to yank a line, perform some arbitrary editing, possibly including deletions, trusting that vim will hold onto the yanked text in the 0 register until I yank another text, and then, finally, pasting the text back with '"0p'.  Evil doesn't implement the same behavior here.

This link describes how it's supposed to work in vim.
Numbered registers

The read-only registers 0 through 9 are your “historical record” registers. The register 0 will always contain the most recently yanked text, but never deleted text; this is handy for performing a yank operation, at least one delete operation, and then pasting the text originally yanked with "0p.

The registers 1 through 9 are for deleted text, with "1 referencing the most recently deleted text, "2 the text deleted before that, and so on up to "9.

Note that register 0 never contains deleted text.  In Evil (I have version 1.0-dev) register 0 DOES contain deleted text (try it out), therefore the workflow described above does not work.

I'm not sure if this is done on purpose or you've had this discussion before, but I know I'd love this particular feature to work the same way as vim.  Would this be easy to fix?


implementations-list mailing list
implementations-list <at>
Sanel Zukan | 2 Feb 22:26 2014

[PATCH]: ':file' fix


Attached is fix for ':file' command. When ':file' is called on newly
opened file (which doesn't exist on system yet), it will display huge
number in percentage field. With this fix, it will report "No lines in
buffer", like Vim.

Attachment (evil-show-file-info.patch): text/x-patch, 1410 bytes
implementations-list mailing list
implementations-list <at>
Sanel Zukan | 2 Feb 17:52 2014

[PATCH]: ':marks' implementation

Hi all,

Here is implementation of '(evil-show-marks)', hence ':marks'. Seems
like there is ex command declared for some time, but without

'(evil-show-marks)' follows Vim-like look displaying mark character,
row/column and filename for every buffer. Result will be shown in
temporary, *evil-marks* buffer.

Although I tested it, another pair of eyes for review and testing will
be highly welcome :)

Best regards,
Attachment (evil-show-marks.patch): text/x-patch, 3197 bytes
implementations-list mailing list
implementations-list <at>
Justin Gordon | 2 Jan 18:55 2014

Problems with Clipboard History and selections

The current implementation of x-select-enable-clipboard calls x-select-text for all cursor movement with a selection. This is not the behavior when using non-evil mode. Basically, emacs takes over my clipboard history unless the below patch is done. I'm on a Mac and use Alfred clipboard history.

My change below in bold seems to fix this issue. 

1. Is this the right thing to do?
2. Is there a contributions info page that explains how to contribute to this project. I'm familiar with github forks and pull requests.



(setq x-select-enable-clipboard nil)
(defun evil-visual-update-x-selection (&optional buffer)
  "Update the X selection with the current visual region."
  (let ((buf (or buffer (current-buffer))))
    (when (buffer-live-p buf)
      (with-current-buffer buf
        (when (and (evil-visual-state-p)
                   (fboundp 'x-select-text)
                   (or (not (boundp 'ns-initialized))
                       (with-no-warnings ns-initialized))
                   (not (eq evil-visual-selection 'block)))
          ;; CHANGE
          ;; ONLY call x-select-text if x-select-enable-clipboard is true
          (if x-select-enable-clipboard
              (x-select-text (buffer-substring-no-properties

Justin Gordon | 808-877-6461 | m: 808-281-7272
implementations-list mailing list
implementations-list <at>