[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Lynx-dev] Invoking a lynx script

From: Graham Lawrence
Subject: Re: [Lynx-dev] Invoking a lynx script
Date: Mon, 10 Oct 2011 05:06:07 -0700

Bela, I received your response asking that I post my question to the
list rather than to you personally.  I took that as an indication that
emailing you directly was undesirable.  So I did not respond to it
explicitly, only implicitly, by posting my question to the list as you
requested.  I received a reply from Thomas Dickey, for which I thanked
him, and considering the issue closed, made no further post.  Instead
I wrote the bash script alternative I had alluded to in my reply to
Thomas, and now dump lynx pages into vim with a single keystroke
combination, or 2 keystrokes as you prefer to count it.

On Mon, Oct 10, 2011 at 2:02 AM, Bela Lubkin <address@hidden> wrote:
> Graham Lawrence wrote directly to me:
>> Having 2 macros, one lynx and one vim, would be fine, except the only way
>> I've found to invoke a lynx macro is by a separate invocation of lynx, as
>> xterm -g 120x54 -e lynx -cmd_log=/path/to/script "url"
>> so its just like "lynx -dump", you have to know the url you want to operate
>> on.
>> I can do a dump of the current page most economically by
>> p<ENTER><CTRL-U>~/d<ENTER><ALT-TAB>:r ~/d<ENTER> 15 keystrokes vs.
>> <CTRL-A><CTRL-C><ALT-TAB><CTRL-V> 4 keystrokes in a gui browser and editor.
>> Is there a way to invoke a lynx script without requiring a separate
>> invocation of lynx?
> I replied asking him to repost to the list, but he didn't, nor replied
> to me, so I think my reply didn't get through.  As there is nothing
> private in the message, I am following up here instead.
> First, I dispute the keystroke counts: I see 20 for the dump-and-read
> method vs. 8 for cut-and-paste.  Ctrl-foo and alt-bar are 2 keys each
> for the operator, regardless of what a program's input stream might
> count.
> Second, both parts of the dump-and-read method can be shortened up.
> In lynx.cfg, add a PRINTER or DOWNLOADER which doesn't take a filename
> (only one "%s" in its definition) and which writes its output to an
> agreed-upon location.  I suggest something like "$HOME/.lynx-copy-out".
> Now it's "p1<ENTER>" (3 keys) to copy out.  If my reading of the PRINTER
> section of lynx.cfg is correct, the script for this could be as simple
> as just 'cp $1 $HOME/.lynx-copy-out'.  You could reduce this to two keys
> ("p<ENTER<") if you can figure out how to make your PRINTER definition
> the first in the 'p' menu.
> In vim, make a macro which performs ":r $HOME/.lynx-copy-out" (whatever
> shared filename you've chosen).
> So the full sequence is: "p1<ENTER><ALT-TAB><CTRL-???>": 5 keys by your
> count or 7 by mine.  Assuming you can dedicate a ctrl-??? or alt-???
> "2-key" sequence to the operation.
> Or you can use the program `xsel` (available in package "xsel" on Ubuntu
> and Debian).  Your PRINTER script can be 'xsel -p -i < $1'.  Your full
> key sequence is: "p1<ENTER><ALT-TAB><SHIFT-INS>", and you don't need to
> create a vim macro.  This is effectively the same as the agreed-upon
> location method, but the agreed-upon location is the X "primary
> selection" buffer.
> Finally, look for "EXTERNAL:" in lynx.cfg.  I added the following lines
> to mine:
>   EXTERNAL:ftp: lynx -dump -nolist "%s" | xsel -p -i:::XWINDOWS
>   EXTERNAL:http:lynx -dump -nolist "%s" | xsel -p -i:::XWINDOWS
>   EXTERNAL:file:lynx -dump -nolist "%s" | xsel -p -i:::XWINDOWS
> Now if I hit ',' in Lynx, it brings up a menu where the first choice is
> "lynx -dump ..."; I hit <ENTER> and it copies the contents of the
> current page into the X primary selection.  '.' does the same with the
> current link that Lynx's cursor is on.
> Then I commented out the previously existing "EXTERNAL:" lines; now '.'
> and ',' did their work *without* putting up a menu.  Note: I originally
> had an "EXTERNAL:https:" line as well, but that caused it to bring up
> two identical choices in a menu on https URLs.  It seems that https URLs
> get offered both http & https external choices.
> Nota bene: unlike a PRINTER definition, EXTERNALs receive a URL rather
> than a formatted output file.  In my examples I'm invoking a Lynx
> subprocess to format that URL.  The resulting output is similar to what
> you might see if you hit ^R (reload) inside Lynx, then 'p'rinted the
> result.  Pages which come up differently each time (e.g. rotating ads)
> will be different; pages that check the HTTP referrer header may be
> different; etc.
> You might use that to advantage, e.g. adding "-width 10000" so that
> paragraphs are inserted without line breaks (then vim's :set textwidth=
> wrapping will work).  Slight bug there: Lynx has a line length limit of
> 1014 chars (from testing); paragraphs longer than that will have
> arbitrary line breaks inserted.
> _______________________________________________
> Lynx-dev mailing list
> address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]