Makes me wonder, though, is there enough space in unicode to just encode every possibly 16x16 bitmap? 256 bits?
Space is not an issue here. You can do with very few characters, just make them combine with each other, like ˩˥ is encoded as ˩+˥, flags are encoded as combinations of two letters, etc.
So, you can just have 256 characters for each bitmap dot and make them combine with each other. Or have 16 characters and make them combine (maybe using zero-width joiner).
I think the biggest problem is actually getting this thing into Unicode. Emoji got codified because some Japanese phone encodings included them. But it would be harder to justify arbitrary bitmaps.
Up to four (or more?) in some cases. Example: The flag of Scotland, that's a four-character combo IIRC.
gnuplot> set term dumb
Terminal type is now 'dumb'
Options are 'feed size 79, 24 aspect 2, 1 mono'
gnuplot> plot sin(x)
1 +--------------------------------------------------------------------+
| * * + * ** + * * |
0.8 |-+ * * * * sin(x* *******-|
| * * * * * * |
0.6 |-+ * * * * * * +-|
| * * * * * * |
0.4 |*+ * * * * * *+-|
|* * * * * * * |
0.2 |*+ * * * * * *+-|
| * * * * * * * |
0 |-* * * * * * *-|
| * * * * * * *|
-0.2 |-+* * * * * * +*|
| * * * * * * *|
-0.4 |-+* * * * * * +*|
| * * * * * * |
-0.6 |-+ * * * * * * +-|
| * * * * * * |
-0.8 |-+ * * * * * * +-|
| * * + ** * + * * |
-1 +--------------------------------------------------------------------+
-10 -5 0 5 10I've even written my own simple barplot program in awk for generating quick-and-dirty comparisons in shell scripts.
Minitab!
Not 100% sure I understand your requirement, but does `column` fit the bill?
$ echo -e "foo,bar,quux\n1,2,3" | column -t -s,
foo bar quux
1 2 3 $ echo -e 'foo,bar,quux\n1,,3' | column -t -s,
foo bar quux
1 3
The man page says:> Version 2.23 changed the -s option to be non-greedy
Elsewhere on an ancient Ubuntu I have lying around, `-n` did the same:
-n By default, the column command will merge multiple adjacent delimiters into a single delimiter when using the -t option; this option disables that behavior. This option is a Debian GNU/Linux extension. $ cat iris.csv | ph columns setosa versicolor | ph head 15 | ph tail 5 | ph show
setosa versicolor
-- -------- ------------
0 1.5 0.2
1 1.6 0.2
2 1.4 0.1
3 1.1 0.1
4 1.2 0.2Don't get me wrong, JetBrains has some cool stuff. It's nice to see they're working on a lighter-weight text editor to add some competition to the newbie-friendly text editor market. And JetBrains Mono is a phenomenal monospace font.
IntelliJ is open source/FOSS/FLOSS/Free Software, etc, here is the code[0], license is Apache 2.0.
As an editor, I really hate it coming from vim. Even with vim mode, it sits in the uncanny valley for me. It's pretty close to vim, I'd say 95% of the stuff works as I'd expect, but the last 5% is jarring. My biggest annoyances are:
* The undo behavior is insane, I'm constantly double-tapping u, because undo brings your cursor back to your last edit, but doesn't undo it. Unless your cursor is already where it should be, then it will undo. So it's uu then ctrl+r (sometimes).
* They don't have vim tabs (I don't think any modern IDE does). I'm constantly closing and reopening splits, it drives me crazy.
* There's no toggle fold, gotta explicitly unfold/fold. That muscle memory is stuck with me now, even in vim which makes me sad.
* Moving between the different panels is not the same as moving between different splits. You need to memorize the hotkey for each panel and then the hotkey to get back to the code, it feels extremely unnatural. The vim hotkeys are hit or miss in the different panels as well.
Despite all that, I still used it when I was working on a Kotlin codebase. I wish it was possible to extract their language processing stack and use it in vim to have the best of both worlds.
This is a much better way than stock vim. In vim, if I scroll elsewhere and undo, it jumps back to the last edit and already undone the edit and sometimes I'm not sure what got changed but in IntelliJ it jumps back first, so I can see what will change before it gets undone and also I can just use 'u' whenever I want to go back to the last edit's position.
> also I can just use 'u' whenever I want to go back to the last edit's position.
I use ctrl+o for this.
My dev workflow consists of 4-6 screen sessions with 3-5 terms each. Each one represents one "task" (usually a branch), and I use git worktrees to keep separate copies of the repo that are linked at the git object level. An IDE that insists on being a GUI makes me feel like I'm using a toy OS like Windows.
As a bonus, this is a remote-native setup, which made covid trivial to adapt to. I'm exactly as productive in the office as I am at home or on planes or in Ubers or at wine bars on sunny afternoons (modulo extra screen real estate).