3,067 karma · joined January 6, 2015
I plan to make it more like builder.io/demo however where CSS can be arbitrary, that way basic landing pages can be built.
Do you have any tips of things you wish you did differently, or what was more painful than you expected, as well as anything that might help in this?
Solution 1: Add this to your vimrc. This will make it so when going up and down, wrapped lines are properly interpreted and not skipped
``` " better up and down map j gj map k gk ```
Solution 2: If you want to make it where the cursor literally goes ANYWHERE in the document, including in space that doesn't even exist, do this below. I used this mode for a very long time and it's amazing. I only switched recently just to try something new to see if I like it more, and right now I'm just 50/50 on if its better or not
``` " allow cursor to go anywhere set virtualedit=all ```
Lastly, try using `vimtutor` from terminal and practice commands right there in your terminal.
And, if by "slow" you are talking about literal performance, try Neovim. Neovim is basically a fork of nvim that gets rid of vimscript (but still allows it if you want to use it) and instead implements Lua, which is an extremely (the fastest, actually) scripting language. (The other comment you asked about was a Neovim lua configuration which does the same thing as the vimscript version).
Part of the Neovim idea is that they also set a lot more "sane" default config thats more modern.
The best part about Neovim is that it supports LSP's in a much better way, so you can complete VS-Code like IDE experience, rather than relying on a complex array of plugins. If you decide to do that, check out lsp-zero for the easiest setup possible.
If you decide to give neovim a shot, I would 100% recommend using this: https://github.com/nvim-lua/kickstart.nvim
I recently transferred 10+ year vim config to lua and neovim, and I saw people recommending this over and over. Because I wasnt familiar with it I thought "I dont need that, i want to start fresh". Well after doing that for nearly a month, I realized how good kickstart is, it REALLY is quite good, and does lots and lots that you would want without doing too much. I didnt use it, but i took tons of inspiration from it for setting up LSPs.
Let me know if you have any questions I'd love to not lose vim friend over something stupid like moving on long lines.
The only thing worse was Doonesbury.
I also know just because someone is smart doesn't mean that all their ideas make sense in terms of efficiency. The smartest people I know are also generally the sloppiest, or have the most rigid unbending ideas that are not adaptable.
I'm not saying that's what you've seen of course, just wanted to explain that what I'm saying doesn't necessarily contradict what you're saying.
Alright I concede if that's really your use case. I wrote in another comment but I manage 3 separate companies that I started, and I'm the single developer on all of them, and I do everything on them (frontend, backend, infrastructure, data architecture/analysis, etc). So it's definitely not true for me. I have enough experience with my friends working at companies though to know they STILL would benefit, but it sounds like you escape this characterization somehow, so I believe you.
I'm a single developer/entrepreneur who as put dozens of products to market single handedly, and a number of them have done really well (some getting over 10M/yr another getting much higher than that). Right now I'm managing 3 full time... and Some days I code upwards of 15+ hours a day when building.
So basically efficiency is important to me. I literally am doing the job of like 3-4 developers at once (I do all design, frontend, backend, data analysis, reporting, infrastructure, etc).
"yeah, I guess, if there's one to spare, but don't other people need it more? I do most of my thinking away from the screen anyway, and I run my stuff on a server"
This just sounds like a mopey slow answer, sorry. I'm not hating on what they're saying but I'm not going to intentionally make my life slower/worse because of some disjointed idea that doesn't make sense. "Someone else needs it" sounds like fake ... modesty or something. MOST of my time is spent thinking in the shower, in my sleep, or with a physical pencial/notebook in my hand where I architect things. That doesnt mean the hours upon hours .... 30,000+ hours at this point in my life, that I've been on the computer actually building that I'm not going to use the very best tools at my disposal.
When people constantly call nice things "fetishizing" it sounds to me they're just different kinds of thinkers, more like scientists or objective experience-driven, domain-knowledge heavy type programmers. I'm not like that, I'm more about pattern recognition when information is missing, and filling in the gaps and moving quickly/efficiently/elegantly, and design and aesthetics are extremely critical to me. Elegantly designed/efficient code is extremely important to me, just as much as an efficient workflow.
You could call it "being creative" or whatever you want, but those things are very important to me as they all feed into my mind as fuel... into this giant arc reactor of mental substrate, and I look through this kaleidescope connections and I refine refine refine go go go.
Imagine you had a tool similar to those ChatGPT IDE auto-complete plugins, except instead of doing chat GPT it typed what was in your mind.
Imagine you start work in the morning, and there is a 0ms response time from what you think, and huge blocks of code would appear instantly.
Is your work such that you TRULY only type 300 words per day? Or, do you also... write tests, write boilerplate, write for loops you've written thousands of times, write and read files, call/build APIs, write command line tools.
If you can imagine some kind of "instant feedback" typing thing quite literally not improving your quality of life whatsoever, then I guess you are just in a rare boat. I can't visualize any circumstance where 80WPM typing would not benefit them, but I suppose there might be a world of developers out there who truly live in a vaccuum like one of my other comments said... they just come in to work, dont communicate with anyone, dont write anything other than a 50 line file with a few hundred words in it, and leave after 8 hours)
Are you at least over 60 WPM? I think I said in another comment that I think 60 WPM is probably the lowest I can imagine not constantly breaking your focus while trying to hold ideas in your mind, especially if you do data engineering and youre going multiple layers deep.
Also I did say in another comment 80 WPM would be where I'd put the barrier of not having to constantly break mental focus. BUT ALSO.. I'll take this a step further...
Have you ever gone from a 60hz monitor to 120?
Have you gone from non retina iphone to retina or remember that?
Have you gone from 32gb to 96gb in your computer and noticed things open THAT much faster?
Have you ever optimized something like the load speed of your terminal and removed 200ms from its boot time?
Now could you imagine ever going back after doing any of those things?
To me, thats what its like beyond 80. I can't imagine having to go back to 80 after I've felt 160. It's just THAT much more freeing when I'm really really deep in thought. quite literally I can type as fast as I can think, and it becomes truly seemless, like "programming in lisp" when the language gets out of the way (I dont program in lisp regularly, just seems like a good analogy)
If you can type at least 80 consistently then thats probably would I imagine the dividing line is between "flow/concentration not breaking" and "breaks constantly"
Try a 50 word monkeytype https://monkeytype.com/
1. put your fingers on home row keys with pointer fingers feeling the bumps on F and J
2. DONT move your wrists all around, try to keep them still and let your fingers do all the work. try to keep your entire palms as still as possible, they really shouldnt move. I rest mine on my laptop surface.
3. dont look at the keys. use https://www.typing.com to help you if you cant do that
4. relax your hands as much as possible
Typing.com is better IMO if you don't know how to type fast, and monkeytype.com is way more fun when you do (the interface is just way more fun)
The entire technical burden of all things fall on me, so I suspect I'm editing code a good 6-8 hours of the day, and the other 3-4 hours at the computer are spent communicating of some form. I wish I knew how many words I typed per day but it must be seriously 10's of thousands. Maybe 5000-15,000 depending on the day. Now I imagine doing that.......... 3 times slower. That gives me excrutiating physical pain.
If I sat in a vaccum, with no outside communication, and nothing else dependent on me whatsoever, and I was basically given a single task to produce a 50 line file by the end of the day, and the other 7 hours was spent deep in thought, then i could see typing not being important.
I don't fetishize it at all, in my mind it is a simple objective fact that I actually experience myself. Fast typing is up there with Vim as one of the literal most productive things I have ever done, with the 3rd being memorizing hundreds if not thousands of OS/app hotkeys.
Edit: Not that "high volume" means anything but I put that there to illustrate there's millions of dollars of liability on the line, not just pet projects or something. It just sounds like a different kind of business I'd guess. Working on a team is definitely something a lot different, that I don't really deal with, nor have much experience with.
Sitting somewhere in the middle are dynamic languages where there might be certain implementations (say... some random api integration) where it's simply a lot of code I've typed thousands of times before. This still benefits from fast typing, especially when needing to operate surgically with vim, it's one of the moments I love the most (basically getting 20x combos with perfect typing at high speed when moving/modifying/transforming blocks of text etc etc)
What benefits least of the 3 is writing things like Golang where it still definitely helps typing fast, don't get me wrong, but I usually have to think more there. Pace is slower, and symbols can become a pain in the ass.
At the end of the day... you're still typing thousands of lines of code regardless of whether you're thinking or not. I never understood the argument "I spend more time thinking than coding". You are still going to write the same amount of code whether you're thinking or not. My ideal world (why I love typing fast) is that that time of me coding gets brought down by 50-200% over someone who types slow. I use that time for accelerating ahead. Ie... prototyping and deleting tons of code before refining/cementing in a design is painless.