everyone codes faster when they stop using their mouse
Вставка
- Опубліковано 1 жов 2024
- Developers are EXTREMELY lazy. I am no exception. Having a desktop environment that allows you to do the most coding while using the least amount of energy is key. In this video, we talk about how to setup i3, zsh and vim to make you a more efficient programmer. LETS GO!
🏫 COURSES 🏫
www.udemy.com/...
🔥🔥🔥 SOCIALS 🔥🔥🔥
Low Level Merch!: www.linktr.ee/...
Follow me on Twitter: / lowleveltweets
Follow me on Twitch: / lowlevellearning
Join me on Discord!: / discord
"the horrific purple that ubuntu comes with by default" you say while your room is illuminated that exact same shade of purple
If you want to be an efficient programmer, find your own way to do it, that fits your particular job. Don't listen to people that think their way is best for all.
This is true.
Well, if you have enough time to study nvim and practice with your keyboard, you should. Because it's a certain way to increase productivitt
@@bezorr nothing is certain. You don't know me, my work situation, my type of work. At best you know I'm a programmer. Claiming you have the answer to guaranteed productivity increase is utter bullshit.
It's your answer, for your situation, nothing more. There are a thousand people claiming their tool is the sure fire way to do it. The arrogance is unbelievable.
I'll give you an example, how is nvim going to help with solving complex algorithmic problems? Typing speed is meaningless in a lot of situations.
@@bezorrMan, why do you guys want so much to save 0.2255 nanoseconds of ur time?
Cope.
I promise you that there is *only* one thing bottlenecking my coding speed and it is my brain.
Yes, I agree; I can fathom how a keyboard can be a limiting factor. I can't think so fast that the keyboard or mouse is a limiting factor. I do not do boilerplate programming.
Tabs in Vim are not the same as tabs in other text editors. Tabs of other editors are buffers in Vim, and Tabs of Vim are more like workspaces where you can save your frequently used pane layouts.
I feel like this depends on the type of code you're dealing with. If you're writing new code frequently then I can see this becoming very efficient, but in my case I'm usually dealing with large codebases with years of history, and most of my time is spent reading and figuring out the code instead of writing and for me personally I like visually arranging information on screen with my mouse.
A lot of people are of the opinion that vim as an IDE is not as good as other text editors like sublime/vscode(atleast without the highly customized plugins available for the task). But vim def beats other editors when trying to navigate huge codebases. Personally I can't live without ctags
@@parthkanani7323
Really disagree, especially this whole ESC+ : or ESC + /
takes a lot longer than just using e.g. CTRL+S or CTRL+F.
Most of the example I've seen where it can be useful are for bad code bases, where code redundancy is at place. Like Multi-Cursor replace or more extreme search and replace patterns.
If you like this kind of workflow, then please go ahead, there are definitely some neat workflows in vim, but don't point at others for not preferring that workflow style.
You can still use your mouse in a tiling window manager
@@parthkanani7323Just the gd on vim Beats vscode by a mile.
Being able to Go deep inside that API or library you installed and seeing the entire implementation without needing to look through the docs is a life savior.
@@parthkanani7323 Yeah ctags is the software that makes it easy not vim, so it is quite literally identical to Vscode, requiring plugins. The difference being, of course, that Vscode extensions are standardized.
Sorry vim users, but the bottleneck to any engineer is not gonna be boiled down to whether you use a mouse or not.
All this is at the end of the day is a notion of supremacy you have. Using a mouse is quite fine. The bottleneck for any engineer has a lot more to do with compile times, debugging, an environment that enables rapid iteration, and planning your code. None of that is dependent on you having or not having a mouse. The fact that you can open a file one second faster than me is nothing compared to the minutes it may take for a build to run, or the hours it may take to debug a problem.
The fact that you feel like you need to do things quicker is not the engineer brain talking, it's the ADHD. I know this because you know full well it's never worth the time to optimize your code until you need to. So why are you so adamant about optimizing something as trivial as opening files?
The only time vim actually might be faster is when the only thing you're mainly doing is menial labor - copy pasting, replace, etc. But if that makes up 90% of your work, sorry, but you're not an engineer.
Excellent comment, I think a lot of people miss the point, typing the code is only a small part of the workflow, planning the code, compiling, deploying, debugging, all of that takes way more time.
The amount of coping in this single comment is insane
Most coders spend much more time reading code compared to writing.
When you actually learn and use the vim commands and shortcuts, you can navigate faster and find what you are looking for faster.
Just wait until this man finds out about Alt+Tab
Alt+tab sucks the moment you aren't just switching back and forth beetwen two apps
Not the point buddy
@@no_name4796nah u can use arrow keys while holding alt
Ok you are the only person know about it. What a genius
wait until you find out you can change workspaces and know exactly where you switch to
Didn't think Alt-Tab is a tiling window manager!
Edit: IMO switching to tiling WM is a bit so-so decision, its not for everyone, learn Windows explorer/GNOME/KDE hotkeys, it has a lot of useful features.
But vim is a good choice,I use it a lot as gVim on Windows or vim on Linux
Gvim is really good i also love it
"developers are lazy" i don't think you can be considered lazy if you've spent several hours installing and configuring neovim plugins, REALLY lazy programmers just install visual studio and press F5 instead of making makefile files, typing LOTS of arguments for compiler, etc. i don't think you're LAZY when you just make your future life quicker and simplier
Ha, it takes me back to my Starcraft 2 days where I try to out-compete my opponents in APM and multi-tasking, you kinda have to move the mouse the least amount as you can to be fast. But as time passed by, I've learned that having a fast mind is more important than having fast hands, and I fully believe it applies here as well. After some point, when programming the mind becomes the major bottleneck and all those little optimizations are not that important, especially when you're not competing against someone directly. I'm fully content with VSCode for all my coding needs.
Visual Studio Code by Microsoft on Windows 10 LTSC by Microsoft.
LTSC?
WSL enabled 🔥
@@zweitekonto9654 Long Term Servicing Branch
LTSC is the best for gaming
VB Script, C#, TypeScript
Literally all of your videos are useful, something that's really rare
Glad you think so!
I've smoked VIM before, it's a nasty habit. Very slow to use compared to Visual Studio, even when you're a keyboard ninja, you can't debug real-time systems in VIM, you need a full-blow GUI IDE. VIM is for newbs.
Finally someone sane. I wouldn't say vim is for newbs but it's certainly lacking in tooling. It's really for people that know a single language very well and do nothing else.
for people who aren't as knowledgeable on linux and FOSS, there are other window managers you can try if i3 isn't for you.
I personally use AwesomeWM, it's nice, basic and had keybinds that I can remember well.
also, compton is deprecated, picom is a suitable replacement
Awesome wm isnt using lua ? Isnt more complicated?
@@watynecc3309 idk, I don't find it that hard to use
awesomewm is great - easy and very customizable
I was using awesome wm few weeks before,
I recently try Hyprland to check how good is window managers in wayland i liked it soo far so am using it now
@@vaishakhgk2006 damn, I have an NVIDIA card so I'm basically stuck with X for the time being
The amount of videos on youtube by people talking about how fast they are with just a keyboard and how much better it is leads me to believe that the whole endeavor is fueled by people thinking they are cool or advanced if they do it that way. Then, of course, they want to share it, because what value is being cool if no one else see me being cool?
I don't really understand which side you are on, but honestly I can't believe somebody is against this
Even as a cinnamon user I honestly kind of want to switch to i3, and I started to learn vim recently. I might not switch to both vim or i3, but the important thing is, i tried.
Fwiw I have no channel or public persona to buff, and I've found myself moving more and more to a keyboard centric workflow and have felt like my interaction with what I'm trying to achieve has become lower friction at each step. I would say though not to change too much all at once, as there is a mental load when trying to recall a freshly learned shortcut etc. if you try and change everything at once it feels awful. If you gradually do it, it feels great in my experience. YMMV of course
If typing is the bottleneck in your software development process, chances are you are writing garbage code. This advice would be helpful for YandareDev writing his 1500 consecutive `if` statements but is less useful for an actual developer
This comment is perfect! Typing speed is very rarely the bottleneck, first thinking how to code efficiently and then debugging take a way bigger portion of the time.
Yes if your project is some randos soyscript website then probably not. Programmers literally get RSI from typing. Speed is not about lines written per day. It's about using less mental bandwidth for the coding itself and using more to think about the problem itself, quickly react to thoughts that come up in your head, and quickly test small tweaks on after the other.
ngl great advice... i am thinking of going Full time linux now
we found the js soydev
Look, I followed this channel since... forever. This video is very disappointing because you reveal yourself like a hipster-programmer for which the speed of typing and doing "stuff" equals a better programmer. If your limitations as a programmer are the time it takes to move a mouse and switch between windows, then this is concerning. Ask anyone who's doing it for real: looking on the walls, scratching your head and writing 3 lines of "code" per day are sometimes the norm and always more productive than tuning the dark theme of the code editor, preaching good ol' vim for how amazing (and modern)it is and selecting the right wallpaper. Good luck!
I agree it's more about the quality of the code then the quantity. But with limited time speed can be useful. However vi is very limiting. No debugging, no testing no nothing. It's the most basic of editors.
But he is doing it for real, he just does different type of work. Most likely he is commanded to do jobs and everything is pre planned. No creativity and thought involved. Many program jobs are like that.
Where exactly did you get that from? Calling someone a hipster programmer just for that is really, really childish
typing faster and "lazier" means trying new things have a lower "cost".
it also means that when i have a thought it doesnt have to wait as long for my typing to catch up
@@emmaeilefsen7214 lol because the time it takes to click the "menu", Open your text editor, and start working on your idea is so very long.
I have to agree with OP here. And I say that as someone who has spent literally days worth of time getting my environment setup to be as efficient as possible. I've got the key bindings on my WM, I use a highly customized neovim and zsh setup (that's portable), etc. And I love it. But it's wholey unnecessary to be a productive and "good" developer. I did it because I find that space interesting. But I'm just as effective using Windows and vscode.
Super hard disagree. You're not really taxing your muscles when you code, but any repetitive task will impact your joints and connective tissue. The less you have to move your arms and hands, the better. If you try to just muscle through it because you don't want to seem like a hipster, that's how you get things like carpal tunnel.
The best thing about i3 is how easy it is to configure. I wouldn't say it's extremely extensible because it's limited to the i3 config format. To be fair, it's more than enough for most ppl but the way windows are managed in i3 "manually" rather than having a layout and a stack is more mental overhead and afaik you can't do anything about that on i3. Xmonad and dwm on the other hand are extremely extensible and there are so many patches and modules that you can choose form. Configuration is much harder though bc you need to know (at least a little bit) Haskell for Xmonad and C for dwm but you're basically only limited by your coding ability and imagination (or the patches/modules others have made).
Standard vim is great but a little bare for programming for me. I like neovim and I try to keep it as standard as I can but I want a fuzzy finder and and LSP at the very least. I keep all my dotfiles on github so I can get to them on any new machine easily but I guess that doesn't help if you need to use vim plugins for something like vscode. Helix seems pretty nice too, basically it's similar to a fully configured neovim programming environment except it doesn't have vim's commands (its similar but not the same) which is a problem if you want like a standardized experience everywhere.
I love vs code because of fast and easy debugging, it's also faster in editing and moving between files particularly in big projects.
You can easily turn vim or emacs into a modern IDE. That's what makes them beautiful - being able to customize them the way you want. you can even put a web browser in emacs.
@@megamozgs9959 I dont get the usefulness of doing stuff like browsing the web or viewing an rss feed on emacs why don't I just use firefox with a tiling window manager
@@waterbird2686 its just an example but yeah, nobody really uses this package :) its just shows you how powerful emacs is
Vscode and fast lol. Man, you make me laugh. 😂
I love VS Code because I can mouse click my way through the work day while pretending that really get things done
I use vim for small files, config stuff. But for coding I use neovide with extensions. Having an LSP and some other fancy features really makes the experience a lot better.
Doesn't Vim have an LSP extension, though?
Why not use neovim instead of vim then? As neovide is a neovim GUI.
@@raphaeld9270 Dunno. Brainrot from over a year ago. I switched to using nvim for small files a long time ago
My opinion on this topic is somewhat different. While I agree that using the mouse a lot slows you down, my conclusions are somewhat different from yours.
First of all, my job does not allow me the choice of Linux. Our tool chains (embedded development) are set in stone, and we only got them for Windows. And while I of course spin up a VM, write the code in there, I would still have to switch back to Windows to compile and debug, which negates any efficiency gain that a different window manager would bring.
I also totally dislike coding in vim. I like to avoid abbreviations in any names i choose for variables and functions, so autocomplete saves a lot of time. Even more so since I added AI based autocomplete in the form of tabnine to my VS Code. It is amazing how often I only type the first three characters and BANG there is the line exactly as I wanted to type it. No matter how fast you are at typing, this is way faster.
And like someone else mentioned down in another comment, most time is wasted waiting for things to compile anyway. (Some of our projects take 20+ minutes for a build and another 3 minutes to load onto the target hardware. And of course it won't fail on the first c file it compiles - nope, everything will compile and then you get a linker error. )
And while Windows is notoriously known for mouse use, there is a lot that you can do beyond your normal text editing on the keyboard, like switching between windows, documents in the windows, or even different virtual desktops without needing to lift your hands off the keyboard. I mostly just use the mouse when navigating websites or datasheets to gather information, but not while I am actually writing code.
Ctrl+x Tab to autocomplete a word in vim
8:40 "vim is basically anywhere" -- this is such a weak sauce argument and I hate it.
*nix installations are equally likely to have vim and nano. You shouldn't be doing serious editing on the server. If for some reason you need to, I pray you have the ability to install stuff anyway. If you need to do serious editing on a machine where you can't install stuff -- find a door, quickly.
My dev setup has become VS Code with Vim-extension, but I'm interested in trying Neovim. The only thing holding me back is the upfront cost to set things up, and debug functionality.
I have no idea how good (or bad) debugging things in Neovim is, and working with embedded stuff very much requires good debug tools, so I'm somewhat hesitant to fully commit to it.
Honestly, if you wanna give it a try then go for it, but if you are proficient with what you have now then I'd say don't fix what's not broken.
Actually, there is a plugin in Nvim called dap that uses the same debug protocol from vscode
i would recommend you not switch if you don't have any problems, vscode plugins are great and neovim is always going to be hard to customize and especially debug, i tried doom emacs a while ago but that wasn't right for me either, only thing i like about neovim over vscode now is how fast it is, to edit a basic text or config file and change some stuff instead of opening vscode
@@JThompson_VI It's still way too much to get used to, nvim-basic-ide by the lunar team is a much better starting point imo
I committed to it for a couple months and fell off of it. Back to vscode, no vim extension, lots of mousing. I read a craptonne of code so keyboard-only UIs are actively counterproductive
"How to write the most amount of code while doing the least amount of work"
Python?!
You can avoid the need for multiple terminal windows with the following in Vim. :map ,t :w\|:!cargo build When outside editing mode, I just type comma-T and it both saves the current file and runs whichever command I specify, without losing the editing history or having to suspend vim.
You can also use Lua to run custom functions everytime you save on vim. You can enable that as a setting even, so It only Works in projects you want this kind of auto-reload per save.
But using Tmux also helps with that a Lot
i3 wierdo here of course, however my weapon of choice for text editing is Geany.
and i don't get this all zsh-hype, bash does its job just fine while i guess.
running on vscode pretty much stock both on the win10 i use at work and the macbook pro i have at home, i've gotten crazy fast with it and love the versatility and extensibility. i'm on the same page as you regarding custom shortcuts and such, i love the fact that i can code just as fast on my machines as on any other i sit down at that has vscode installed
also yeah i do know vscode has settings sync and that's one more reason to appreciate it, but i haven't found myself needing to customize it that much yet
@@crifox16 yeah, i used to use vscode aswell, the only reason i dont now is because i use the intellij IDEs and neovim (but with lazyvim because i am not spending months setting it up), if you complain about someone using vscode, and take the time to complain to them instead of coding, technically isnt that less efficient
Step one: Get another keyboard.
Step two: Setup macros for that keyboard.
Step three: Don't use vim.
Step four: Install notepadqq
Step five: Become god.
I personally use a tiling window manager (typically i3, but I have a soft spot for xmonad), alacritty for my terminal, tmux, and neovim as my main editor. Neovim within one tmux pane and a regular terminal next to it is just nicer than having two separate terminal windows open imo.
I use ratpoison on smaller screens; It's _similar_ to screen; everything is fullscreen, use modifiers to switch windows. As for editors, it depends, I have a hatred for vim as it's not vi. I learned vi on old solaris machines back in the day; "vi" mode in vim is nothing like it; I usually have to spend half a day unfscking vim to make it work properly. :-( For small things, vi/vim is fine, but, for larger projects sublime is king (for me). About to try i3, thanks for that one! :-D
My current config is tmux+Neovim, using Lunarvim to have a VSCode-like experience, as I switched recently (the included plugins are awesome). The fact that everything is on one terminal in full screen helps me focus more (and not think about tiling windows, commands outputs are on full-screen,...). Everything can be accessed on the same screen and the switching is super fast and whenever I need to read documentation I use my second screen.
Is this still your setup? Any chance you can point me to a vid that covers this?
never been so early
I just reminded me why I switched to mac. Thousands of hour of configuring things to be just 5% faster every day is not good investment of my time.
Understandable. I only configured 1 day my gnu/linux as I wanted (was my first time using linux) and for me it's much faster with all the keybinds and I had fun configuring :D . In hours I would say 6/7 hours . I'm interested hoe long did it take for you that u say it? I want a Mac too for adobe stuff and fl studio
But noone asks "why should I code faster?". I think it's a thing that corporations want you to do - increase you productivity! How many lines of code could you write in a minute? In the hour? Would you like to write +25% more lines of code and be 25% more efficient?
Will that make your happier tho? ;-)
i use emacs for my environment. tried vim before but, elisp hits the spot for writing custom functions and plugins. Only down side is i almost do everything in emacs, and sometime always trying to improving my config file / workflow but i make me pretty productive since a manly use my keyboard but the mouse is there if i need it. 🛩
Years ago I used "Gnus" and then "vm" as my email client. But it finally got to the point that most email was HTML, which was a boor but unstoppable so I switched to something else. But for a while emacs was almost my whole desktop.
@@KenJackson_US I just use emacs for org node and programming. But some people use it as an all in one tool
It might sound kinda weird but I've setup my laptop with GNOME as a hybrid between tiling WMs and DE. Sometimes I want to keep my hands on the keyboard, sometimes I don't, so I've settled on setting up some of my old i3 bindings to GNOME's keyboard shortcuts. I know people dislike GNOME already, much less a chimera of a tiling WM.
It's definitely not perfect, like I can't tile windows to the corners, just on two sides. That said there are extension that can fix it.
I recommend looking at the Pop_OS! gnome shell. It’s focused around allowing you to use gnome with tiling and allowing you to use keyboard navigation for almost everything. Plus, you don’t need Pop_OS! and can just install the shell on your distro, or you can just take inspiration from a few things you like about it and apply to your own config
Laptops are just removing home,del,pageup and page dwn keys.They are acclerators while writing code...and those are being removed.Keyboard design for laptop this year is useless
For any beginner watching this video...
Coding is not mostly about typing. It's mostly about solving problems. Actually, programmers spend most of their time coming up with the right algorithm and architecture of their program before writing even a single line of code. If you spend over 50% of your time typing instead of thinking your program through, I suggest you learn more about algorithm and data structures and system architecture. That's how you will save significant amount of time.
NOOO! The mouse in the Thumbnail is exactly the one I have! 😫😭😭😭😢
I've had a love-hate relationship with vi(m) my entire carreer. At first it was just lack of experience, but later on it was just plain dislike of some of its features. Nowadays I think it is extremely useful for some things, like easy string search-and-replace, but completely useless (for me at least) as a daily driver. For coding and scripting I use joe. Call me heretic or an infidel, but I'll stick to my guns (and preferences).
That said, I really enjoyed your video, so don't take this personally. In fact, I am intrigued by I3. I didnt't think tiling window managers were still a thing. They sound so old-fashioned ;-)! Doing more with the keyboard and less with the mouse would definitely be a blessing.
I need to learn Vim. I know nano/pico like the back of my hand (probably better), but Vim does seem a bit more powerful. Need to have a play with it.
Although all the cool kids these days are on VSCode.
"A mouse is a device to point to what xterm you are going to type in next". Old joke.
I work in many languages, many os, many editors. Whatever the job requires. You think I really want to learn keyboard commands for all of them?
Mouse might be slower, but it's convenient. This advise only makes sense if you are a single task coder.
Also 100% keyboard is a great way to get carpal tunnel. Don't be fast, be healthy. Get your hands of the keyboard. Fast is useless if it also breaks you fast.
Switched to i3 some weeks before the NY. Now I riced it and don't want to go back to gnome.
Vim is awesome, however debugging embedded systems in it is kind of a mess as well as everything that has to do with intellisense/autocompletion.
Maybe you can make a video on how to properly configure it for that task.
Otherwise I just accept having to touch the mouse when working with vscode.
You found how to do intellisense/autocompletion with your setup ?
@@kirianguiller5130 for regular vim you can use coc as a lsp client. Neovim has a built in lsp client, which you can use to interact with any language servers you want.
I mean programming ist mostly not a speed challenge. Quality code is that what matters!
I personally do not feel tiling window managers offer any benefits these days. Tmux will split a terminal for you and some terminals have this built in e.g. Konsole. Most linux DEs also have workspaces/virtual desktops that can be navigated between using key bindings. One window/app per desktop, split terminals and all the benefits of a full DE as well. With a tiling WM you will spend a lot of time configuring it to achieve something that is mostly achievable in a full DE (certainly KDE can do all of this).
your i3wm setup has screen tearing issues. 5:44
I feel like a lot of this could be fixed by simply adopting ALT-TAB
Him: recommends i3
Me: hmm not what I would choose but okay
Him: recommends oh my zsh
Me: does this guy know what he's talking about
I recommend to use dwm instead of i3wm, i3wm is fine but dwm has one killer feature which i3wm misses: the tag as they call it. Basically they use an xor-operation which makes it possible for the user to show any combination of workspaces and open a program (the same instance) on more than one workspace. This gives an even more flexible workflow. Example, you want to use a browser, PDF-reader and some tool to type texts but most of the time you only look at two of those, for example either the typing tool and the browser or the typing tool and the PDF-reader. Open the typing tool on two workspaces and the PDF-reader and browser on another workspace and you can easily switch all the time with which programs are visible. You could compare it a bit to the swallow-feature of i3wm but it is more flexible.
that feature sounds like it kinda sucks, not worth switching over
mouse-less work-flow is the best! I use keyboard short cuts to move apps to different workspaces and switch between them in gnome. Emacs is my text editor of choice though like that vi/vim is installed by default on almost all systems. Just don't want to re-train my muscle memory! :P
Here's some free engagement.
9:42 Seeing hexadecimal numbers in lowercase is triggering. Seeing it used inconsistently is maddening.
No tmux?i create a new tmux window for each project and with tmux resurrect the multiple terminals that i created gets persistent between reboots
Oh my zsh is pretty good but OH MY GOD IS IT SLOW TO START UP! I personally make my zshrc myself and manually install extensions. Besides this, my setup consists of a bspwm with some pretty weird keybind choises. For my editor, I use nvim.
The primary benefit imo of using keyboard based navigation is that you dont have to switch back and forth between the mouse and the keyboard. However as I use small laptops the mousepad if often easier to use, all depending on what operation you are doing of course. And yes I have used vim bindings.What is being said "with the least amount of energy", least amount of energy when you're good, lot of energy when you are bad. And it can take a very long time for the keybindings to become so automatic that you dont have to even think about using them. So it is a long term investment where you hopefully get good at it. Btw Vim keybindings are available in many, if not most editors which is nice :)
I think it's not just lazyness, it's the micro-distractions. Like looking for the mouse cursor, that can be on another screen, then moving it to click somewhere... when you could have just flickered fingers and boom!
For me, I'm just really inaccurate with a mouse. I've closed so many tabs while trying to open them with a mouse that I finally decided to learn another way to do it. Then I went down the emacs rabbit role and I don't know where the exit is.
Actually on wayland with hyprland rn, it's looking awesome 🔥
Great video, however for productivity and speed I would add:
- Tmux
- NeoVim with:
- Telescope: fuzzy finder for neovim
- NerdTrees
- LSPsaga: for quick function documentation checks
- Zahtura or sioyek for minimal pdf viewing with vim commands
- QuteBrowser for minimalistic browser with vim commands
Is QuteBrowser stable? Does it handle all sites, including your bank account?
@@KenJackson_US I am using it for 1 year now as my only browser and I haven't experienced any unstable behaviour. It does lack some functions like autocomplete of passwords and such. But if you know a little python you can make it do whatever you want. I would consider it stable.
I was today years old when I learned that vim had a default tabs, that's awesome and likely a game changer for me in the future as tabs are one of the favorite features I like in a text editor
my ecosystem
DWM
TMUX + VIM
I didn't know coding was a race
I find not using intellisense to be rather inefficient
Pretty sane selection of tools.
One warning for newbies about vim: it is _the_ most productive programmer's editor bar none (it was written in the days of 2400 baud serial lines, and that's why it has 6 or 7 ways to, say, change one word like a variable name; each of them is more efficient (by a keystroke, perhaps two) in different situations), but only if you learn _all of it._ Just dabbling in it is _not_ the way to go - you can dabble in mouse-oriented ones without being bitten, but not in vim.
You can totally dabble in vi/vim. Just save often, because you'll be going "esc esc esc :q!" whenever you hit the wrong key and get lost as all hell. :)
But it has a HUGE plus.... I've never had a system that didn't have vi available. No, it didn't have the full feature set of vim, but good ol daddy vi is ALWAYS there for you, but the basic cursor pathing is what we're after anyways and it's there.
@@meeponinthbit3466 Yes, I hardly ever use any vim-specific features, except for syntax highlighting. Even bracket matching is a basic vi feature.
What about people that are extremely fast and precise with the mouse like e-sportler? I feel like the skill I learned with the mouse over the years, together with the mutiple cursors feature on most editors is faster then most normal vim users sorry to say
My setup is almost the same except I use emacs instead of vim 😁
my setup is the same except i use sway instead of i3
I actually use stripped down Xfce4 desktop with i3 in place of default window manager and quite customized Neovim, but it's mainly because I just need an IDE-like editor for my work. Honestly my setup is pretty complicated and maybe it could use some simplification here and there.
Great stuff, I like the idea of a tiling window manager. One funny thing about efficency though. It allows you also to do the wrong things faster.
Doing the wrong things faster lets you figure out it was wrong faster too though, no?
Been using a mouse while coding for over 30 years, currently dealing with a project that has nearly 1000 files. No fvckin' way am I giving up my mouse just to look "cool."
I use emacs. It's been around so long that by default, Ctrl+n and Ctrl+p are mapped to the next and previous line functions (since some old terminals didn't have cursor keys). Forget about not wanting to use the mouse! I knew someone who was such a good typist that he didn't want his hands to leave the main keyboard; he used C+n and C+p instead of the cursor keys!
The mouse is not the problem. Click to focus is the problem. Linux supports "focus follows mouse". It makes a huge difference in coding speed.
Keyboard-only coding is ok for small projects, but I work on large codebases (~1M lines of code), so I have about a 100 source files open in my editor at a time. It would be impossible to efficiently switch and look at multiple code windows just using the keyboard.
Hi ! I mainly code in Go. Can someone share a tip on how to switch from VSCode to Vim? I need, for example, the capability to quickly look up function parameters or instantly determine the type of a variable, which is easy to do in VSCode, but I have no idea how to achieve that in Vim. Additionally, I need to automatically format sources before saving them and to auto-complete methods after typing a dot following the type name. At the moment, I'm not very fast, and I haven't made any enhancements yet. So, any opinions are very welcome. Cheers!
The only real reason why people still use vim is cargocult from 80-90s. They believing that moving hand to mouse is too slow, but actually it is milliseconds. Instead they 5 seconds trying to switch tons of modes in vim, psessing 100 times some buttons just to get to particular letter in text, when with mouse you just need to move your hand directly to it.
Have you seen any CS pro player, that use keyboard to aim?
Still going to use the mouse. Dont care would rather using the mouse for 2 seconds to click something, over trying to remember 50 different combos. I feel like its only the hobbyist that are actually like "dOnT uSe ThE mOuSe"
Its not like the mouse was invented to get rid of the constant key presses and combos or anything.
Nice chunky font size, speaking as someone on a phone with bad eyesight.... can I just say "thanks a lot".
Funnily enough MY laziness is in learning all those keyboard shortcuts. I often find it so much easier to just use the mouse than remember weird key combinations. And yes, I do use common shortcuts like ^S to save and ^Z to undo. But honestly, Alt-F4 to quit the current window? It's unnatural to do with just the left hand, so the right hand has to move all the way from the right side of the keyboard to the left, by which time it's as fast to hit that X button with the mouse.
When you're managing hundreds of files, using tabs in Vim can make things even more cumbersome. These days, I'm more of a VSCode user, and it works well for me. With plenty of shortcut keys and my triple monitor setup, I can keep datasheets and other references open without constantly switching back and forth. However, the frequent switching between keyboard and mouse can be tedious. Maybe it's time to invent new hardware that better aligns with the needs of coders. I haven't given this much thought yet, but there's definitely a huge market for something that could streamline mouse operations in a faster, more efficient way.
Really don't think it's the mouse that's holding me back, but my brains
Usually it's quite irrelevant. Most of the time the best performance just means not doing dumb stuff.
Think properly about what problem you are actually supposed to solve and then concentrate on doing it properly. Most time is wasted on doing stuff twice, not on slow typing.
Just buy a Copilot X subscription, as a full stack web dev, I don't really use vim for more than simple editing, or in SSH for DevOps setup. But this i3 thing is actually interesting, thanks for the video.
you need use both, macro keyboard and macro mouse, my custom mx master 3 is setup for vscode and very productive
It's difficult for me to imagine that someone would prefer to deal with something so obtuse as i3. Just remember a million shortcuts and you'll be good to go? Any future microsavings are severely overshadowed by the training and configuration time, IMO.
Bash, vim, tmux, and i3.
Idk man I've never been fast at typing, but I'm surprisingly fast and accurate with the mouse, probably the video games...
Use what works 🤷
I love vim. It’s so fun. I even use the vim plugin for vscode. I need to brush up again. I had a whole great setup with file explorer, etc., when I was self learning.
So yeah, mostly currently use vscode with the vim plugin.
Keyboard shortcuts sums up this entire video. Short cuts using different applications and the shell.
I guess I've always been a bit sceptical of this stuff, like, the thing that takes me time while programming isn't moving the mouse around or switching windows, it's sitting thinking about what the right code to write is. I think we spend too much effort optimising how few keystrokes we can use to write code when really I worry that if people are spending enough time actually writing code that this stuff adds up to real money then maybe what they really need to do is slow down?
Everything oh my zsh does can be manually done to keep the shell much faster. Oh my zsh adds significant startup overhead, and makes searching for solutions to shell issues much more difficult.
Themes and other extensions are just shell scripts, copying them and manually adding them keeps the shell more responsive and gives you a much better understanding of how zsh and shell customization works.
I would add to other comments here that just you should just try what other people suggest you to learn (vim usage, blind typing, other shit) and see if it is worth it and makes you any difference.
hi thanks for the video - IMHO one comment - would be good to have a follow up video on how to use keyboard only for coding - how to navigate thru code editor, copy move code etc. thanks very much for super content.
Am i the only one thinking it does not matter if you use your mouse or keyboard? Most of my time i spend on meetings or figuring things out, solving problems. The actual coding part is idk 10% maybe
For now i SSH to my programming server and i use Tmux with NeoVim
This is dumb. Do what you know and are good at and can produce quality over quantity. Everyone establishes their own workflow that works for them.
checked what is my bottleneck during coding - revealed it was my head - sometimes Im just thinking instead of typing or moving mouse around. Is there any alternative to head?
Great. Except for when you can't remember all the f***ing shortcuts.
I prefer the mouse, I really do not care if I'm 0.000% slower...
I3 is cool, but I personally like hyprland more, feels more modern, and is easier to configure
Yes yes.. let's waste time figuring out the key commands and. Inputting the wrong commands, going back to them. And then switch back to mouse..
I had been already a long time user of oh-my-zsh, but you made me switch to i3 today and OMG that is just such a pleasent experience! Thank you!
I'm using my mouse for because my keyboard doesn't have those :) especially fun in template programming in c++
noone writes 200 lines without stopping so no real speed advantage. its all just preference
Spends all his time configuring his "work flow" 😂😂 Serious developers care about debugging more than anything else. But geeks gonna geek anyways 😂😂