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 <[email protected]> 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 > [email protected] > https://lists.nongnu.org/mailman/listinfo/lynx-dev > _______________________________________________ Lynx-dev mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/lynx-dev
