[implementations-list] vimpulse interaction with cua increasing number feature

Fabian Braennstroem f.braennstroem at gmx.de
Wed Mar 31 09:26:23 CEST 2010


Hi Vegard,

thanks for your help!

On 03/29/2010 10:31 PM, Vegard Øye wrote:
> Hi Fabian!
>
> Are you using the Subversion version of Vimpulse? You'll need to point
> your SVN client to the address below if you want the latest bugfixes
> before release.
>
> http://my-svn.assembla.com/svn/vimpulse
>
>>> I have a new problem with my traditional handling in dired mode.
>>> In dired mode, I am not able to split the window horizontally or
>>> vertically anymore using :sp or :vs !?
>
> Fixed in SVN revision 159.

Ok, I did that now... very nice :-)

>
>> [M-n] fills each line of the rectangle with increasing numbers using
>> a supplied format string (prompt)
>>
>> Does anyone have a hint, how I could get this cua-feature to work
>> with the new vimpulse? Maybe, there is already a vimpulse function,
>> which can do the same!?
>
> The Cua function will only work on Cua rectangles. However, since
> Vimpulse's block selections are rectangle compatible, an equivalent
> rectangle command can be written as follows:
>
>      (require 'rect)
>
>      (defun my-sequence-rectangle (first incr format)
>        "Insert increasing numbers at beginning of each line."
>        (interactive
>         (list (if current-prefix-arg
>                   (prefix-numeric-value current-prefix-arg)
>                 (string-to-number
>                  (read-string "Start value: (0) " nil nil "0")))
>               (string-to-number
>                (read-string "Increment: (1) " nil nil "1"))
>               (read-string "Format: (%d) ")))
>        (when (= (length format) 0)
>          (setq format "%d"))
>        (apply-on-rectangle
>         (lambda (start-col end-col count-var)
>           (move-to-column start-col)
>           (insert (format format (eval count-var)))
>           (set count-var (+ (eval count-var) incr)))
>         (region-beginning) (region-end) 'first)
>        (vimpulse-visual-mode -1))
>
>      (vimpulse-vmap (kbd "M-n") 'my-sequence-rectangle)
>
> If you compare it with `cua-sequence-rectangle', you'll see they are
> quite similar; the Cua function uses `cua--rectangle-operation' for
> applying a lambda function on each line, whereas this function uses
> `apply-on-rectangle' from rect.el.

This works quite well... thanks!

Best Regards!
Fabian



More information about the implementations-list mailing list