Loading ...
Sorry, an error occurred while loading the content.

Re: Function to put full stop at the end of my sentences -> refining

Expand Messages
  • Benjamin R. Haskell
    ... Here s how I d do that. For starters, I d modify the fun! ... endf version, rather than the one-liner. fun! LazyFullStop() let line = getline( . ) let
    Message 1 of 2 , Feb 12, 2013
      On Tue, 12 Feb 2013, Eric Smith wrote:

      > Eric Smith wrote on Sun-10-Feb 13 1:55PM
      >> This works great for me, thanks Benjamin.
      >> E.
      >> Benjamin R. Haskell wrote on Thu-07-Feb 13 4:39PM
      >>> ino <expr> <CR> getline('.') =~ '\w$' ? ".\<CR>" : "\<CR>"
      > I am trying (and failing) to modify this so that with lines commencing
      > with certain words like;
      > Dear
      > Geachte
      > Foobar
      > ... must not have a full stop inserted.
      > Tried using \@<!
      > How should I do this?

      Here's how I'd do that. For starters, I'd modify the 'fun! ... endf'
      version, rather than the one-liner.

      fun! LazyFullStop()
      let line = getline('.')
      let firstword = matchstr(line, '\w\+')
      if line =~ '\w$' && -1 == index(['Dear','Geachte','Foobar'], firstword)
      return ".\<CR>"
      return "\<CR>"
      ino <expr> <CR> LazyFullStop()

      That's case-sensitive (which may be what you want).

      If you want to allow leading spaces before the "forbidden" words, you
      can change:

      let firstword = matchstr(line, '\w\+')


      let firstword = matchstr(line, '\%(^\s*\)\@<=\w\+')

      And if you really want the one-liner:

      ino <expr> <CR> getline('.') =~ '\%(^\s*\%(Dear\\|Geachte\\|Foobar\)\>.*\)\@<!\w$' ? ".\<CR>" : "\<CR>"


      You received this message from the "vim_use" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php

      You received this message because you are subscribed to the Google Groups "vim_use" group.
      To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    Your message has been successfully submitted and would be delivered to recipients shortly.