My day job involves a fair bit of coding and I do most of the stuff in the terminal. But there is one sore spot that still bugs me to this day. All terminal emulators I’ve used don’t have complex text layout support.

CTL is something required by Arabic and Brahmic scripts. I’m from Myanmar and Myanmar script is one of the Brahmic family of scripts. I’ve seen Indians also having this problem with their Devanagari script as well. I mean I don’t need it too often but when I do, I have to open up a GUI text editor to edit.

I just want to know if there’s something inherently fundamental in terminal emulators that makes it hard to support CTL? Is there even a terminal emulator with CTL support?

  • Ramin Honary
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    1 year ago

    Emacs has CTL support using libharfbuz as the text shaping engine.

    But more importantly, Emacs has a “shell” app that lets you interact with a shell using the same textual interface that you would use when writing prose or code. To be sure, this is not a terminal emulator (although Emacs also has a terminal emulator app as well, called “term”), rather “shell” is a way of launching a POSIX process and interacting with it through the STDIN and STDOUT/STDERR channels. It is extremely useful, but does not always render the ANSI terminal escape codes cleanly, so colors and box drawing can sometimes end up garbled.

    Still, I find this much more useful than an ordinary terminal emulator, especially when dealing with Chinese/Japanese script, or in your case with CTL.

    • nayminlwinOP
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      Yeah, I’ve tried Emacs actually. Since it’s like a full GUI app, there’s support. I just got too invested in Vim and don’t wanna switch.

      • Ramin Honary
        link
        fedilink
        arrow-up
        5
        ·
        edit-2
        1 year ago

        If you want CTL text layout support but want to use Vim, you can use a version of Emacs with Vim emulation extensions pre-installed. The easiest way to do this is to install Doom Emacs or Spacemacs which do all the tricky configuration things necessary to make it work and feel more consistently like Vim, and it just works out of the box.

        • nayminlwinOP
          link
          fedilink
          arrow-up
          3
          ·
          1 year ago

          I tried it a few years back but gave up because I couldn’t get it to work the way my vim setup used to. May be I should give it a try again sometime.

        • nayminlwinOP
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          Tried a lot of neovim GUIs. The only one that sort of works is Onivim2. It just has some spacing issues. It really looks promising. Super fast compared to VSCode variants.