summaryrefslogtreecommitdiffstats
path: root/vim-acme-design.rst
diff options
context:
space:
mode:
Diffstat (limited to 'vim-acme-design.rst')
-rw-r--r--vim-acme-design.rst81
1 files changed, 80 insertions, 1 deletions
diff --git a/vim-acme-design.rst b/vim-acme-design.rst
index a9954de..ca11f3d 100644
--- a/vim-acme-design.rst
+++ b/vim-acme-design.rst
@@ -16,6 +16,11 @@ thinking when I saw the screencast whether it would be possible to
transfer somehow the modular nature of ACME to the vim world. I haven’t
came with anything, so I gave up then and forgot whole thing.
+.. image:: {filename}/images/glenda_sshot.png
+ :width: 66%
+ :align: center
+ :alt: screenshot of Plan 9 desktop
+
So, I was very excited when looking for something else I found on GitHub
project_ trying to bring some Advantages of ACME text editor to the vim.
However, it is obviously in the early stages of development and it
@@ -61,10 +66,78 @@ And yes I like very much possibility of calling not only “internal”
(however defined) commands, but also external scripts when the internal
command is not found with the given name.
+It is important to know, that all external commands are run with the
+``$PWD`` being set to the directory of the currently opened document.
+
Hyperlinks in the body of text
------------------------------
-x
+ Typing with the keyboard and selecting with the left button are as
+ in many other systems, including the Macintosh, 8½, and Sam. The
+ middle and right buttons are used, somewhat like the left button, to
+ ‘sweep’ text, but the indicated text is treated in a way that
+ depends on the text’s location—context—as well as its content. This
+ context, based on the directory of the file containing the text, is
+ a central component of Acme’s style of interaction.
+
+Primary mouse button [#]_ is used more or like normal way the mouse is
+used in other text/word-processors, i.e., for selection, cutting, and
+pasting of text.
+
+Most of what ACME does in the body of text is nothing more than just
+a normal hypertext, but not the limited version we have now in the World
+Wide Web, but it is closer to the original ideas of hypertext as
+envisioned by Vannevar Bush (Memex_), Ted Nelson (Xanadu_), and Neil
+Larson (`Maxthink and Houdini`_). Target of the link can be a way richer
+than just a jump to other document (or some particular place in
+a document). Links are in their nature either local (somehow connected
+to the local path name; of course, local in Plan 9 is quite relative
+term) or activation of some command.
+
+Of course, hypertext is not completely new idea in vim (``Ctrl-]``, to
+some extent ``K``), so it would be probably wise just to extend already
+existing system with new features.
+
+Given that the system is intended to work with plain text (there is no
+separation of presentation from content, aka
+what-you-see-is-what-you-have), it is probably a good idea, actually it
+is necessary, to use for recognition of the hyperlinks more
+sophisticated and more stealthy form than just normal URL style of
+``method://target``. Also, given that the system of links should be
+expandable, so that the user may add new types of links for her
+particular class of documents, it could be necessary to use something
+like regular expression or some other mechanism.
+
+Of course, there will be set of already defined links. The ``vi``-style
+of ``filename:line#`` is probably a good one, and it could be quite
+naturally extended to utilize some kind of regular expression-like style
+of pinpointing the location in a document in more flexible way than just
+by line numbers. It should use either absolute style pathnames, or just
+relative pathnames when the directory the local of the current document
+should be kept as a root of the hierarchy. Which means, that I am not at
+all persuaded it should support ``../../filename.txt`` up-the-hierarchy
+stepping filenames.
+
+Also, given the current date and age, it is probably necessary to
+support somehow the plain URLs (possibly by calling external viewer
+program, e.g. by utilizing ``xdg-open`` style of programs), at least
+``http[s]://``.
+
+Among programmers and Unix users it is quite common to use ``man(1)``
+style of links between two manpages, so it is possible it could be used
+as well.
+
+However, the biggest power of the system should line in fact that it
+should be extendable. Somehow. Most likely some kind of RE for
+identifying anchors of links in the body of text (possible with passing
+some kind of parameters of a link) and something looking like a very
+simple scripting language to define the action generated by the
+activating the link.
+
+
+.. [#] Befing a leftie, I don’t like to assume that the left button is
+ a primary button, so instead of left, middle, and right labels I use
+ primary, middle, and secondary buttons.
.. _project:
@@ -77,3 +150,9 @@ x
https://github.com/plan9-for-vimspace/plan9-for-vimspace/issues/4
.. _paper:
http://doc.cat-v.org/plan_9/4th_edition/papers/acme/
+.. _Memex:
+ https://en.wikipedia.org/wiki/Memex
+.. _Xanadu:
+ https://en.wikipedia.org/wiki/Project_Xanadu
+.. _`Maxthink and Houdini`:
+ http://maxthink.com/