Ki Editor - an editor that operates on the AST

(ki-editor.org)

58 points | by ravenical 3 hours ago ago

15 comments

  • scriptsmith an hour ago

    The "First-class syntactic selection" reminds me of my most used shortcut(s) in Jetbrains IDEs: the Expand / Shrink Selection.

      Ctrl + W
      Ctrl + Shift + W
    
    https://www.jetbrains.com/help/idea/working-with-source-code...

    It really changed my perspective on interacting with the 'text' of a file.

    VS Code, Zed, etc. have similar operations, but in my experience they expand and shrink too coarsely.

    • enkursigilo an hour ago

      Also available as `incremental selection` in Neovim via tree-sitter.

  • evelant 12 minutes ago

    I made the vscode integration for this. I feel bad that I haven’t contributed much since, it’s a really cool project. IMO it’s important to try to innovate in the foundational tools of our craft (editors, languages, tooling, OS, etc) which Ki does.

  • shashurup an hour ago

    In my classification of editors:

    1. Orthodox. Mostly focused on looks and integrations.

    2. Modal, Vim improvement. Focus on keeping basic Vim keybindings with minor improvements.

    3. Modal, rethinking Vim approach.

    Ki falls into the third category which I constantly monitor.

    • jshmrsn 11 minutes ago

      I am working on a modal code editor project that you might find interesting then. It also operates on an AST directly, which is represented as UI nodes which closely resemble normal text layout. Email in profile if you’d like to give it a try and possibly give early feedback (still in early development).

    • hwhshs 32 minutes ago

      Vim improvement

      So Ed Visual Mode Improved Improved!

    • noosphr an hour ago

      4. All of the above.

      Which is Emacs.

      • shashurup an hour ago

        I know, I use Emacs+Evil. I'm going to give Ki a try and, in case of success, to think about writing Ki binding for Emacs.

      • ablob 34 minutes ago

        This is the first time I've heard about Emacs trying to look nice.

      • skydhash an hour ago

        Vim is Emacs applied to Vi

  • Myzel394 13 minutes ago

    I'll wait till an Emacs package is available

  • armchairhacker 2 hours ago

    Vim-like (terminal and VSCode extension) that prioritizes syntax-based navigation.

    Comparison to Vim and Helix: https://ki-editor.org/docs/comparison#user-content-fn-1

    • worksonmine 41 minutes ago

      That comparison table is strange and sometimes wrong. Neovim for example detects and updates external file changes by default. And the coherence of the keybindings in Ki is "Great" bit vim/helix:

      > As you can see, there's no single logical categorization for these keymaps, they are either lowercase-uppercase, normal-alt, left-right bracket, or outright unexplainable.

      Word, End, Back, Change Word and even Change Inner (, etc are very logical to me and I feel like I'm talking to the editor when editing. I get that it doesn't make sense when one has learned another way to do it, but it does make total sense you just have to make an effort to try and understand it.

      It's like learning and always driving automatic then calling manual "outright unexplainable". You simply learned another way and are conditioned into believing that's the one true way. It shows the creator comes from VSCode (multi-cursor is a useless feature, just use s/search/replace and get used to macros and a whole new world will open).

      • pbronez 24 minutes ago

        I had an experience like this when I switched to a Keyboardio split keyboard. It was impossible to use at first. Then I do some deliberate practice with a typing tutor app and now I love it so much I own multiple.

        Is there a good tutorial for some of these advanced text editing features?

        In particular I’d like to get platform independent shortcuts / key bindings. I use both windows and MacOS daily, and it throws off my muscle memory for shortcuts like “go to beginning of line”

  • hwhshs 31 minutes ago

    Why not a vim plugin