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

Re: Passing value of varaiable from command line to the start-up macro

Expand Messages
  • igcain
    ... Jon thanks for the reply. One question how do I know which variable I can use? Ian
    Message 1 of 8 , Jan 28, 2011
      --- In jasspa@yahoogroups.com, Jon Green <jon@...> wrote:
      >
      > On 27/01/2011 20:58, igcain wrote:
      > > Hi there
      > >
      > > I want to invoke the ne editor such that when it starts it goes to a specified line of text ready for over typing. My start-up macro in ne.emf looks something like;
      > >
      > > define-macro start-up
      > > 19 buffer-mode "over"
      > > !force search-buffer "M" "MONTH= "
      > > end-of-line
      > > !macro
      > >
      > > unfortunately my start-up macro (as currently written) only ever goes to the string constant "MONTH= ". But what I really would like to do is execute the command line with;
      > >
      > > ne -vVarName="MONTH= " somefile
      > >
      > > where VarName can be substituted for any string that happens to be present in the file to be ediited. Only thing is how do I reference the variable VarName within the start-up macro?
      > >
      > > Any help, much appreciated
      > > Ian
      > >
      >
      > Hi Ian,
      >
      > VarName needs to be a MicroEmacs variable i.e. $foo so you will do:
      >
      > ne -v"$foo=MONTH= " somefile
      >
      > Then in your start-up macro you reference the variable $foo.
      >
      > search-buffer "M" $foo
      >
      > You will need to be careful about how you quote the argument on the command
      > line if there are any special characters or spaces. This will depend on the
      > operating system you are using.
      >
      > Before you test the start-up macro probably best to play with starting the
      > editor with the variable setting on the command line and checking that the
      > variable is coming through correctly with a
      >
      > esc-x describe-variable $foo
      >
      > This will show you the variable value. If it is OK then you can work on the
      > start-up.
      >
      > Regards
      > Jon
      >
      Jon

      thanks for the reply. One question how do I know which variable I can use?

      Ian
    • Jon Green
      ... Hi Ian, You can use any variable that is *NOT* listed in esc-x list-variables These are ME s variables that are used by macros. Also avoid any environment
      Message 2 of 8 , Jan 28, 2011
        On 28/01/2011 17:36, igcain wrote:
        >
        > --- In jasspa@yahoogroups.com, Jon Green<jon@...> wrote:
        >> On 27/01/2011 20:58, igcain wrote:
        >>> Hi there
        >>>
        >>> I want to invoke the ne editor such that when it starts it goes to a specified line of text ready for over typing. My start-up macro in ne.emf looks something like;
        >>>
        >>> define-macro start-up
        >>> 19 buffer-mode "over"
        >>> !force search-buffer "M" "MONTH= "
        >>> end-of-line
        >>> !macro
        >>>
        >>> unfortunately my start-up macro (as currently written) only ever goes to the string constant "MONTH= ". But what I really would like to do is execute the command line with;
        >>>
        >>> ne -vVarName="MONTH= " somefile
        >>>
        >>> where VarName can be substituted for any string that happens to be present in the file to be ediited. Only thing is how do I reference the variable VarName within the start-up macro?
        >>>
        >>> Any help, much appreciated
        >>> Ian
        >>>
        >> Hi Ian,
        >>
        >> VarName needs to be a MicroEmacs variable i.e. $foo so you will do:
        >>
        >> ne -v"$foo=MONTH= " somefile
        >>
        >> Then in your start-up macro you reference the variable $foo.
        >>
        >> search-buffer "M" $foo
        >>
        >> You will need to be careful about how you quote the argument on the command
        >> line if there are any special characters or spaces. This will depend on the
        >> operating system you are using.
        >>
        >> Before you test the start-up macro probably best to play with starting the
        >> editor with the variable setting on the command line and checking that the
        >> variable is coming through correctly with a
        >>
        >> esc-x describe-variable $foo
        >>
        >> This will show you the variable value. If it is OK then you can work on the
        >> start-up.
        >>
        >> Regards
        >> Jon
        >>
        > Jon
        >
        > thanks for the reply. One question how do I know which variable I can use?
        >
        > Ian
        >
        Hi Ian,

        You can use any variable that is *NOT* listed in

        esc-x list-variables

        These are ME's variables that are used by macros.
        Also avoid any environment variable (i.e. $DISPLAY as used on UNIX).

        So something like $arg1 would be a sensible choice i.e.
        -v$arg1=This -v$arg2=and -v$arg3=that

        Regards
        Jon.
      • igcain
        ... Thanks for the advice Jon. Unfortunately $arg1 doesn t work all I get is arg1: Undefined variable when I use the command line ne -v$arg1= Hello
        Message 3 of 8 , Jan 29, 2011
          --- In jasspa@yahoogroups.com, Jon Green <jon@...> wrote:
          >
          > On 28/01/2011 17:36, igcain wrote:
          > >
          > > --- In jasspa@yahoogroups.com, Jon Green<jon@> wrote:
          > >> On 27/01/2011 20:58, igcain wrote:
          > >>> Hi there
          > >>>
          > >>> I want to invoke the ne editor such that when it starts it goes to a specified line of text ready for over typing. My start-up macro in ne.emf looks something like;
          > >>>
          > >>> define-macro start-up
          > >>> 19 buffer-mode "over"
          > >>> !force search-buffer "M" "MONTH= "
          > >>> end-of-line
          > >>> !macro
          > >>>
          > >>> unfortunately my start-up macro (as currently written) only ever goes to the string constant "MONTH= ". But what I really would like to do is execute the command line with;
          > >>>
          > >>> ne -vVarName="MONTH= " somefile
          > >>>
          > >>> where VarName can be substituted for any string that happens to be present in the file to be ediited. Only thing is how do I reference the variable VarName within the start-up macro?
          > >>>
          > >>> Any help, much appreciated
          > >>> Ian
          > >>>
          > >> Hi Ian,
          > >>
          > >> VarName needs to be a MicroEmacs variable i.e. $foo so you will do:
          > >>
          > >> ne -v"$foo=MONTH= " somefile
          > >>
          > >> Then in your start-up macro you reference the variable $foo.
          > >>
          > >> search-buffer "M" $foo
          > >>
          > >> You will need to be careful about how you quote the argument on the command
          > >> line if there are any special characters or spaces. This will depend on the
          > >> operating system you are using.
          > >>
          > >> Before you test the start-up macro probably best to play with starting the
          > >> editor with the variable setting on the command line and checking that the
          > >> variable is coming through correctly with a
          > >>
          > >> esc-x describe-variable $foo
          > >>
          > >> This will show you the variable value. If it is OK then you can work on the
          > >> start-up.
          > >>
          > >> Regards
          > >> Jon
          > >>
          > > Jon
          > >
          > > thanks for the reply. One question how do I know which variable I can use?
          > >
          > > Ian
          > >
          > Hi Ian,
          >
          > You can use any variable that is *NOT* listed in
          >
          > esc-x list-variables
          >
          > These are ME's variables that are used by macros.
          > Also avoid any environment variable (i.e. $DISPLAY as used on UNIX).
          >
          > So something like $arg1 would be a sensible choice i.e.
          > -v$arg1=This -v$arg2=and -v$arg3=that
          >
          > Regards
          > Jon.
          >
          Thanks for the advice Jon. Unfortunately $arg1 doesn't work all I get is "arg1: Undefined variable" when I use the command line
          ne -v$arg1="Hello" greeting.dat

          Do you think the fact I am using nanoEmacs is an issue?
        • Jon Green
          ... Hi Ian, Should not be a problem. Problem is what O/S you are running. So I am running on Sun Solaris at the moment and I can do: orac% ne -v $arg1=Hello
          Message 4 of 8 , Jan 29, 2011
            On 29/01/2011 09:58, igcain wrote:
            >
            >
            > --- In jasspa@yahoogroups.com, Jon Green<jon@...> wrote:
            >>
            >> On 28/01/2011 17:36, igcain wrote:
            >>>
            >>> --- In jasspa@yahoogroups.com, Jon Green<jon@> wrote:
            >>>> On 27/01/2011 20:58, igcain wrote:
            >>>>> Hi there
            >>>>>
            >>>>> I want to invoke the ne editor such that when it starts it goes to a specified line of text ready for over typing. My start-up macro in ne.emf looks something like;
            >>>>>
            >>>>> define-macro start-up
            >>>>> 19 buffer-mode "over"
            >>>>> !force search-buffer "M" "MONTH= "
            >>>>> end-of-line
            >>>>> !macro
            >>>>>
            >>>>> unfortunately my start-up macro (as currently written) only ever goes to the string constant "MONTH= ". But what I really would like to do is execute the command line with;
            >>>>>
            >>>>> ne -vVarName="MONTH= " somefile
            >>>>>
            >>>>> where VarName can be substituted for any string that happens to be present in the file to be ediited. Only thing is how do I reference the variable VarName within the start-up macro?
            >>>>>
            >>>>> Any help, much appreciated
            >>>>> Ian
            >>>>>
            >>>> Hi Ian,
            >>>>
            >>>> VarName needs to be a MicroEmacs variable i.e. $foo so you will do:
            >>>>
            >>>> ne -v"$foo=MONTH= " somefile
            >>>>
            >>>> Then in your start-up macro you reference the variable $foo.
            >>>>
            >>>> search-buffer "M" $foo
            >>>>
            >>>> You will need to be careful about how you quote the argument on the command
            >>>> line if there are any special characters or spaces. This will depend on the
            >>>> operating system you are using.
            >>>>
            >>>> Before you test the start-up macro probably best to play with starting the
            >>>> editor with the variable setting on the command line and checking that the
            >>>> variable is coming through correctly with a
            >>>>
            >>>> esc-x describe-variable $foo
            >>>>
            >>>> This will show you the variable value. If it is OK then you can work on the
            >>>> start-up.
            >>>>
            >>>> Regards
            >>>> Jon
            >>>>
            >>> Jon
            >>>
            >>> thanks for the reply. One question how do I know which variable I can use?
            >>>
            >>> Ian
            >>>
            >> Hi Ian,
            >>
            >> You can use any variable that is *NOT* listed in
            >>
            >> esc-x list-variables
            >>
            >> These are ME's variables that are used by macros.
            >> Also avoid any environment variable (i.e. $DISPLAY as used on UNIX).
            >>
            >> So something like $arg1 would be a sensible choice i.e.
            >> -v$arg1=This -v$arg2=and -v$arg3=that
            >>
            >> Regards
            >> Jon.
            >>
            > Thanks for the advice Jon. Unfortunately $arg1 doesn't work all I get is "arg1: Undefined variable" when I use the command line
            > ne -v$arg1="Hello" greeting.dat
            >
            > Do you think the fact I am using nanoEmacs is an issue?
            >

            Hi Ian,

            Should not be a problem. Problem is what O/S you are running.
            So I am running on Sun Solaris at the moment and I can do:

            orac% ne -v'$arg1=Hello'

            ne runs up as normal

            Then I can do a

            esc-x describe-variable $arg1

            and it is says "Hello" which is what I expect because that is what I passed.

            On UNIX then I have to protect the $arg1 from the shell (zsh in my case) so I
            have protected it with single quotes which stops the shell from expanding it.

            If I do *NOT* quote it then the command shell complains i.e.

            orac% ne -v$arg1=Hello
            ne Error: Cannot set variable [] from the command-line

            My best guess is that this is probably what you are seeing. So I think you are
            currently fighting with your command shell and not ne. Protect the string with
            a single quote pair (on UNIX/Linux/BSD), possibly it is a double quotes pair on
            Windows (do not quote me on Windows as I am not an expert and a infrequent user).

            I have to admit that I do not use "ne" at all now as it does not carry all of
            the baggage that I need, specifically the directory listing stuff. The only
            time I have really used ne in the past is in bringing up systems where I need
            an editor quickly and can FTP/HTTP the image onto the machine or where I need
            to admin a system but do not want to install any packages. Given that disk
            space memory is not such a problem these days then I much prefer the fully
            featured "me" with UK/US spelling dictionaries installed and use the Zero
            install image (http://www.jasspa.com/zeroinst.html) with a customised macro
            file bundle which includes the spelling dictionaries and my extended file
            template macros. The end result is that the file is much bigger but I still
            have a single executable image "me" that I do not need to install and can just
            run. Even on something like the EEE-PC where disk space is tight then I still
            find the zero install image better. On such a space constrained device it uses
            a much smaller footprint than a standard me install with the macro files
            individually separately installed because the archive extension uses
            compression and you do not suffer from the disk block size losses of each
            individual small file.

            Regards
            Jon.
          • igcain
            ... Jon The single quotes did it! (can t think why I hadn t tried that before) Thanks for all the help. Ian
            Message 5 of 8 , Jan 30, 2011
              --- In jasspa@yahoogroups.com, Jon Green <jon@...> wrote:
              >
              > On 29/01/2011 09:58, igcain wrote:
              > >
              > >
              > > --- In jasspa@yahoogroups.com, Jon Green<jon@> wrote:
              > >>
              > >> On 28/01/2011 17:36, igcain wrote:
              > >>>
              > >>> --- In jasspa@yahoogroups.com, Jon Green<jon@> wrote:
              > >>>> On 27/01/2011 20:58, igcain wrote:
              > >>>>> Hi there
              > >>>>>
              > >>>>> I want to invoke the ne editor such that when it starts it goes to a specified line of text ready for over typing. My start-up macro in ne.emf looks something like;
              > >>>>>
              > >>>>> define-macro start-up
              > >>>>> 19 buffer-mode "over"
              > >>>>> !force search-buffer "M" "MONTH= "
              > >>>>> end-of-line
              > >>>>> !macro
              > >>>>>
              > >>>>> unfortunately my start-up macro (as currently written) only ever goes to the string constant "MONTH= ". But what I really would like to do is execute the command line with;
              > >>>>>
              > >>>>> ne -vVarName="MONTH= " somefile
              > >>>>>
              > >>>>> where VarName can be substituted for any string that happens to be present in the file to be ediited. Only thing is how do I reference the variable VarName within the start-up macro?
              > >>>>>
              > >>>>> Any help, much appreciated
              > >>>>> Ian
              > >>>>>
              > >>>> Hi Ian,
              > >>>>
              > >>>> VarName needs to be a MicroEmacs variable i.e. $foo so you will do:
              > >>>>
              > >>>> ne -v"$foo=MONTH= " somefile
              > >>>>
              > >>>> Then in your start-up macro you reference the variable $foo.
              > >>>>
              > >>>> search-buffer "M" $foo
              > >>>>
              > >>>> You will need to be careful about how you quote the argument on the command
              > >>>> line if there are any special characters or spaces. This will depend on the
              > >>>> operating system you are using.
              > >>>>
              > >>>> Before you test the start-up macro probably best to play with starting the
              > >>>> editor with the variable setting on the command line and checking that the
              > >>>> variable is coming through correctly with a
              > >>>>
              > >>>> esc-x describe-variable $foo
              > >>>>
              > >>>> This will show you the variable value. If it is OK then you can work on the
              > >>>> start-up.
              > >>>>
              > >>>> Regards
              > >>>> Jon
              > >>>>
              > >>> Jon
              > >>>
              > >>> thanks for the reply. One question how do I know which variable I can use?
              > >>>
              > >>> Ian
              > >>>
              > >> Hi Ian,
              > >>
              > >> You can use any variable that is *NOT* listed in
              > >>
              > >> esc-x list-variables
              > >>
              > >> These are ME's variables that are used by macros.
              > >> Also avoid any environment variable (i.e. $DISPLAY as used on UNIX).
              > >>
              > >> So something like $arg1 would be a sensible choice i.e.
              > >> -v$arg1=This -v$arg2=and -v$arg3=that
              > >>
              > >> Regards
              > >> Jon.
              > >>
              > > Thanks for the advice Jon. Unfortunately $arg1 doesn't work all I get is "arg1: Undefined variable" when I use the command line
              > > ne -v$arg1="Hello" greeting.dat
              > >
              > > Do you think the fact I am using nanoEmacs is an issue?
              > >
              >
              > Hi Ian,
              >
              > Should not be a problem. Problem is what O/S you are running.
              > So I am running on Sun Solaris at the moment and I can do:
              >
              > orac% ne -v'$arg1=Hello'
              >
              > ne runs up as normal
              >
              > Then I can do a
              >
              > esc-x describe-variable $arg1
              >
              > and it is says "Hello" which is what I expect because that is what I passed.
              >
              > On UNIX then I have to protect the $arg1 from the shell (zsh in my case) so I
              > have protected it with single quotes which stops the shell from expanding it.
              >
              > If I do *NOT* quote it then the command shell complains i.e.
              >
              > orac% ne -v$arg1=Hello
              > ne Error: Cannot set variable [] from the command-line
              >
              > My best guess is that this is probably what you are seeing. So I think you are
              > currently fighting with your command shell and not ne. Protect the string with
              > a single quote pair (on UNIX/Linux/BSD), possibly it is a double quotes pair on
              > Windows (do not quote me on Windows as I am not an expert and a infrequent user).
              >
              > I have to admit that I do not use "ne" at all now as it does not carry all of
              > the baggage that I need, specifically the directory listing stuff. The only
              > time I have really used ne in the past is in bringing up systems where I need
              > an editor quickly and can FTP/HTTP the image onto the machine or where I need
              > to admin a system but do not want to install any packages. Given that disk
              > space memory is not such a problem these days then I much prefer the fully
              > featured "me" with UK/US spelling dictionaries installed and use the Zero
              > install image (http://www.jasspa.com/zeroinst.html) with a customised macro
              > file bundle which includes the spelling dictionaries and my extended file
              > template macros. The end result is that the file is much bigger but I still
              > have a single executable image "me" that I do not need to install and can just
              > run. Even on something like the EEE-PC where disk space is tight then I still
              > find the zero install image better. On such a space constrained device it uses
              > a much smaller footprint than a standard me install with the macro files
              > individually separately installed because the archive extension uses
              > compression and you do not suffer from the disk block size losses of each
              > individual small file.
              >
              > Regards
              > Jon.
              >
              Jon

              The single quotes did it! (can't think why I hadn't tried that before)

              Thanks for all the help.

              Ian
            Your message has been successfully submitted and would be delivered to recipients shortly.