this post was submitted on 10 Dec 2023
640 points (95.6% liked)

linuxmemes

25535 readers
1277 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 users for any reason. This includes using blanket terms, like "every user of thing".
  • Don't get baited into back-and-forth insults. We are not animals.
  • 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.
  • 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, no politics, no trolling or ragebaiting.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, <loves/tolerates/hates> systemd, and wants to interject for a moment. You can stop now.
  • 5. 🇬🇧 Language/язык/Sprache
  • This is primarily an English-speaking community. 🇬🇧🇦🇺🇺🇸
  • Comments written in other languages are allowed.
  • The substance of a post should be comprehensible for people who only speak English.
  • Titles and post bodies written in other languages will be allowed, but only as long as the above rule is observed.
  • 6. (NEW!) Regarding public figuresWe all have our opinions, and certain public figures can be divisive. Keep in mind that this is a community for memes and light-hearted fun, not for airing grievances or leveling accusations.
  • Keep discussions polite and free of disparagement.
  • We are never in possession of all of the facts. Defamatory comments will not be tolerated.
  • Discussions that get too heated will be locked and offending comments removed.
  •  

    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 remove France.

    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 '&lt;,'>: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.

    top 50 comments
    sorted by: hot top controversial new old
    [–] CriticalMiss@lemmy.world 50 points 2 years ago* (last edited 2 years ago) (3 children)

    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 12 points 2 years ago (4 children)

    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.

    [–] Slotos@feddit.nl 3 points 2 years ago

    It’s because Unix was created by engineers rather than by ui/ux design professionals.

    This is somewhat disingenuous. Unix terminal is one of the most ergonomic tools out there. It is not “designed by engineers”, it is engineered for a purpose with user training in mind.

    Ergonomics is engineering. UI/UX design is engineering. UX designer that doesn’t apply engineering method is called an artist.

    load more comments (3 replies)
    [–] lemmesay@discuss.tchncs.de 6 points 2 years ago

    i agree with your request. vim used to scare me first.

    as a side note: one of the reasons I believe as to why vscode grew in popularity was due to it lowering the barrier to just open up the editor and use it right away(with plugin system and a nice GUI). it is something vim by default doesn't do.

    [–] rustydomino@lemmy.world 5 points 2 years ago (1 children)

    What’s wrong with nano? I love nano. As a general thing I love Linux programs that are terminal based but also have a decent UI. Neomutt comes to mind for email.

    [–] CriticalMiss@lemmy.world 3 points 2 years ago

    There’s nothing wrong with nano, it’s a simple text editor while vim is much more versatile and aimed towards that are already accustomed to terminal software.

    [–] cacheson@kbin.social 20 points 2 years ago

    I love these memes that turn into threads full of vim tips. You really can do anything within vim. You can even exit vim!: !killall vim

    [–] tdawg@lemmy.world 18 points 2 years ago

    It's like learning an instrument really. Just need to practice and eventually muscle memory will carry you

    [–] nutbutter@discuss.tchncs.de 15 points 2 years ago

    You can keep your vim. I am happy with my nano.

    [–] lemmesay@discuss.tchncs.de 11 points 2 years ago (2 children)

    bonus point: if you like inception, do :term, press i and start another (n)vim session :)

    [–] Tau@sopuli.xyz 5 points 2 years ago (1 children)

    The challenge now is escaping the neovim terminal

    [–] noobdoomguy8658@feddit.de 2 points 2 years ago (4 children)

    Ctrl+\ Ctrl+n gets you back to normal mode.

    load more comments (4 replies)
    [–] cypherpunks@lemmy.ml 3 points 2 years ago

    Via this video (thanks @yazgoo@lemmy.ml!) i recently learned a bunch of tricks about :term and am now tempted to start using it all the time.

    [–] khapyman@sopuli.xyz 9 points 2 years ago (1 children)

    I will not make vim my sweet as it is optimized for us keyboard. Most of the shortcuts are awful in my native (Finnish) layout. As much of a heretic I am, there is a place for mouse and windowing display managers.

    What I do miss from the Redmont dystopia is Notepad++. Can do anything, can be explained over the phone.

    [–] lemmesay@discuss.tchncs.de 2 points 2 years ago (1 children)

    have you tried geany? I find it pretty sweet. that's what I told my project manager to use.

    load more comments (1 replies)
    [–] qwertychomp@lemmy.world 8 points 2 years ago (1 children)

    Dangol modern Linux users, haven't even heard of Ed. Every text editor is bloat, ed is life!

    [–] rottingleaf@lemmy.zip 2 points 2 years ago

    I use ed sometimes when too anxious.

    [–] hakunawazo@lemmy.world 7 points 2 years ago (2 children)

    If you don't want to use the :! bang command, you could also temporarily exit vim with Ctrl + z and reopen it with fg (like foreground).

    [–] lemmesay@discuss.tchncs.de 4 points 2 years ago

    I love jobs(the bash one, not the apple guy)!

    load more comments (1 replies)
    [–] yesman@lemmy.world 6 points 2 years ago (2 children)

    This is the duality of Linux. Linux is an easy OS that's extremely customizable and everyone should use it. But also you may have to choke out your PC to exit the text editor.

    Did yall know that Notepad has tabs now? So does explorer!

    [–] EuroNutellaMan@lemmy.world 7 points 2 years ago

    Choke my computer to exit the text editor? I use nano. I only choke the computer when it asks seductively

    [–] voidMainVoid@lemmy.world 3 points 2 years ago

    Holy shit! Tabs?!

    That does it. I'm going back to Windows.

    Tabs in a text editor. My mind is blown.

    [–] dipshit@lemmy.world 6 points 2 years ago (2 children)
    [–] PlexSheep@feddit.de 3 points 2 years ago (3 children)

    Ignoring that vscode cannot math the two giants: exe? Really?

    load more comments (3 replies)
    [–] dukk@programming.dev 3 points 2 years ago (1 children)

    Blasphemy…don’t bring Microsoft’s shitty proprietary editor and shitty proprietary OS near my holy text editor.

    [–] dipshit@lemmy.world 4 points 2 years ago
    [–] Suavevillain@lemmy.world 6 points 2 years ago (1 children)

    I'm one of the people who use micro lol. I do want to give Vim a real shot.

    [–] nova_ad_vitum@lemmy.ca 2 points 2 years ago (1 children)
    [–] Suavevillain@lemmy.world 3 points 2 years ago

    I usually don't have to do too much text editing. I feel like I should know how to use vim anyway.

    [–] MystikIncarnate@lemmy.ca 5 points 2 years ago (1 children)

    I was forced to learn the vim basics. Mainly because I really started with dd-wrt, which I used on my Linksys WRT54GL.

    The image was too small to package anything fancy in it, like nano or something, but vi (or vim, I forget) was included. So when I needed to check something over ssh at the command prompt, vim was my only choice.

    My skills in vim have not expanded beyond the basics. Getting into edit mode, exciting edit mode, saving, quitting.... Mostly.

    I don't spend a lot of time editing files in the CLI, so I haven't needed any more than I already know. Now, when faced with a Linux cli, and needing to check/edit the contents of a file, my go to, is vim. It's pretty much on every system, and it works perfectly fine for what I need to do 99.99% of the time. I like vim, it's been there for me through thick and thin, and helped me out of some serious jams. I won't hate on nano (or any other cli file editor), they all have their pros and cons.

    Use what you like.

    [–] victorz@lemmy.world 6 points 2 years ago (1 children)

    Getting into ~~edit~~ Insert mode

    I'll admit, I took the rage bait.

    load more comments (1 replies)
    [–] Treczoks@lemmy.world 5 points 2 years ago

    And I don't even want to start vim.

    [–] victorz@lemmy.world 5 points 2 years ago* (last edited 2 years ago) (3 children)

    I'm personally a kakoune guy now. I used vim for over a decade, but kakoune just makes much more sense to me. And I thought vim made a lot of sense, too.

    [–] cacheson@kbin.social 2 points 2 years ago (1 children)

    Huh, I'm going to have to try that at some point. It's even got nim support.

    Link for the lazy

    load more comments (1 replies)
    load more comments (2 replies)
    [–] TimeSquirrel@kbin.social 3 points 2 years ago* (last edited 2 years 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.

    [–] midnight@kbin.social 9 points 2 years 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.

    [–] lemmesay@discuss.tchncs.de 3 points 2 years 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 :)

    load more comments (1 replies)
    [–] finestnothing@lemmy.world 3 points 2 years 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

    [–] Hexarei@programming.dev 3 points 2 years 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.

    [–] psud@lemmy.world 2 points 2 years 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)

    load more comments (1 replies)
    [–] callyral@pawb.social 3 points 2 years ago* (last edited 2 years ago) (1 children)

    Step-by-step guide to getting started with Vim

    1. Uninstall Vim

    2. Install Neovim

    3. Install Emacs

    4. Install Doom Emacs

    5. Enable vterm inside Doom Emacs

    6. Disable Evil mode

    7. Run Neovim inside Emacs using vterm

    8. ???

    9. Profit

    load more comments (1 replies)
    [–] AnUnusualRelic@lemmy.world 2 points 2 years ago (2 children)

    Meh. Can't even run Eliza.

    load more comments (2 replies)
    load more comments
    view more: next ›