acme/acme2k: A lesson in sane IDE defaults.

tux0r - Aug 13 '18 - - Dev Community

If your IDE requires you to use the keyboard for switching between "modes" instead of just letting you type your code; if your IDE has more colors than your television; if you find yourself configuring your IDE more than once a week: your IDE is probably not the one you should use.

I have commented that I like the acme (resp. the slightly more flexible acme2k) IDE under some recent articles. Let me explain shortly why I like it. I won't waste your time by explaining the installation process here. If you are on Windows (or Debian Linux), you might be interested in my lengthy article on DonationCoder about just that, including some Plan 9 history.

What follows is a screenshot of my minimalistic acme2k setup at work. I usually use Acme's default (yellow/blue) colors instead.

Yep, I made a typo in the first draft. Can you spot it?

As you can see, acme is not your typical IDE: No giant buttons get in your way, no wonderful colors make you think a unicorn had puked into your computer, there is no "intellisense", no "syntax highlighting" (which is a good thing), no obvious integration of compilers, linters et cetera - but in fact, you can integrate any tool, any compiler, even a shell right inside Acme.

However, two things are entirely different from Vim, Emacs, Atom, VS Code, Sublime Text or whatever "IDE" or GUI text editor you might or might not use:

  1. There are no configuration files.

    Why would you need them? As Acme can interact with everything that is "executable", you could easily write an application which interacts with everything inside the editor window. There are people who already prepared that for you.

    Your advantage: You won't waste time configuring (or: misconfiguring) Acme until it fits you. You just can't.

    Your disadvantage: If you don't like the defaults, Acme is not for you. (acme2k adds themes though - to be configured at compile time.)

  2. The mouse is your command mode.

    Just like vi and its spiritual successors (and, to a lesser extent, "modern" editors which have Ctrl key chords for their "command mode"), Acme has an "insert mode" and a "command mode". However, Acme is different in one important aspect: Anything that is not directly related to typing text into your current buffer needs to be done with the mouse, either with mouse chords or with middle-clicking the matching command in the toolbar.

    FAQ: "Wouldn't that slow you down?" - No, not really. Being a productive developer, you probably spend most of the time writing new code instead of changing existing code. Even if you need to do that, clicking directly where you want to type is notably easier than instructing your cursor to go two lines up, five columns to the right and then enter the Insert mode.

    Your advantage: You'll have a clear distinction between editing text and handling your buffer. The latter is done without your keyboard. (acme2k adds a couple of key bindings to make it easier for those who come from other editors though.)

    Your disadvantage: You'll need to open your mind a bit. This is not like "moving from Sublime Text to Atom", this is like "moving from an IBM PC to a PlayStation". You need to forget everything you knew about using an IDE. But there is a chance that this is exactly what you needed - just because other people are fast with their keyboard-controlled IDE, that does not mean that you will be too.

I will probably reference this article in the future. I hope that anyone cares at all.

. . . . . . . . . . . . . . . . .
Terabox Video Player