How to set cursor in editor to pattern given on command line?

Frantisek Hanzlik franta at hanzlici.cz
Wed Nov 4 22:42:45 UTC 2009


Cameron Simpson wrote:
> On 02Nov2009 11:27, Frantisek Hanzlik<franta at hanzlici.cz>  wrote:
> | steve wrote:
> |>On 11/02/2009 12:58 AM, Frantisek Hanzlik wrote:
> |>>Hello all,
> |>>[...snip...]
> |>>Just something as "+/{pattern}" option in vim editor does.
> |>>
> |>>I want offer to (unexperienced) users edit (in shell script) some
> |>>configuration files, and this should be done with some simple editor
> |>>(no Emacs or vi). I think e.g. joe or mcedit is simple enough for
> |>>these users, but joe nor mcedit cann't? probably? solve this demand
> |>>(joe's command line option for jump to given line number (+nnn) isn't
> |>>too much useable for this).
> |>
> |>This is a fairly common requirement when distributing applications which
> |>may need config file changes, to inexperienced uses. My approach is
> |>generally to provide a command rather have the users open an editor, eg:
> |>
> |>$ sed -i -e "s/foo = LOOK_FOR/foo = REPLACEMENT/" foo.conf
> |>
> |>of course you could precede that with something like ...
> |
> | I agree that variant with sed is in many respects more foolproof than
> | direct editing, but in my case this isn't practical, as users need to
> | see (and occasionally change) surrounding text too. Thus, classical
> | editor is needed...
>
> Ok, you'll have to to this on a per-editor basis, alas.
>
> If joe has a +nnn option, try:
>
>    # or egrep, depend what flavour regexp you're offering
>    n=`grep -n "$pattern"<"$file" | sed 's/:.*//'`
>    joe "+$n" "$file"
>
> You'll need to work out variations for other editors, alas.
-- 
Hello Mr. Cameron and James,

thank You for these suggestion. I didn't want just jump to line with
searched text, because lines in edited files are long - sometimes up to
300-400 chars (sorry, I'm not author of them :). Then, I want jump right
on the edited text. At present it appears as simple editors cannot do
this. I have working solution in vim:

$ vim -i NONE -S <(echo -e "/SrchdPattern...\\zs/\nnormal n") EditedFile

("...\\zs/\nnormal n" construct is there because I want edit text 3 chars
after searching pattern).
It seems as my users will must know several vim commands. Or they will
had lesser comfort with some simpler editor.

Regards, Franta Hanzlik




More information about the fedora-list mailing list