diff options
author | Matěj Cepl <mcepl@cepl.eu> | 2017-12-02 03:23:00 +0100 |
---|---|---|
committer | Matěj Cepl <mcepl@cepl.eu> | 2017-12-02 03:23:00 +0100 |
commit | 57b1e94315ce382847f97b7b5f608a81cc33a38f (patch) | |
tree | 5908355892f989337a4e390f4ee36058a93e3ee3 /computer/vim-acme-design.rst | |
parent | ae69eb6d01be572875c1613a212dc8a67d878eb8 (diff) | |
download | blog-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.rst | 69 |
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/ |