[Vimoutliner] how to abstract from tree to graphs,
or at least have hyperlinks
Peter Princz
princzp at gmail.com
Fri Jul 7 11:25:36 EDT 2006
Steve,
please find my comments inline.
On 06/07/06, Steve Litt <slitt at troubleshooters.com> wrote:
> Hi everyone,
>
> Let me throw out this question for the sake of discussion. Are we starting to
> feel the limits of the Vim engine?
I personally not.
> Cloning appears nearly impossible with the
> Vim engine,
Yes, but I do not feel the need of cloning. I prefer singletons with
softlinks in almost everything. :o
The intraoutline linking we are talking in this thread is compliant
with this approach.
But this is a personal preference only, I can accept if others think
cloned copies of bit-to-bit identical pieces of information are the
way to go for them...
> and in my opinion the current VO hoisting is pretty rocky.
Yes, it is. But I again, use a workaround here. A very simple, 3-liner
entry at the top level in my outline file:
Hoisting and indent manipulation
// === Hoisting start ===
// === Hoisting end ===
I simply yank the branch I want to print/export/manipulate on between
the two markers, close it with zc, mark it with v, type the number of
levels I want to outdent and then <. So in short: I have the hoisted
copy (yes, it's a clone :) in the same file. I delete the clone from
the hoisting area after the manipulation.
>
> Every data relationship Peter discusses, plus cloning and hoisting, could be
> represented in Postgres or MySQL, both of which are standard on most Linux
> boxen, without wierd kludges. Relational databases accommodate things like
> hoisting, cloning and other relationships that a pure hierarchy would choke
> on or require some pretty iffy kludges.
I'm a strong supporter of relational databases, work daily with Oracle
and Sybase, but the main point in migrating from i.e. Outlook was to
have all my data in a single text file that I can manipulate with the
fastest tool I ever had for text manipulation (=vim).
I personally intentionally do not want to step out from vi. In that
moment I would lose the speed and ease of editing my outline(s) which
is a decisive factor.
I'm on a long-long (17 years long to date) journey visiting commercial
paper-based filofaxes, electronic PDA-s, a self-made database-powered
PIM-tool, corporate Outlook, self-made paper-based Filofax. Only
recently, using VO I have the feeling of the arrival. :o
>As a matter of fact, years ago
> Gabriel Horner came to my house and showed off a MySQL enhanced VO with some
> pretty enhanced capabilities. Gabriel -- U still on the list?
However, I'm very interested in this approach. As I mentioned above, I
myself wrote a textual graph manipulation tool with a database backend
a few years ago.
Let me describe at this point where I'm stretching the limits of VO:
an item and it's child element below it in a vo file are the vertices
in the graph, the fact the child is demoted below the parent is an
edge in the graph. The vertices do have at least a mininal set of
properties (a name, the actual text typed at that line), while the
edges absolutely nothing! Would be nice to know *why* is something
below the parent (synonym? elaboration? antonym? translation in a
foreign language?) as well as handle weighted edges, so that an
outline file could be used for making informed decisions. :o
The RDBMS-powered PIM I was polishing for myself was capable of
storing properties of the edges as well, would be nice to evalute the
solution you are referring to here from this point of view.
(But of course, the best would be to incorporate this somehow into the
existing VO... :)
>
> I think that if we ever do make a DBMS back end, several things are vital:
>
> 1) Vim based VimOutliner remains the "main" version forever.
Yes, I agree.
> 2) The DBMS backed version could be called "VO Magnum" or something like that.
Can't comment on this.
> 3) The DBMS version's main front end should respond to VO keystrokes.
In fact, I think this frontend should be VO itself. I have a plugin
called 'dbext' installed, from where you can log in to a database,
send sql commands and have the resultset in another window. I'd start
with trying to marry VO and dbext plugins. What do you think?
It can be found here:
http://www.vim.org/scripts/script.php?script_id=356
> 4) The DBMS version should be able to import and export to standard VO.
Yes, see above.
> 5) In all respects, the current VO should be the prototype for the DBMS based
> VO.
Not only prorotype, but "The" frontend, as described above.
> 6) The building of the DBMS version, if it happens at all, should be done
> slowly with lots of discussion on the list.
Yes.
> 7) Before we could really begin, we'd need a maintainer. There's no guarantee
> that either Noel or I would have the time for developing/maintaining the DBMS
> version.
This will be the hardest, I think. :(
> 8) The DBMS version could have an additional front end (besides the VO clone)
> that would be much more "user friendly" and therefore slower for a touch
> typist. That version should teach the VO keystrokes so that it's really just
> a transition.
I personally donát feel the need for another frontend, I think vi with
vo would be fine for me. However, once the table structure and all the
validation logic is in péace in the database, it is relatively easy to
create or even to autogenerate some fancy GUI forms to feed-retrieve
the DB tables...
> 9) There must be a backup mechanism.
That is built into the database, at least into those I'm working with.
I do not think special care is needed from us here, apart from being
able to fetch the whole outline file from the database into vi.
> 10) There must be a committed culture of cooperation between the two VO's so
> that, to the extent, good features of either end up in the other, and so that
> keystrokes are identical, and so that key combinations aren't glutonously
> consumed.
I can't comment on this one. I'm not even convinced on the need for
another frontend, as I explained above.
>
> Like I said, I'm not necessarily suggesting we do this, and if we eventually
> do, I'm not implying it will be done anytime soon. I'm just starting a bull
> session.
>
These were just my 2 cents.
Have a nice day,
Peter
--
Keep cool. Develop in total darkness.
More information about the VimOutliner
mailing list