• atocci@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      5 months ago

      What’s the difference between all of these? They’re all just command line based text editors, right?

      • vynaaa@lemmy.world
        link
        fedilink
        arrow-up
        17
        ·
        5 months ago

        Vi is a very old piece of software. Unless I’m mistaken, it doesn’t even have syntax highlighting. Vim is “vi improved” and supports all kinds of stuff, including extensions. Neovim is vim that uses Lua as an extension language, instead of vimscript. That allows for easier creation of powerful extensions.

        Nano is a simpler text editor that is not as “powerful” as the vim family. Emacs is a state of mind.

        In general, all of these are good tools and get the job done.

        • psud
          link
          fedilink
          arrow-up
          4
          ·
          5 months ago

          All of them aside from nano become marvellous after enough usage to know how to use them efficiently

          One of them has memes about knowing how to close it

      • Mikina@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        5 months ago

        One of the best explanations I’ve heard about difference between most text editors (nano, notepad, vscode…) and Vi (and it’s derivatives, like vim, neovim, helix, etc) is that Vi doesn’t have editing shortcuts, but editing grammar. So, you can do a lot more a lot faster, if you take the time to use it, and the more you use it, the faster you can get.

        While I’m sure there’s a better definition what exactly is meant by grammar here, a similar example would be like the difference in capabilities between plain text search, and regex. In Vi*, you have shortcuts for navigating almost everywhere you’d want - next word, start of next word, end of next work, next parameter, next matching bracket, etc, and also have a lot of commands for searching or selecting text. And you can combine all of that with numbers, i.e 5se would select everything up to the end of fifth word, I think.

        And you can also record and replay macros on the fly, on multiple lines at once. All done with relatively simple key combinations and commands, that may take a while to learn, but once you get proficient at them, you never have to take you hands of your keyboard, and you can do almost everything you ever need really fast, way faster that you’d be able to in regular IDE.

        On the other hand, Neovim (and vim-like IDEs) are something like Rust. Everyone likes talking about it, and most programmers admire it, but everyone has actually learning it on their ToDo list for tomorrow for the last few years. Me included.

    • thisisnotgoingwell@programming.dev
      link
      fedilink
      arrow-up
      5
      ·
      5 months ago

      vi is basically gonna be on every Linux based machine until the end of time. Nano usually needs to be installed, which in corpo environments, you may not have the ability to do that. I made my peace with vim for sysadmin stuff or simple changes like editing yaml files. Vi also has some pretty good features out of the box which are good to learn.

      • CubitOom@infosec.pub
        link
        fedilink
        English
        arrow-up
        2
        ·
        5 months ago

        I was about to resign myself to vi but then I learned that in Emacs you can use tramp to remotely edit files.

        So now I can use my configured preferences for emacs on any online server which includes the vi keybindings via evil-mode.

    • mkwt@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      5 months ago

      Vim is the main modern project under active development. vi is the original software from old UNIX. On most Linux nowadays, vi opens vim in vi emulation mode.

  • Mikina@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    5 months ago

    How do modern VIM based editors like Helix or Kakoune compare to neovim? Is it better to start with a modern alternative, or just go with neovim?