[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.
>
>>Bela<
>
> _______________________________________________
> Lynx-dev mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/lynx-dev
>
- Re: [Lynx-dev] Invoking a lynx script, (continued)
- Re: [Lynx-dev] Invoking a lynx script, Thomas Dickey, 2011/10/05
- Re: [Lynx-dev] Invoking a lynx script, Graham Lawrence, 2011/10/07
- Re: [Lynx-dev] Invoking a lynx script, Bela Lubkin, 2011/10/10
- Re: [Lynx-dev] Invoking a lynx script, Thomas Dickey, 2011/10/10
- Re: [Lynx-dev] Invoking a lynx script, Bela Lubkin, 2011/10/10
- Re: [Lynx-dev] Invoking a lynx script, Thomas Dickey, 2011/10/10
- Re: [Lynx-dev] Invoking a lynx script, Bela Lubkin, 2011/10/10
- Re: [Lynx-dev] Invoking a lynx script, Thomas Dickey, 2011/10/10
- Re: [Lynx-dev] Invoking a lynx script, Bela Lubkin, 2011/10/10
- Re: [Lynx-dev] Invoking a lynx script, Thomas Dickey, 2011/10/10
- Re: [Lynx-dev] Invoking a lynx script,
Graham Lawrence <=
- Re: [Lynx-dev] Invoking a lynx script, Bela Lubkin, 2011/10/10
- Re: [Lynx-dev] Invoking a lynx script, Graham Lawrence, 2011/10/10