[HN Gopher] VimGraph
       ___________________________________________________________________
        
       VimGraph
        
       Author : gdelfino01
       Score  : 134 points
       Date   : 2025-11-03 13:40 UTC (9 hours ago)
        
 (HTM) web link (resources.wolframcloud.com)
 (TXT) w3m dump (resources.wolframcloud.com)
        
       | thornton wrote:
       | This is one of those times when I want someone to explain the
       | value to me. Like is this to help coding agents be more
       | efficient?
       | 
       | Forgive my ignorance!
        
         | utopiah wrote:
         | I guess it's to win at Vim Golf, i.e. how does one get more
         | efficient.
        
         | qsort wrote:
         | I believe that's mostly for fun. Coding agents wouldn't need to
         | interact via the same interfaces humans use, they'd be given a
         | tool to read and write files and they'd be fine with that.
        
           | fnfs2000 wrote:
           | They're literally using diff/patch under the covers, at least
           | the setup i'm currently using.
        
             | andai wrote:
             | Did you get them working with diff syntax? I couldn't
             | figure it out, so I just tried a bunch of agentic programs,
             | found a few that actually worked, and it turned out they
             | all use search/replace strings. There's probably other ways
             | to do it but it seems basically everyone settled on that.
             | 
             | I've been trying that with smaller models and had to make
             | some adjustments (e.g. they all really wanted to include
             | the filename twice). So I just make a small tweak and bam
             | suddenly I can edit code with small fast cheap models.
        
         | tantalor wrote:
         | The thought of forcing the AI to use vim gave me a nice
         | chuckle. Thank you sir.
        
           | d-lisp wrote:
           | I found chatGPT to be bad at VimGolfing.
           | 
           | ``` Here is a 35 keystrokes solution that beat your 36
           | keystrokes solution ! <89 keystrokes> ```
           | 
           | And then it keeps looping in the same way if you ask it about
           | the seahorse emoji (or sometimes just lie about the
           | keystrokes number).
           | 
           | In fact that's not surprising, what is rather surprising is
           | that some of the solutions actually work (>= 100 keystrokes)
        
             | bee_rider wrote:
             | They should probably train LLMs to be bad at vim golf. The
             | whole point of vim's funky language is that human
             | keypresses are very valuable and should not be wasted.
             | Saving keystrokes for an LLM is a non-goal at best.
        
       | samlinnfer wrote:
       | Having the t/T/f/T movements available would be too easy it
       | seems.
       | 
       | A shout out to quick-scope (https://github.com/unblevable/quick-
       | scope) possibly the best named vim plugin.
        
       | foofoo12 wrote:
       | I like Vim and I like graphs. But WTF?
        
       | jiehong wrote:
       | At first, I thought it was to produce graphs by _encoding the
       | positions of nodes_ as _vim movements_.
        
       | Jenk wrote:
       | I can see value in this. I use which-key already and could see a
       | graph, al be it a differently arranged graph, being a useful
       | visual aid. Perhaps a static (printed?) Cheat-sheet or even a
       | dynamically generated visual - though not sure how effective it
       | would be in a TUI :)
        
       | NoSalt wrote:
       | So ... what, exactly, is this useful for? I mean, it graphs the
       | keys you use in Vim in command mode, is that it?
        
       | uticus wrote:
       | Most of the comments here ask "what's the point?"
       | 
       | I'd like to submit this has no practicality from a Vim tutorial
       | perspective. However, from the perspective of anyone wanting to
       | learn about graph theory and who understands the concepts of
       | typing efficiency incorporated in Vim key movements, this could
       | be very interesting.
       | 
       | Kind of like many other things using Wolfram - a personal
       | notebook that _someone_ found interesting or useful, take it or
       | leave it.
        
       | mastermedo wrote:
       | Interesting. Thanks for sharing.
       | 
       | I'm curious about something a bit different. Given a vim buffer,
       | and picking two caret locations in it, I'd like a tool that shows
       | only the paths to getting there with my current Vim setup
       | (including all the plugins).
       | 
       | After 10 years of using vim, I rarely use L and H. For horizontal
       | moving it's almost always F or S (vim-sneak).
        
         | busfahrer wrote:
         | More often than L and H, I use { and }, which jumps across
         | paragraphs (i.e. blocks of lines separated by blank lines).
         | 
         | I've found that most of my code consists of 3-5 line blocks,
         | and { and } feel like a nice medium-range navigation tool,
         | because oftentimes CTRL+D jumps too far.
         | 
         | The downside is that both of these jumps go into the jump
         | table, so they will clutter your CTRL+O history a bit.
         | 
         | But I think I'm weird in this regard.
        
           | wonger_ wrote:
           | I rebound ctrl+j/k to scroll about a third or fourth of the
           | screen (~20 lines?) as an alternative to ctrl+d.
           | 
           | I've been using { and } more as well. Mostly to navigate
           | paragraphs of prose, but sometimes for code too.
        
             | mastermedo wrote:
             | Yeah, I did the same for shift+j.
             | 
             | When I experimented with scrolling, I found it hard not to
             | lose understanding where I just scrolled from. What helped
             | immensely was defining a top and bottom margin and using
             | vim-smoothie.
        
       | uticus wrote:
       | > Illustrates the relationship between the maximum keystroke
       | distance required to navigate between two letters in a text and
       | the number of randomly inserted newlines:
       | 
       | I'd love to see a comparison between Vim and Kakoune or Helix.
        
       | nomilk wrote:
       | This would be a bit easier to understand had the example used
       | text that was unrelated to vim itself.
       | 
       | (seems to occur quite often with tutorials/documentation where
       | the author has the topic they're showcasing top of mind, and
       | naturally, but unnecessarily, uses the topic itself in examples,
       | making it confusing for new readers to distinguish concept from
       | arbitrary example)
       | 
       | For anyone wondering what's going on, "How do I\nexit vim?" is
       | completely arbitrary text. This VimGraph function accepts this
       | (or any other) text as an input, and shows the keys you could
       | press to get from one place in the text to another using vim. The
       | example limits the keys to just three (k, l, and w) presumably to
       | not let things get too cluttered. (there's a curious 'crown'
       | shaped key, which I suspect is a rendering bug where a 'w' and
       | 'l' have been placed on top of one another).
        
       | sheerun wrote:
       | I guess it's a proof that you can describe rare vim movements as
       | a graph
        
       | ctenb wrote:
       | This post has many upvotes, but all the comments ask questions
       | about the usefulness of this, without any justifying response so
       | far. I have the same question, and I wonder what's going on with
       | this post?
        
       ___________________________________________________________________
       (page generated 2025-11-03 23:00 UTC)