this post was submitted on 10 Dec 2023
688 points (95.5% liked)

linuxmemes

21636 readers
40 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, and wants to interject for a moment. You can stop now.
  •  

    Please report posts and comments that break these rules!


    Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't fork-bomb your computer.

    founded 2 years ago
    MODERATORS
     

    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.

    you are viewing a single comment's thread
    view the rest of the comments
    [–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (6 children)

    Or I can just NOT waste my life and my sanity trying to remember all that BS and just use a mouse and a GUI editor. I have no need to feel like a hackerman.

    [–] [email protected] 12 points 1 year ago

    Use what you prefer, that's a big part of what makes linux great. I get not wanting to go through the learning curve.

    That being said, vim is pretty amazing to use, and super efficient, especially with some nice nvim plugins and customization.

    [–] finestnothing 4 points 1 year ago

    On one hand, yes. On the other hand, you don't need all the keybinds, just remember the useful ones!

    Want to delete a single word? Esc to enter command mode, d i w to delete the word you're on, I to begin typing again.
    Everything between two of any char, usually parenthesis or quotes? Same process but d i {char} so something like "what are (you doing senpai)" can be made "what are ()" with just a few very quick keystrokes.
    Delete to end of line? D.
    Copy a whole line? yy (or Y for the rest of the line after cursor). Any time you do dd to delete a full line (or D for the rest of the line, or any other delete action) the contents are also copied so you can paste them again somewhere else.

    Can you do anything with vim that you can't do with a GUI + moise? Technically no - but with vim you can do things significantly faster. There is an initial learning curve to get used to basic keybinds and the 2 modes, but it's well worth it, and not using the mouse is intoxicatingly faster and more fun.

    I highly recommend doom emacs over vanilla vim- all the power of emacs, but with vim keybinds and a lot of other QOL features. There isn't much that isn't already built into vanilla emacs, much less doom emacs, and even less that can't be added with some packages that you can install from in the app. Web browser? Eww, and you even can use your vim keybinds in it. Doesn't render everything great graphics wise, but it's perfect for looking up documentation if you're lazy. Email? Built in baby. Git? Magit. Notes? Embrace the one true note format, org files and org-roam. File explorer? Dired right in baby. Terminal? Space + o + {t, T} for a terminal in its own buffer for all your terminal pleasures.

    I also always install neovim as a backup, it was my favorite vim client for a while. It's useful to be able to use it for basic editing if I'm already trolling around in a terminal such as quick edits to docker-compose files before rerunning them

    [–] [email protected] 4 points 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.

    [–] [email protected] 4 points 1 year ago (1 children)

    I agree that remembering all these commands is a hassle, and so do nvim devs. that's why they recommend not to learn the commands^1^. these will become your second habit if used enough number of times. just like Ctrl+c/v.

    1: from :Tutor in nvim:

    NOTE: As you go through this tutorial, do not try to memorize everything, your Neovim vocabulary will expand with usage. Consider returning to this tutorial periodically for a refresher.

    also, even if you don't want to use a terminal-based editor, I'd recommended you to give this talk from Bram Moolenaar(creator of vim) a watch. not the whole talk, just a few first minutes. you can even use YouTube chapters to skim through.

    have a nice day :)

    [–] [email protected] 2 points 1 year ago

    Here is an alternative Piped link(s):

    this talk from Bram Moolenaar

    Piped is a privacy-respecting open-source alternative frontend to YouTube.

    I'm open-source; check me out at GitHub.

    [–] psud 2 points 1 year ago

    The good thing about vim or Emacs is that when you know the shortcuts they are so much faster to use than mouse and menu editors (though Emacs has a menu, and supports mouse, which smooths the learning curve)

    [–] [email protected] 2 points 1 year ago

    Or you can get the best of both worlds and use VSCode with the Neovim plugin! All the benefits of a GUI, but with vim keybinds for the editing!