as I’m going through the process of learning vim, I’m discovering newfound powers. one of them being to execute commands from vim itself.

below examples might better explain some of them:

  1. want to see what files are in current directory? enter command mode(by typing :) and follow it by a bang(!). then do ls like you’d do in a terminal and press enter. this is not limited to just ls. you can enter any command that you can enter in terminal. for example: :! uname --operating-system (which will output GNU/Linux :))

  2. so you want to quickly save just a certain part of your file into another file? just select everything you need by entering visual mode(v) and do :w filename(actual command you’ll see would be '<,'>:w filename). verify it using 1.(i.e., :! cat filename.

  3. want to quickly paste another file into current one? do :r filename. it’ll paste its contents below your cursor.

  4. or maybe you want to paste results of a command? do :r !ls *.png.

vim is my ~ sweet ~ now. make it yours too.

  • CriticalMiss@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    9 months ago

    I love vim, but it wasn’t always like this. When I was a Linux newbie one of the things that irritated me most is that tutorials aimed at beginners told readers to use vim, without explaining how to maneuver it. People, if you write tutorials aimed at beginners please use nano, even if it’s not your preferred text editor.

    • VubDapple@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      9 months ago

      The first time I opened vim (it was probably just vi at the time) I couldn’t exit it and had to shut down the computer by holding down the power button (!) to regain control of the machine. It took a while before I tried it again. Ultimately nano felt like it was for kids and emacs felt like an even worse option than vi so I memorized a few sequences, eg :q!, :wq, how to enter the insert mode and how to exit it and simple edit commands like dd and x and this gave me enough proficiency to get by.

      Most all the terminal commands require prior study before they become easy to use. Its because Unix was created by engineers rather than by ui/ux design professionals.

      • lurch (he/him)@sh.itjust.works
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        9 months ago

        In Linux terminals, you probably could have pressed Alt+F2 or Ctrl+Alt+F2 (F2 could be other F-keys) and log in on a second terminal to recover (by reading the manual or killing it). Also, if bash already had job control back then Ctrl+Z would have suspended vi/vim to the background.

        I’m writing this, so people try it and maybe remember it, if they get stuck in some program. Doesn’t have to be vi. Maybe you just launched a long dd command and don’t want to end it, but want to look something up. These hints may help then.

        • elvith@feddit.de
          link
          fedilink
          arrow-up
          0
          ·
          9 months ago

          Help, how do I exit vi?

          Ctrl+Alt+F2
          sudo killall vim
          

          Hmmm… never thought about that, honestly, but it makes sense

            • elvith@feddit.de
              link
              fedilink
              arrow-up
              0
              ·
              9 months ago

              Yeah, but in case I’m on a server, I’m going to free all the other trapped users, too! (Although I’d probably just terminate the ssh session then)

          • noobdoomguy8658@feddit.de
            link
            fedilink
            English
            arrow-up
            0
            ·
            9 months ago

            The layout is what matters for vim and it’s derivatives. I might be wrong here, but if you really need to be able to use the same keybindings as you would on a English qwerty one, you could try remapping things to their addresses or whatever that’s called - basically the same key, physically, regardless of its layout mapping.

            That being said, it’s vim, you can remap the command to get back to normal mode from terminal mode to whatever key or key sequence you like most.

            Using mouse to scroll up and down your terminal window inside vim also gets you back to normal mode.

            And, well, quitting the shell of your terminal in vim works just fine - either via command or hitting Ctrl+d.