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

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

Expand Messages
  • igcain
    Jan 30, 2011
    • 0 Attachment
      --- 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
    • Show all 8 messages in this topic