i cannot believe I was vscode-pilled for so long, holy shit. it takes like a week tops to get a basic understanding of the bindings, and from there it's just light speed.
they weren't lying, I am programming as fast as i am processing :isaac-pog:
bro please bro run my program bro it hogs 1gb of ram idling but it's pretty bro please
> CTRL-C
> -q
> /q
> q
> QUIT
> -e
> /e
> e
> EXIT
> CTRL-Z
Leave terminal to google the fucking thing
> :q
> :q!Every fucking time.
And that's why I'm a PM now.
And that’s why I’m a PM now.
It's been a good, peaceful, easy exiting while since I've touched it.
That said, I code on company time on company machines for a company that doesn't question my hardware requests. VSC makes my life much easier to just have everything there, easy docker integration, tabs stay put, multiple terminals into every which spot (with cmder which is just.... crack) all color coded, mother fucking rainbow csv (probably my most useful plugin), cloud tools plugins. Shit end of the day I can live off of VSC, and the other bullshit office apps I'm forced into (who the fuck made msProject a standard).
The take away is: I'm not paid to pump out lines, I'm paid to make spreadsheets and send emails. VS Code is my jam.
VSCode is better than it has any right to be. An open source project from Microsoft? Normally that means it's some sort of crap-performance legal-obligation project. But the people behind VSCode actually know what they're doing.
I think it flew under the radar internally, being linked to the dog shit that is Visual Studio, no one bothered to stop them. Which is the dream.
I use vim for anything small but working on bigger projects, the one thing that gets me is the tab/buffer/window relationship.
For example, lets take my normal ordering in vscode, basically two vertical panes, N tabs in each pane.
In vim, you have windows within the tab buffer, which means you cant have two vsplit windows with their associated tabs.
so you'd go like this, open file to edit, then :vsplit file two, then want a third file, in the first window, you do a :tabe file3, and the whole window is that third file.
All this to say, i use vim bindings in all my editors and vim is what I grab first before things get unwieldy.
I basically use vscode for a state persistent box that keeps my tabs and windows all there, and does the same for remote editing.
It seriously pains me to say all this, as I've been using vim for about a decade and since the hacky stuff I do is typically confined to a handful of files, it never slowed me down. Once I started acting like professional with some software architecture shit, I just resigned and use vscode.
Someone help me pls. I don't want to use tmux and rely on some weird config that will share yank/paste buffers, same deal with to terminals next to eachother. vscode's vim plugin lets me do all the yankin and pastin I want across any of their buffers. I need the side-by-side windows because I have the syntax memory of a goldfish on oxy.
EDIT:
GODDAMNIT. This is exactly what I didn't want to happen, I am now in the rabbit hole of dealing with LUA BASED CONFIG FILES to get a theme working.
Oh god nvim renders big files slow, why does it do that? Is it the damn nvim kickstart thing I'm using in an attempt to not re-learn lua? I'm just using this and adding this theme. The default auto-complete suggestions are so annoying, how does anyone program with an aggressive suggestion?
Oh and i'm doing that tmux shit too.
I fucking hate ricing. I set up 1 basic i3 config, 1 basic XMonad config, and I never want to touch this shit again. I lost like 2 hours at work due to this shit. I love vim but half my love for it is using the default config with like, 2 leader scripts set up.
EDIT 2:
STILL AT IT.
Why wont bufferline offset with nvimtree? I set the configs! Why did i go with a weird default config, endless leader mappings I don't need.
Edit 3: gave up on making it pretty, it was pretty comfy but tmux default key bindings are killing me and I need to find a better solution.
broke: vscode
woke: (neo)vim
bespoke: vim bindings in vscode (or even better a real IDE)
I type "text" into the start menu and use whatever the DE brings up first :gigachad:
Jumping all around VSCode's menus and editing multiple pieces of code with only VIM-appropriate shortcuts is the closest I've felt to the movie depictions of hacking.
I prefer Micro. Sane-21st-century keybindings by default, and dead simple to edit the bindings. Terminal-based so it works nicely over ssh. Scriptable with regular Lua. Open source. Runs on any system that Go can compile to, which is a lot. Fast. Can have multiple panes open. Themeable.
I prefer spacemacs, personally. Last time I looked at neovim, it just wasn't there yet for working with LaTeX. Maybe I'll switch someday, assuming neovim matures into a program worth using, but it's really hard to beat the versatility and robustness of emacs, you know?
Markdown erases single line breaks. You need to place two spaces at the end of each line if you want people to be able to copy and paste with no confusion.
```
or you can surround code with three backticks
```
and you get this a b c
Yeah, that's actually a better solution. It's easier and doesn't add extra whitespace.
/bin/vi
No, it's not a symlink to vim. (Linux users slap mouths in horror.) It's a binary.
I haven't used vim since college, and even then I barely strayed from the default setup and definitely didn't use all the concepts. There's some way to use multiple windows and manage multiple items in a copy/paste buffer, I guess?
How well does vim handle large code projects with symbols split across many files? Is there some binding that I can jump to the definition or implementation of a function in a different file? What about all uses of the function?
I only code at work anymore and they make us use Visual Studio (no plugins or outside software allowed). But I'm curious what are the benefits of vim in this context? I know it's great for quickly editing a single file.
There’s some way to use multiple windows and manage multiple items in a copy/paste buffer, I guess?
Vim docs: Editing with multiple windows and buffers
CTRL-W CTRL-V
or:vsplit
to split your window in half.How well does vim handle large code projects with symbols split across many files? Is there some binding that I can jump to the definition or implementation of a function in a different file? What about all uses of the function?
You can use external tools like ripgrep for this. I found someone's blog post where they integrated ripgrep and fzf into vim, but I usually just exit vim to use the command.
I only code at work anymore and they make us use Visual Studio (no plugins or outside software allowed). But I’m curious what are the benefits of vim in this context? I know it’s great for quickly editing a single file.
I feel like the greatest benefit of vim comes from the keyboard control scheme. It lets you move around in your code way faster than you can with a mouse.
It's actually really common to install a plugin that gives you vim keybinds in other editors, like VsVim, Vim Emulation layer for Visual Studio 2015 and above. This Vim plugin for VSCode has 5+ million installs lmao.
Vim can do horizontal and vertical splits and tabs. One thing to note is your splits are inside tabs. Splits dont have tabs like in intellij.
"+y
copies to system clipboard."+p
pastes from. the system clipboard. Thats a super useful one."
indicates you want to use a specific buffer to yank/paste and+
means the system clipboard. You could replace+
with some over number but I never do.All language integration IDE usage used to be done by custom plugins but now everyone uses language servers which is what vscode uses. So whatever tooling vscode has, neovim is almost guaranteed to have. You'll have to define your own bindings though.
Also vim plugins used to be written in vimscript which is a bad language. Neovim added support for lua, a good language. You could learn lua in less than a day if you know other languages. And lua is literally made to be side car'd into programs so it makes perfect sense.