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.

  • elvith@feddit.de
    link
    fedilink
    arrow-up
    14
    ·
    1 year 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
        1
        ·
        1 year 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)

      • thejodie@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Luckily it shouldn’t do anything but error out on Unix boxes, as vim is not a valid process signal and their version of killall expects a signal argument (or just -)