diff options
Diffstat (limited to 'vim-acme-design.rst')
-rw-r--r-- | vim-acme-design.rst | 81 |
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/ |