[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Lynx-dev] Transferring page text from lynx to vim
From: |
Bela Lubkin |
Subject: |
Re: [Lynx-dev] Transferring page text from lynx to vim |
Date: |
Sun, 2 Oct 2011 22:33:35 -0700 |
Thomas Dickey wrote:
> On Sun, 2 Oct 2011, Graham Lawrence wrote:
>
> > Does lynx happen to put the address of the current page in some global
> > variable? So then I could create a key mapping in vim that would cause
> > lynx to dump the page to a constant filename, and insert that file's text
> > where I want it in the vim buffer.
...
> But dumping is a special case of display - it bypasses most of GridText.c
>
> However - to your point - when you're telling lynx to dump a file, that
> goes to the standard output. Redirecting that with a script should be
> simple. (That doesn't require knowing anything about the variables that
> lynx uses).
An `html2ascii` script I once wrote has at its core the following
formulation:
lynx -dump -justify=off -with_backspaces -display_charset=us-ascii \
-width=$WIDTH -nolist -force_html address@hidden/dev/stdin}
-- some parts of which are specific to the setting I had it in.
Breaking it down:
-dump Parse HTML, output formatted text
-justify=off Because I hate it ;-}
-with_backspaces Use x^Hx, x^H_ formatting for bold, underline
(probably not desirable for vim insertion; looks
good in `less`)
-display_charset=us-ascii Force 7-bit output -- probably not wanted
-width=$WIDTH Column width of output ($WIDTH prev. calculated)
-nolist Don't append table of link URLs
-force_html Override in case we're using /dev/stdin
address@hidden/dev/stdin} POSIX shell syntax for "This script's arguments,
or if none, /dev/stdin (standard input)"
With no args, it's a filter; with args, it dumps each arg. Args can be
local files (foo.html; bar.txt -- which will still be read as HTML), or
URLs (http://www.google.com/index.html). Output is concatenated with no
separators.
Suppose you've saved something based on this as a script on your path,
named lynx2ascii. Then inside vim you could do:
:'a,'b!lynx2ascii
to dump a section of HTML to ASCII with no intermediate output file.
I don't quite understand the concept of "Lynx's current page" if you are
inserting into a vim buffer. That implies you are *in* vim, not Lynx.
If you invoke Lynx on vim's behalf (like above), you have to pass it a
URL or local filename or stdin.
Or are you proposing to have a key in *Lynx* which means "dump the
current page into a file, then run vim on that file"? For that, look at
the PRINTER/DOWNLOADER section of lynx.cfg. The `most` examples are
probably a good starting point.
>Bela<