5 ms·
It's interesting to me that shell integration is becoming a harder problem with editors these days. Emacs has a multi-term which kind-of works (there were many
by artagnon 11y ago
It's interesting to me that shell integration is becoming a harder problem with editors these days. Emacs has a multi-term which kind-of works (there were many packages before this that didn't work), Vim does not have a package that can present a prompt (afaik), and Atom finally has a near-perfect terminal in the form of the term3 package.
What Atom considers bare minimum is stuff that Acme doesn't even think about: syntax-highlighting, auto-indentation, and auto-complete.
- sunnyps 11y agoWhy should a text editor even have a terminal emulator?
- henesy 11y agoI think it's less about having a terminal emulator and more about having access to the shell environment. In the case of acme no terminal emulator is used but you still retain access to the system tools you are given and typically access through a shell.
- akacase 11y agoIn the tag bar, type Win and middle click. You'll get a terminal.
- chenglou 11y agoYou can definitely see why in the video, starting from 15:25. I don't use terminal emulators, but for other editors and from my experience, it's the keybindings and the text processing on the shell output. Acme took that to an extreme.
- SixSigma 11y agoAcme has a terminal, and a web browser, and a mail client, and a news reader
- i4k 11y agoAcme doesn't have web browser and news reader natively. For terminal, acme have support for windows attached to programs (if the program is a shell, you have something like a terminal). From the manpage: Win creates a new acme window and runs a command (default /bin/rc) in it, turning the window into something analogous to an rio(1) window. Executing text in a win window with button 2 is similar to using Send. Mail client is builtin but only for upas/fs. If you want/need another approach you can extend by external programs. Some other applications of plan9 have taken the advantage of acme UI (like abaco web browser) but they aren't builtin inside acme.
- SixSigma 11y agoI know. My friend FGB wrote abaco. I have code in the distribution (in faces) and the screenshot on the Wikipedia Acme page is from my screen [1] - though it was Uriel who put it there. plan9 is meant to have very little "native". Even moving to line number 4 with :4 is not native, it's in the plumber. [1] https://upload.wikimedia.org/wikipedia/commons/thumb/9/98/Acme.png/729px-Acme.png https://upload.wikimedia.org/wikipedia/commons/thumb/9/98/Ac...
- i4k 11y agoVery nice! Yes, plumber is the app behind the scenes that make acme so much integrated with OS and other apps. The same applies for right-click on the text between '<' and '>' in includes (in C source files) for opening header files. That's the kind of programming environment that I miss when using emacs/vi.
- SixSigma 11y agoIt is all sorts of awesome. (sorry this is so long :) In that screenshot I am editing PHP files on an OpenBSD box at the colocation. It is running u9fs tunneled over ssh so I can connect to the filesystem via 9p. I have three plumbing rules for editing PHP. One window runs the shell command "tail -f /n/momo/var/log/httpd/error". From there I can plumb Syntax error in /path/webpage.php on line 56 It extracts the filename part "/path/webpage.php" and line "56". The web server is chrooted. It then checks if /n/momo/var/www/path/webpage.php exists and if it does it opens that file at line 56 If I plumb a file ending in .class or .inc it looks in /n/momo/var/www/php (my include directory) and opens it if it exists. This is so I can plumb file.class in include("file.class") in php files The final one fires if I plumb "validfunctioname(", it runs a shell script on the server and greps for that function in all my php files. I use the plan9 method of defining functions with function validfunctionname(args) so that grep -ni '^validfunctionname(' will work. So I had what most people would think a pretty useful PHP ide in twenty lines of code.