summaryrefslogtreecommitdiffstats
path: root/computer/vim-acme-design.rst
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@cepl.eu>2017-12-02 03:23:00 +0100
committerMatěj Cepl <mcepl@cepl.eu>2017-12-02 03:23:00 +0100
commit57b1e94315ce382847f97b7b5f608a81cc33a38f (patch)
tree5908355892f989337a4e390f4ee36058a93e3ee3 /computer/vim-acme-design.rst
parentae69eb6d01be572875c1613a212dc8a67d878eb8 (diff)
downloadblog-source-57b1e94315ce382847f97b7b5f608a81cc33a38f.tar.gz
vim-ACME more system level thinking and Project Oberon.
Diffstat (limited to 'computer/vim-acme-design.rst')
-rw-r--r--computer/vim-acme-design.rst69
1 files changed, 55 insertions, 14 deletions
diff --git a/computer/vim-acme-design.rst b/computer/vim-acme-design.rst
index 0dcf1e6..16f1688 100644
--- a/computer/vim-acme-design.rst
+++ b/computer/vim-acme-design.rst
@@ -178,25 +178,56 @@ a reaction to this enamorment to mouse. So, let us ignore this
desire to “move beyond typescripts” and let us consider what we
have left here otherwise.
-Obviously plenty of commands mentioned in the original document
-are pointless, because vim already contains functionality
-provided by them (``g`` command) or there are other means of
-achieving the functionality. Originally, when I started to write
-this paper, I was consdiering whether the internal term is a good
-idea. Now it is part of vim8, so the question is moot. However,
-it is simply terminal displaying output of programs run from vim
-(or inside of the terminal itself), but the editor should be also
-able to react back on (and read from) the content of the
-terminal.
-
-.. FIXME could we open new split/tab in vim from the command in
- :term?
+While straying from the ACME itself, we probably need to mention
+`@wirth:1992project`, which was original inspiration for ACME,
+but to some extent it was more distant from Unix and vi tradition
+than the later Plan9 and ACME was [#]_. Whereas Plan9 was firmly
+in the tradition of “everything is file” and “collection of small
+tools linked together by pipes” (and thus closer to vim running
+on Linux), Oberon was precursor of the object-oriented software
+(not only object oriented programming, but also object-centered
+user interface, where tools are oriented around particular data
+types [#]_). Therefore, in this paper we ignore Oberon, although
+it is certainly perhaps closer to the current ideas about
+object-centered computing.
+
+Back to ACME. Obviously plenty of commands mentioned in the
+original document are pointless, because vim already contains
+functionality provided by them (``g`` command) or there are other
+means of achieving the functionality. Originally, when I started
+to write this paper, I was consdiering whether the internal term
+is a good idea. Now it is part of vim8, so the question is moot.
+However, it is simply terminal displaying output of programs run
+from vim (or inside of the terminal itself), but the editor
+should be also able to react back on (and read from) the content
+of the terminal.
+
+It would be really interesting if the script running in ``:term``
+would be able to open file for ediitng in vim in a new
+window/tab. Apparently we have mapping for keys in the terminal
+mode (although probably just in its “normal” not in the inserting
+one?), but it would be interesting if we could run an action on
+selection/current word in the terminal.
+
+ACME apparently follows the Zawinski Law (“Every program attempts
+to expand until it can read mail. Those programs which cannot so
+expand are replaced by ones which can.”) written with these tools
+and small help tools. However, I think that is a wrong idea.
+I think the main point of vim (and vi) is to be extensible
+editor, not Emacs. However, the point is that apparently idea of
+plumbing in ACME meant, that there should be no internal
+scripting language for it, just external tools with plumbing to
+stich all these together. Advantage being obviously independence
+on particular language (I do agree, that support for six
+independent programming languages in one editor is too much).
+Those external tools are however often very focused on being used
+only inside of ACME, so they should be kept separate from normal
+system utilities (all of them are located outside of ``$PATH``).
.. I don't understand what the mentioned ``g`` is supposed to
mean. There is no isolated just ``g`` command, AFAIK. There
is ``gf`` and similar.
-
.. [#] 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.
@@ -207,6 +238,16 @@ terminal.
textual commands and their output—originates with the scrolls
of paper on teletypes.”
+.. [#] Interesting thing is that even professor Wirth resurrected
+ his projected recently and created similar system on the
+ current hardware in 2013 (`@wirth:2013programming`)
+
+.. [#] Obscure example of this tool was `@anonymous:geos`, which
+ however managed to have swiftly working environment for work
+ with text, pictures, and (I think) spreadsheets on ancient
+ PC/XT computer in time where Microsoft Windows required
+ high-end systems.
+
.. _project:
https://github.com/plan9-for-vimspace/plan9-for-vimspace/