14 ms·
Vim Clutch – A hardware pedal for improved text editing (2012)
- jxramos 6y agoI use a foot pedal for copy and paste operations when I want to give my hands a rest and to distribute heavy editing duties over to my feet when the occasion arises. https://superuser.com/a/1486751 https://superuser.com/a/1486751
- edoceo 6y agoHolyDoly! This is exactly what I want. Thank you!
- francisduvivier 6y agoDoes this go well a standing desk?
- forgotmypw17 6y agoWhen using a standing desk, I prefer to use a glute squeezer device to switch modes. It feels much more natural, and improves the muscle tone as a bonus.
- klyrs 6y agoI feel like Emacs needs a footpedal more than vim... but this is cool too.
- samatman 6y agoNo joke, a piano style set of three footpedals with Meta, Ctrl, and Hyper, is something I would actually use. Tricky though, because it would have to talk to the keyboard, not the computer.
- renewiltord 6y agoVery easy to build with new customisable mech keyboard PCBs. Not tricky. Problem is utility of tool is low. It's foot dexterity vs finger dexterity, not foot vs hand dexterity and foot dexterity is low and hard to improve. I was unable to derive sufficient utility over six months of continuous use. Would advise against. Unlike guitar pedal, vim pedal expected to be frequently engaged.
- LukeShu 6y agoSince the parent post was from an Emacs user: I have to disagree. As an Emacs user, I've loved having a foot-pedal. The foot-pedal is superfluous in Vi because Vi is already modal; the foot-pedal is great in Emacs because it adds modality, kinda. Copying a post I made on Reddit a while ago: > I found that my brain didn't want to treat the pedals like it did keys--it wanted to treat them modally. I wasn't pressing control, I was entering control-mode. I wasn't pressing shift, I was entering caps-mode. Which works out, because it isn't the quick keystrokes that cause the most strain, it's holding the modifier with one finger while the rest of the hand moves around. I wouldn't use the footpedal Control for the usual quick C-f/b/n/p, but it's great for holding Control as you C-s through a document. https://old.reddit.com/r/emacs/comments/7remed/has_anybody_used_foot_pedals/dswrmo5/ https://old.reddit.com/r/emacs/comments/7remed/has_anybody_u...
- tesseract 6y ago3 pedals? I think emacs needs a full pipe-organ console.
- forrestthewoods 6y agoI can’t count how many times I’ve wanted a pedal when working in VR. Usually when I’m working in Unity and want to put my head and two tracked controllers into a specific pose and then trigger a breakpoint. In the before times I would ask someone to walk over to my desk and click the mouse when I tell them. A pedal would have been much better!
- arduinomancer 6y agoThat’s an interesting use case. As an alternative I wonder if you could set up a microphone to trigger the breakpoint when a word is spoken.
- nimbius 6y agoNice idea but ridiculously wimpy switch. Rig up one of these American made beauties instead. https://www.amazon.com/SSC-Controls-G500-MO-Electrical-Industrial/dp/B017T2IXIW https://www.amazon.com/SSC-Controls-G500-MO-Electrical-Indus... from experience: they're way more satisfying to press and oil/water/dust tight. EDIT: fixed link. this pedal is also OSHA approved with a safety cap to prevent objects from falling onto the switch and triggering insert mode.
- SteveNuts 6y agoAppears to be a broken link fyi
- wintermutestwin 6y agoLink still doesn't work. I think this is what you were trying to link to: https://www.ebay.com/itm/TEMCo-Heavy-Duty-Cast-Aluminum-Foot-Switch-15A-SPDT-Electric-Pedal-Momentary-New/283228402443?epid=2254335706 https://www.ebay.com/itm/TEMCo-Heavy-Duty-Cast-Aluminum-Foot... I'm not sure how you'd connect this as an ancillary USB keyboard. Seems like you'd need an Ardunio or something? I'd love to have a few of these to control DAW apps where I don't need the hassle, cost and complexity of Midi
- NegativeLatency 6y agoTeency USB is pretty common for stuff like this
- chas 6y agoA handwired QMK keyboard would work fine: https://docs.qmk.fm/#/hand_wire https://docs.qmk.fm/#/hand_wire If you have only one or two switches, you can use the DIRECT_PINS configuration to directly put one switch per input pin rather than the more conventional switch matrix approach. You can use the XD002 code as a starting point (https://github.com/qmk/qmk_firmware/tree/master/keyboards/xd002 https://github.com/qmk/qmk_firmware/tree/master/keyboards/xd..., https://github.com/qmk/qmk_firmware/blob/master/keyboards/xd002/config.h#L36 https://github.com/qmk/qmk_firmware/blob/master/keyboards/xd...). It uses a DigiSpark rather than the more common Arduino Pro Micro. The DigiSpark is a bit fiddly and has very little program memory, but it is very cheap and simple.
- renewiltord 6y agoUsed to use one. Lots of ankle fatigue and slow thought to action time. Never trained myself sufficiently or fast enough. Tried both clutch and toggle mode. Perhaps switch was too light. Had to worry about accidentally triggering by resting foot. Plus side was easy to get working everywhere, including inside Ideavim.
- icholy 6y agoI tried this a few years back and gave up after a few days. Moving your foot is way slower than hitting a key.
- VectorLock 6y agoI tried it as well with foot pedals and it just wasn't working. Maybe if I was a drummer it'd come more naturally.
- samatman 6y agoMakes sense, besides, I 'a'ppend more often than I 'i'nsert, and usually jk out of insertion mode. Hard to imagine improving the ergonomics of that.
- LegitShady 6y agoNot for vim, but in windows I use Autohotkey to translate midi messages into macros. Get yourself a cheap midi keyboard with a bunch of buttons and knobs like the akai mpk mini or the arturia minilab 2 and you have a ton of controls to customize for any macro you want. I personally use the minilab. Take some desk space but way way way more controls. Also, if you get interested in modular synths you can download VCV Rack for free and learn about modular synthesis with a small controller for basically free. Or you could just get a razor tartarus or whatever they're calling them now and do similar without the midi part but with razors proprietary hardware and software.
- poletopole 6y agoDon't get stuck in traffic coding, you'll cramp up.
- rsj_hn 6y agoA full gearbox would be nice: * reverse --> undo * first gear --> replace mode * second gear --> visual mode * third gear --> command mode * fourth gear --> insert mode * fifth gear --> customizable mode
- pca006132 6y agoand you would be busy switching gear I guess...
- Cthulhu_ 6y agoYou can make that look cool though: https://www.youtube.com/watch?v=rtsENyPZOHw https://www.youtube.com/watch?v=rtsENyPZOHw
- killjoywashere 6y agoThis needs one of those galactic brain memes.
- arsome 6y agoIt'd occupy your hands which kinda would defeat the purpose, unless you have a gearbox that's easy to control with your foot?
- vbsteven 6y agoThis should not be that hard to wire up since USB steering wheels with separate pedals and shifters already exist.
- Y_Y 6y ago
- colordrops 6y agoOr just map escape to the caps lock key or get used to ctrl-[ and be done with it.
- strait 6y agoIt seems like there are nine different ways to enter INSERT mode and they are all useful enough to be used with some frequency. So, having the pedal simply substitute for ESCAPE would be sufficient and should be able to improve flow after some practice.
- Slackwise 6y agoThis is cool and all, but nearly useless for any experienced vimmer. I almost never press `i` to enter insert mode, and I don't expect most vimmers to do so either. My most common ways to enter insert mode are, off the top of my head... o -- Open new line below current line, enter insert mode. O -- Open new line above current line, enter insert mode. ci( -- Delete all text between the nearest parenthesis and enter insert mode within the parens. A -- Jump to end of line and enter insert mode. I -- Jump to start of line and enter insert mode. C -- Delete to end of line, enter insert mode. cc -- Delete entire current line and enter insert mode. ctX -- Delete to the character X where X is whatever character I see ahead of my cursor that I want to delete up to, and leave me in insert mode. cfX -- Same as ctX except include the found character in the deletion, then enter insert mode.
- atty 6y agoSeems like you just need more pedals.
- deleted 6y ago[deleted]
- aufhebung 6y agoHey, maybe we could put these pedals somewhere more accessible. Like under your fingers.
- fengyangzhou 6y agolol
- medstrom 6y agoWell, what makes thumb keys so great is that the thumbs are particularly independent of what your other fingers are doing. Foot switches fill the same purpose. You can only have so many keys under your other fingers, and the more you add, the more movement will be required of your hand.
- nuker 6y ago
- btgeekboy 6y agoNeat. I’ve got a similar project myself, but for I’m using an Arduino Pro Micro (Atmega32u4), which emulates a standard keyboard. Program it to send your chord of choice when pressed. I’m planning on using mine as a mute button for conferencing. Last major hurdle is trying to get the global hotkey configured to send a different keystroke to my conferencing app.
- im3w1l 6y agoForget the clutch, clearly a transmisssion stick is the correct device here. It's inherently modal!
- sidpatil 6y agoI'd rather map it to the spacebar, so I can hold it down to stay warm in the winter.
- dang 6y agoIf curious, past threads: Vim Clutch – A hardware pedal for improved text editing (2012) - https://news.ycombinator.com/item?id=16563210 https://news.ycombinator.com/item?id=16563210 - March 2018 (261 comments) Vim clutch - https://news.ycombinator.com/item?id=4141410 https://news.ycombinator.com/item?id=4141410 - June 2012 (219 comments)
- myth2018 6y agoYears ago I learnt about a stock dealing company in my country which was experimenting with pedals for their operators. Sadly, I cant't find a link now. But I found that interesting. Could be useful on certain applications in which users have to quickly respond to unexpected events by switching to particular tasks (without having to search for them through ALT+TABbing). I don't know, just speculating here. I like it, probably wouldn't use it on Vim, but I see potential in other applications.
- deleted 6y ago[deleted]
- visviva 6y agoThank you for posting this and giving me a reason to reread my all time favorite greentext: https://i.imgur.com/WLzeQMj.png https://i.imgur.com/WLzeQMj.png
- susam 6y agoI know the image post in your comment exaggerates the Emacs input sequence for humorous effect but I got curious and decided to count the actual keystrokes for a real world common use case. Say, we want to replace one string with another, e.g., "foo" with "bar" as it appears in your image post. So assuming that we need simple string replacement, not regex-based replacement, and also assuming that we have vanilla Vim, vanilla Emacs, no customization, and US layout keyboard, Emacs seems to be at par with Vim. On Vim: <Shift>+; (:) <Shift>+5 (%) s/foo/bar/g <Enter> (16 key strokes) On Emacs: <Alt>+<Shift>+, (M-<) Alt+Shift+5 (M-%) foo <Enter> bar <Enter> <Shift>+1 (!) (16 key strokes) Now I know some of you might observe that I have not counted the initial <Esc> to escape to normal mode and the final i to enter insert mode again in Vim. That is correct, however, I find that experienced Vim users keep themselves in the normal mode most of the time. The normal mode is really the normal mode and the insert mode is a special mode that they get into for short periods of time to insert text. Also, they rarely use i to enter insert mode. Instead, they usually o, O, a, A, I, c<motion>, c<text-object>, etc. to enter insert mode. Then they return to normal mode again as soon as they are done inserting text, so I don't think it is fair to count the overhead of <Esc> and i while counting Vim key strokes.
- 01100011 6y agoConsider remapping ';' to ':' if you use vim a lot. Something like: " Use ; rather than : for commands nore ; : nore , ;
- pindab0ter 6y agoSee, I never understood these tips. If I use Vim a lot I will build muscle memory. If I build the muscle memory with these adjustments I’ll just keep tripping over myself whenever I edit a file on a station without those adjustments. And simply foregoing the shift key isn’t even that much of a time or effort save.
- nuker 6y agoIs there a Vim speed editing contests? I'd love to watch one. And Vim vs Sublime Text too :)
- pfarrell 6y agoThere should be. That’s a great idea
- messo 6y agoSuddenly I'm imagining a huge stadium filled with vim-users, watching a duel between to vim-masters — e-sport-style. Would actually be fun to watch!
- snowron6 6y agoThere's http://www.vimgolf.com/ http://www.vimgolf.com/ where people compete to do a task in the least keystrokes possible.
- xvolter 6y agoYears ago, there was a failed gaming device called a Stinky Board, it's a D-PAD controlled with your feet. I got one at a gaming convention and have never put it to good use. Now I have a reason to pull it out of storage. Link to unavailable product: https://www.amazon.com/Stinky-Gaming-Footboard-Foot-Controller/dp/B00EOPT5ZS https://www.amazon.com/Stinky-Gaming-Footboard-Foot-Controll...
- yewenjie 6y agoOkay, so what are some other cheap ways to have more input methods without lifting my hands off the keyboard?
- gdoptimizer 6y agoFor me, I would reduce the functionality to just one key: ESC. I always pressed ESC key mindlessly when thinking of the next thing to write. I pressed too many useless ESC like fidgeting. If I can offload it to the foot...
- rodneyzeng 6y agoso what will happen if you press keyboard i in command status?
- ajarmst 6y agoBecause emacs supports 5 mode keys plus shift, the idea (and non-tongue-in-cheek use) of foot pedals has been around for a while. https://www.emacswiki.org/emacs/FootSwitches https://www.emacswiki.org/emacs/FootSwitches)
- c-smile 6y agoNo, it should be variant of Termenvox (https://en.wikipedia.org/wiki/Theremin https://en.wikipedia.org/wiki/Theremin). So each VIM command will be a 3D gesture. I guess we all know well what will be the gesture for quitting VIM... Business idea: VIM user may sell tickets for spectators of their editing witchcraft with the device.
- BeniBoy 6y agoAs a new-ish pedal steel player, I can offer some ergonomic advices. This isn't a very popular instrument, so this may need an introduction: pedal steel is kind of like a guitar with a system of knee lever and foot pedals to modify string tension on the fly. The most used pedals are the leftmost two (in classic country), and you need to be able to select each one independently or together pretty fast. My main takeaway: * You usually don't use your ankle that way, so it will seems impossible at first, but you will very fast get used to "ankle rolling" which will make you able to select each pedal without moving your foot sideways * The height of the pedal is crucial. On steel, you will have a threaded rod to set the height. You usually want (if you are using your left foot) the leftmost pedal to be around 10mm higher and with a shorter course (for both pedal to be at the same height when depressed). * Footwear impacts your feeling, especially heel height. So if you plan to use such a device with a specific shoe, train with that specific shoe. If you want to build such a pedal (especially a "chorded" version), I think taking cues from pedal steel hardware would be a good idea, as you need to be able to play for hours without straining your legs.
- fhunt 6y agoThought how great, for a split-second. But key for being 24/7 in front my computer with zero issues for decades is among other things—I move all the time, hence I need a keyboard which moves all the way with me and you can imagine that my feet are also moving their location and nobody wants to arrange all the foot paddles every time you move. And in these times in your home office it's great to put your feet up here and then.
- peteretep 6y agoCombine the camera for a facial expression based input instead? Grimace to change modes?
- fhunt 6y agoIDK I am totally fine with i, I and A haha and the brain is also faster when processing chords from the fingers only. If you blend feet or even just thumb strokes in you significantly slow down. edit: just thinking of piano players, maybe I am wrong but this thing feels odd
- ccozan 6y agomaybe eyes blinking? Left eye blink -> i, again,<esc>, right eye -> (maybe) o , again <esc> double blinking would be also fun to map!
- outadoc 6y agoWhy isn't this called Vim Diesel?
- qwerty456127 6y agoWe also need a vim gearbox, this way we could add more modes :-)
- gher-shyu3i 6y agoKinesis sells pedal for their keyboards: https://kinesis-ergo.com/shop/advantage-single-pedal/ https://kinesis-ergo.com/shop/advantage-single-pedal/
- Cthulhu_ 6y agoHuh, they have a bunch of pedals: https://kinesis-ergo.com/products/#foot-switches https://kinesis-ergo.com/products/#foot-switches even waterproof models.
- _ZeD_ 6y agodudes, with my keyboard/settings (windows on iso keyboard with italian layout) the "{" and "}" characters are made with <AltGr>+<RightShift>+<è> and <AltGr>+<RightShift>+"+". I need a pedal for my <Ctrl> and <Alt> keys.
- jl6 6y agoI sometimes wish my workstation had a few more single-purpose hardware controls for system-level settings - a physical slider for volume, status LEDs for critical system services, a zoom dial, a big red magic-sysrq button with a safety cap, some nice solid on-off switches for wifi, networking, background Dropbox syncing...
- rjc 6y agoI've been using a USB Philips ACC2310 Foot Control (https://www.dictation.philips.com/gb/products/transcription-accessories/foot-control-acc2300/ https://www.dictation.philips.com/gb/products/transcription-...) with OpenBSD's usbhidctl(1) - https://man.openbsd.org/usbhidctl.1 https://man.openbsd.org/usbhidctl.1 - for years :^)
- MarkusWandel 6y agoI developed the "muscle memory" to use vi decades ago, and have been able to use it ever since, with minor hiccups like too-small ESC keys and the CTRL key moving to its present position on PC keyboards. vi everywhere. On the Amiga I used to have, on Unix boxes of all kinds including an ancient V7 one I played with for a while ("elvis" barely fit), over dialup terminals, over Raspberry Pi serial consoles, everywhere. If instead you invest muscle memory in a custom hardware assist device, it's lost when you don't have that assist device. Getting used to insert mode vs. not insert mode is really not so bad.
- janisz 6y agoEven cheeper solution with tatoo pedals and Arduino PL: https://detektywi.it/2018/10/rzecz-o-mokrym-kodzie/ https://detektywi.it/2018/10/rzecz-o-mokrym-kodzie/ Translate: https://jne4kctnutt3lj4kwemgnn6ujm-adwhj77lcyoafdy-detektywi-it.translate.goog/2018/10/rzecz-o-mokrym-kodzie/ https://jne4kctnutt3lj4kwemgnn6ujm-adwhj77lcyoafdy-detektywi...