Spyke

Syndicated from the fediverse. Read and engage on the original instance.

View original on discuss.tchncs.de

why exit when you can do everything inside

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.

View original on discuss.tchncs.de
693

73 replies

lemmy.world

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.

59
VubDapplereply
lemmy.world

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.

15
elvithreply
feddit.de

Help, how do I exit vi?

Ctrl+Alt+F2
sudo killall vim

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

14

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)

1
marcosreply
lemmy.world

sudo killall vim

Just make sure you are using a GNU system.

2

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 -)

2

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.

4
magikmwreply
lemm.ee

And yet having a sane --help string is enough to get someone going. No need to gatekeep.

2

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.

6
lemmy.world

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.

5

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.

4

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

22

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

19
psudreply
lemmy.world

Why would you have closed Emacs? You can do everything in Emacs

5
discuss.tchncs.de

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

12
Taureply
sopuli.xyz

The challenge now is escaping the neovim terminal

6
Taureply
sopuli.xyz

But what do you do if you are not using a us keyboard?

1
feddit.de

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.

2

Vim can't automatically handle other key maps? I'm sure it worked as designed in my dvorak system

:w to write, not :, (Dvorak has comma where qwerty has w)

I get it if the keyboard doesn't use the letters we use, but that person could type in Lemmy with all the normal letters

2

On my keyboard the layout is mostly the same, it's not like AZERTY or something like that. The problem is some keys like \ are behind modifiers (In this case AltGr+\), so most times when I've tried the Ctrl+\ combination it hasn't worked (You can see how the keyboard layout is here

2
sopuli.xyz

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.

9
lemmesayreply
discuss.tchncs.de

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

2

I have not, and on a glance it looks really interesting, thank you! I will give it a spin and I really hope it is the editor of choice from now on.

1
lemmy.world

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

9
lemmy.world

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).

8

Emacs is a great os, just needs a good editor installed. Thank goodness for evil mode ;-)

5
dukkreply
programming.dev

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

4
PlexSheepreply
feddit.de

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

3
PlexSheepreply
feddit.de

Still weird to run it like that from a terminal, but you do you

1

I like to run vim inside windows as a launcher. I just use :!VSCode.exe to launch VS code from Vim. It’s nice this way because I can use VSCode Vim bindings and then enter terminal in VSCode to launch vim, which i use primarily in terminal.

0
lemmy.world

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!

7

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

9

Holy shit! Tabs?!

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

Tabs in a text editor. My mind is blown.

4
lemmy.world

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

6

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

3
lemmy.world

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.

6

Yeah baby! There's always someone who says that -- "huh, need to try that out sometime".

I really hope you do, it's always satisfying finding a tool that you enjoy more than the ones you've been using. 😊

1
pawb.social

i was wondering, could one customize vim to have kakoune keybindings? if so, has someone already done it

1

I'm thinking that would be more effort than simply installing the kakoune executable. If it's even possible, that is.

1
lemmy.ca

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.

5
Victorreply
lemmy.world

Getting into edit Insert mode

I'll admit, I took the rage bait.

6

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

5

So "vim can run it" by letting you open a terminal? Emacs has telnet built in, let alone Eliza

2
kbin.social

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.

1

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.

12
lemmesayreply
discuss.tchncs.de

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 :)

4

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.

4

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!

2

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)

2