5 ms·
For those of us who can type very quickly, every movement of the hand away from the keyboard (to the mouse) and back has a high cost in terms of lost typing opp
by blunte 6y ago
For those of us who can type very quickly, every movement of the hand away from the keyboard (to the mouse) and back has a high cost in terms of lost typing opportunity.
If speed and subconscious operation are the goal, then it's best to stick to as much keyboard only as possible, or alternately to learn to maximize the one hand keyboard + mouse approach (which can actually be very fast once you know your tools).
- whatever1 6y agoFor most of us mortals, typing is not the bottleneck when we are writing code, an article or whatever. In any case, keyboard-only interfaces make the assumption that you know all of the shortcuts for each program you use. And boy they are inconsistent. They also offer zero discoverability for someone that did not read the manual (see the vim jokes). I like software that offers both good pointer UI + robust keyboard shortcuts for those who have learned the ins and outs and need to go faster.
- blunte 6y agoWe're all mortals :). Like other endeavors of growth, a good approach is to regularly make a small effort to learn a little more about something (like your tools, which includes keyboard shortcuts). As one simple example, if you have a URL somewhere and you want to quickly open it in a new window, you just use the keyboard shortcuts to copy (which hopefully everyone knows), switch to browser (alt-tab or cmd-tab or even [cmd-space fire return]), ctrl-t or cmd-t to open a new tab, paste, return). This sequence becomes so hard-wired that you can go from seeing a URL to reading it in a new tab in a couple of seconds. And since it is hard-wired, your train of thought is not interrupted with common small thoughts like, "hmm where is my mouse pointer? wiggle mouse - ahh there" But like I also suggested, with left hand on the keyboard and right hand on the mouse, and knowing a few very common shortcuts, you can be very fast at getting things done. In both cases, knowing keyboard shortcuts is... key. Lastly, there are some awesome tools like Keyboard Maestro or possibly Hammerspoon (I use the former, but have heard the latter is decent). With a bit of effort, you can make some really useful macros and do a lot. Heck, even just using Automator can do wonders. For example, it's pretty easy to make a file right click action that will resize and export an image into one suitable for web publishing. The summary of all this really is that learning your tools makes you much more effective and performant. Seems obvious, but it's easy to forget.
- paulryanrogers 6y agoWhile all true IME the ever growing stack of libraries, frameworks, languages, and infra tools one must learn leaves little breathing room for modest gains in text wrangling. Most of my time isn't spent slicing and dicing snippets or juggling windows. Rather it's thinking, planning, a bit of experimentation, reading, repeat. And powerful, built-in auto complete with visual IDEs like IntelliJ or PyCharm make them hard to give up.
- thanato0s 6y agoI thought the same before trying to use my actual dev environment, but, at least for me, it felt more enjoyable to stop using the mouse when I was coding. I think the best is just to try both approach and see by yourself.
- blunte 6y agoEven still, cmd-opt-b when your caret is on a name jumps you to the code where that thing is implemented. A few shortcuts like that make navigating so effortless that you are free to focus on the code and libraries.
- paulryanrogers 6y agoSorry if I was unclear. That's one of my favorite shortcuts actually. And I write my own Bash aliases and scripts to reduce terminal fatigue. I just don't devote much time to mastering text editors. In fact I've had to change editors so often that mastery may have been unrealistic anyway.
- thanato0s 6y agoThe problem is not necessarily to be fast for me (I know people who are very fast with the combo mouse / keyboard) but more if you like it. If you don't enjoy working with your tools, you'll have a lot of friction to do your work. I'm not sure everybody would like a development environment as I describe it, that's why I invite people to try Vim for example for a couple of week (I've some free articles on my blog about that) or i3, and see what they think about it. Exploring new possibilities is never bad. About learning the tools: I agree, but you can learn much more from some tools than others. I think of Vim as easy to learn, hard to master because there is so many stuff you can do with it. But I used Intellij IDEs as well for a long time, and I don't think it's hard to master, because there's not so much you can master, except maybe the keyboard shortcuts.
- ajfapoiawejf 6y ago> They also offer zero discoverability for someone that did not read the manual (see the vim jokes). I don't see why I would use a specialized tool for hours a day without reading the manual. > good pointer UI + robust keyboard shortcuts vim jokes aside, you can use a mouse with vim, terminal, tmux, etc just fine. I sometimes do, but most of the time I find the keyboard simpler.
- smichel17 6y agoWith all due respect, as a self-identified mortal, typing often IS the bottleneck when I'm coding. This is why I often write pseudocode on paper or a whiteboard, before typing things out. Not sustained typing, but in bursts. Particularly when there's some complicated logic. When I reach that moment when I finally have a breakthrough and clearly understand what I need to do.. that moment is fleeting, and it's vitally important that I get it written down before I forget. Like waking up from a dream.
- pca006132 6y agoI don't think vim could speedup your typing speed (unless you are using macro/`.`). I think the benefit of vim is mostly about code navigation, and this is the bottleneck (at least for me) when writing code: jumping around definitions, from and to different region, without having to reach the mouse and click on different buttons. Good pointer UI + robust keyboard shortcut is quite good, but sadly most of the GUI applications do not allow you to use a consistent set of keys in different controls, but with vim you can. (use shortcut to open up some form and suddenly the shortcut changes, and rarely you can configure those shortcuts). And having a normal mode really appeals to me, as I don't have to reach ctrl/alt that often with normal mode.
- thanato0s 6y agoI totally agree with that. To me, flexibility is the way. Something I hate for some GUIs: they sometimes change their interfaces without any reason. I think about the whole Confluence thingies (worst interfaces ever IMHO), or even intellij IDEs. When I was working with them, I saw the preference menu changing at least 4 or 5 times. Perfect to confuse me. That's why I accepted to try the tools my colleagues where using, the ones I still use today. On top these tools allow us to have a configuration in plain text, which is so easy to manage because we have so many mature tools to deal with plain text (git is a great example of that).
- blunte 6y agoHome row cursor movement is one of my favorite things about vim. Same with w, e, b, ^, $, and the c or d commands used with them. I think just knowing a small few navigation keys and a small few modification keys, your capabilities are multiplied. That’s why I use the vim plugins for vscode and jetbrains IDEs. Best of both worlds.
- imiric 6y ago> keyboard-only interfaces make the assumption that you know all of the shortcuts for each program you use That's why you carefully choose programs that are highly configurable so that you can integrate them seamlessly into your particular workflow. The reason I use Emacs is not because it's a great editor. It's slow, often frustrating and since adding LSP support it crashes frequently. The reason I stick to it is because it gives me endless customization so that I can decide how I want it to work, instead of the author or some company deciding that for me. Learning to use it is therefore an investment in future time saving since I won't have to worry about it drastically changing or moving to another system if the company that supports it decides to change direction.
- thanato0s 6y agoIt's not because you do jokes about a tool that this tool is not good. > In any case, keyboard-only interfaces make the assumption that you know all of the shortcuts for each program you use When I use Gimp, I need to know where are the different options I want to use. It took me time to learn where I can find the best tools for my own needs. It's the case for any interface, GUI or CLI. But where some CLIs really shine: you can customize everything to create your own little world, to bring a consistency between all your tools. That's the real power: flexibility. It has its drawbacks too, but I the benefits outweigh them big time.
- toast0 6y agoThe editor I use says CTRL-K H for help in the title/status bar, and if you push ctrl-k then h, it has a handy dandy help screen. It's not as nice as F1 for help that used to be universal in Windows, but the F keys in terminals never got traction that I saw (quite possibly because of lack of standard availability in the 80s; everyone had a CTRL key, so just use that). UI gestures are pretty undiscoverable without documentation too; but there's no manuals anymore. Even the books like XYZ: The Missing Manual are few and far between. At least editors from the 80s and 90s have documentation, even if nobody wants to read it. /rant (not directed at you)
- anthk 6y agoSo you are the single user left with jstar :D
- toast0 6y agoAt my last job, there was a user group for joe. I joined it, and it became a users group. So there's at least two of us. I didn't stay in touch with that other user when I left that job though (although, I did make sure to send a farewell)
- afarrell 6y agoAs a mere mortal with limited Working Memory, the bottleneck is getting sketch-thoughts out of my head where I can see them and edit them. Others' needs are different.