9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: hugo rivera <uair00@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] Sam commands in acme
Date: Fri, 26 Jun 2009 13:54:12 +0200	[thread overview]
Message-ID: <138575260906260454k2865f408t7e438cc8b8e9bb11@mail.gmail.com> (raw)
In-Reply-To: <a81fe9be0906260342q627bac3dje8b61c327beea261@mail.gmail.com>

I tested the command you suggested (,x/\/\*/.,/\*\//) and it works as
I wanted, thanks. But there's something I still don't understand and
is the meaning of that comma in there. As far as I know, the comma is
a  mark that delimits the addresses that acme understands, but I do
not know how a comma is interpreted inside a regexp. I'd really
appreciate if you could clarify this matter to me.

2009/6/26 yy <yiyu.jgl@gmail.com>:
> 2009/6/26 hugo rivera <uair00@gmail.com>:
>> Hi,
>> I am trying to select all c comments from within a file using acme,
>> but I am unable to do it properly. The command x/\/\*.*\*\// is the
>> closest I could get, but it doesn't work with comments that span over
>> more than one line. This raises a question for me: somewhere, I cannot
>> recall where, I read that commands in sam (and therefore acme) aren't
>> line oriented but selection oriented, so, shouldn't '.*' match newline
>> characters also? why it doesn't? I expected '.*' to work with newline
>> characters since it works for spaces and tabs, and the three of them
>> are white space, among others.
>
> You could use (\n|.) to match any character including newlines
> (regex(6) says that a new line is not cosidered "any character", and
> as a matter of fact, \n is part of the sam language, not of regex
> itself). However, since the longest possible regex will be matched,
> then you will also match the end of the comment, so for example in:
> /* comment 1 */
> bar
> /* comment 2 */
> you will match everything, I don't think that is what you want.
>
>> And finally, what command I should use to select c comments without
>> regard if they are several lines long or just one?
>
> Edit ,x/\/\*/.,/\*\//c/COMMENT/
>
> The possibility of modifying the dot is powerful. Many times it is
> much easier than finding an huge regex.
>
>> Saludos
>> --
>> Hugo
>>
>>
>
> Un saludo,
>
>
> --
> - yiyus || JGL .
>
>



--
Hugo



  reply	other threads:[~2009-06-26 11:54 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-26  9:50 hugo rivera
2009-06-26 10:42 ` yy
2009-06-26 11:54   ` hugo rivera [this message]
2009-06-26 12:05     ` Rudolf Sykora
2009-06-26 12:21       ` hugo rivera
2009-06-26 10:57 ` roger peppe
2009-06-27 18:17   ` J.R. Mauro
2009-06-27 19:20     ` Rob Pike
2009-06-27 20:32       ` J.R. Mauro
2009-06-29 17:03       ` roger peppe
2009-06-29 17:20         ` erik quanstrom

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=138575260906260454k2865f408t7e438cc8b8e9bb11@mail.gmail.com \
    --to=uair00@gmail.com \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).