[slim-vim] Patch for Vim FFI, searching

Larry Clapp larry at theclapp.org
Mon Jun 19 15:41:35 CDT 2006


On Mon, Jun 19, 2006 at 10:48:03AM -0700, Brad Beveridge wrote:
> On 19/06/06, Dmitry Petukhov <dmgenp at gmail.com> wrote:
> > 2006/6/19, Brad Beveridge <brad.beveridge at gmail.com>:
> > >  Alternately we could define search as
> > > (defun search (pattern &rest flags)....)
> >
> > but then (search "pattern" :back :accept-match-at-cursor) would
> > seem like there is :black keyword parameter, with value =
> > :accept-match-at-cursor
> 
> Very good point, that would look very wrong.  Best not to go against
> Lisp code conventions.

Agree.  So:

  (defun search (pattern &key flags stopline)
    ...)

  usage example: 
  
  (search "pattern" :flags '(:backward) :stopline (vim:line "w0"))

Suggested flag names & aliases:

'b'     search backward instead of forward

	:backward or :b

'c'     accept a match at the cursor position

	:match-at-cursor or :c

'e'     move to the End of the match

	:move-to-end or :e

'n'     do Not move the cursor

	:do-not-move or :move, which would effect the "n" flag, but
	obviously do opposite things.  Or :n.

'p'     return number of matching sub-pattern

        :count-submatches or :p

's'     set the ' mark at the previous location of the cursor

	:set-tic or :s

'w'     wrap around the end of the file

	:wrap or :wl ("w-lower")

'W'     don't wrap around the end of the file

	:no-wrap or :wu ("w-upper")

	The wrap setting would default to (vim:var "&wrapscan").  They
	have no single-character alias because it seems too easy to
	confuse things with flags distinguished by case.  Yes, you
	could say :|w| or :|W|, but generally I think it'd be a Bad
	Idea.

Thoughts?

-- Larry



More information about the slim-vim mailing list