My favorite acme editor

    Another editor? I use Vim in SSH sessions, since it is guaranteed to be present in any Linux installation. I like SublimeText's unique multiselect ability. I sometimes open emacs to touch eternity and fully experience my worthlessness.
    acme is always open for me, under the cat agitation with pictures.
    This is Glenda.

    image
    Here you can see the mailbox, IRC channel, SHELL session, Miller’s interactive dictionary, spell checking on it and the contents of the file directory.
    image
    In this picture you can see the open source file .go, autocompletion and search for the definition of the function.
    History
    The acme editor was written by Rob Pike as the visual programming environment for the Plan9 operating system, the experimental Unix branch of bell-labs. This is the heir to the Sam editor of the same author. Both editors have been ported.
    Of the high-profile users of Sam and acme,
    Ken Thompson is a Unix developer and much more
    Brian Kernighan from K&R (Kernigan and Ricci “C programming language”)
    Tom Duff from Star Wars
    Bjarne Stroustrup C ++ developer
    Dennis Ritchie from K&R
    Rob Pike except acme unicode architect Go Language
    Russ Cox Lead Developer for the Google Team
    Control
    There are no hotkeys in acme (except for system keys) and no drop-down menus. Here, I would say that I will see that I sing. Any piece of text in any acme window can be executed as a command simply with the middle mouse button, if only it is executable.
    In this case, a fragment from another window highlighted with the left mouse button can be fed into the input data.
    If the fragment can serve as an address (for example, in the format / directory / file /: line: position, generally accepted for compilers, debuggers, linter, grep clones like akk, ag) then the address is opened with the right mouse button, say `http: // ... the address is opened in the browser.
    The built-in commands and the address of the buffer displayed in the window are represented in the panel above the window in a different color. In many ways, this is nothing more than an agreement; you are free to write in the panel what you like and write commands anywhere. Everything is just text. And all just a file, very Unixy.
    Actually editing
    Edit 0,$ x/^.*Plan9/ g/nice/ {
     |tr a-z A-Z
     a/oops
     }
    

    The built-in Edit command has syntax similar to ed, sed, awk but there are differences. All listed utilities and grep are line-oriented. For acme, a string is not a significant unit. acme 100% UTF8, The above example
    0, $ parses the text from the first to the last position
    x / splits the text into fragments such that each
    ^ starts at the beginning of the line
    . * then whatever
    happens any number of times Plan9 ends with Plan9
    / g / and if the
    nice fragment contains nice, then
    / {the statements
    | tr az AZ are executed in parallel on the fragment; pass through the system magnifier tr
    a / oopsadd oops
    }
    And I did this kind of manipulation with the aforementioned 40Mb Miller dictionary in visual mode with an arbitrarily distant Undo , including Undo after saving the Put file. SublimeText for about five minutes only opened this dictionary to me, ate all the available memory and fell into deep thought.
    Remote access

    I can:
    • import the file structure served by a 9P server (for example sources.cs.bell-labs.com) into its address space and, if necessary, mount it into its file structure
    • import 9p cpu server
    • run the acme server part on the remote nix server, and the client part on the local machine
    • ssh, scp, sftp, sshfs remote resource or service, as usual

    In all scenarios, acme windows will look and behave uniformly, of course with a slight slowdown.
    Expansion
    acme can serve as a console to everything that produces or consumes text. Software control of acme windows can be done by modifying the control files served by acme for each of its windows using 9P protocol. Any 9P client can manage acme windows. Protocol implementations exist for many languages, including Bash. I use Go.
    Resources
    Product author pdf article Rob Pike.
    Presentation of the assignee video Russ Cox.
    Fan club
    Where to get for nix systems
    for windows
    PS The post in the Go hub is because the architects of the language are the authors of Plan9. The base of the compiler code and the runtime of the percent language is 70-80 percent from the Plan9 repository (it essentially does not even depend on libc, except for the net / http stack), the same with respect to ideas and concepts. Working with go tools in acme is a pleasure; they were designed in the same tradition by the same authors. acme and Plan9 are generally inspirational evidence of the consistency of simple and clear approaches in the case when it overcomes "well, when Go attach a generic and why it does not overtake the JVM." And Go has the most complete implementation of the 9P protocol.

    Also popular now: