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.

  • Hexarei@programming.dev
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    Honestly I felt the same way for a long time, until I decided to just learn the motions. Now I couldn’t go back.

    The combination of actions and motions makes it incredibly fast to edit code - Imagine you have a strong in double quotes that you want to change the double quotes to single quotes. There’s a plugin called vim-surround that combines with the basic motions and with my cursor before or within the strong, I can just type cs"' and it’s done.

    Want to copy everything within a pair of parentheses? yi) … So many things like that.

    Even for editing things like HTML, `cst delete surrounding tag. That will remove the tag around some content without changing the content.

    (Neo)vim is incredibly important to my workflow these days and it feels like I write and edit code at the speed of thought.