'Scrolling through Visual Studio Intellisense list without mouse or keyboard arrows

I'm a heavy user of Intellisense in Visual Studio. I'm also a "keep your hands on the keyboard" and "keep them in home position" aficionado, so I'm always looking for ways to keep my hands centered on the ASDF   JKL; keys as much as possible.

Whenever the Intellisense list pops up in Visual Studio, if there are many words in the list that start with the same letters as the word I'm trying to select, typing the first few letters to hone in on my selection doesn't help, since the list won't jump down to my preferred selection until I type enough characters to finally reach the first unique character in the word. It's usually faster to take my right hand off the JKL; keys and reach for the up/down arrow keys to manually scroll through the list.

I'd rather keep my hands centered in home position, and ideally use something like the J and K keys to move up and down in the Intellisense list (similar to how J and K move up and down in Vim...and especially since I use VsVim inside Visual Studio).

The MSDN Intellisense documentation only lists the up/down arrow keys and scrolling (mouse wheel, PgUp/PgDn keys, etc.) as options for doing this: enter image description here


So here are my questions (in order of preference):

  1. Are there any existing keyboard shortcuts in Visual Studio that allow keeping your hands in home position while scrolling the Intellisense list?

  2. Is there any way to custom map keyboard keys (such as J and K) to do the up/down scrolling in the Intellisense list?

  3. Are there any plugins that enable this functionality?

  4. Is there any other way to accomplish this?



Solution 1:[1]

Go get a used Kinect for $30 and map either a voice command or a head gesture to mouse scroll event. The SDK is really easy to use. You could say if head tilt left scroll up or right scroll down.

SDK http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx

Documentation http://www.microsoft.com/en-us/kinectforwindows/develop/learn.aspx

Example Projects http://channel9.msdn.com/coding4fun/kinect

You're only limited by your imagination.

Solution 2:[2]

I'm not sure which keyboard you prefer to use, but would an option be getting a keyboard with a thumb-accessible scroll wheel? Or something like the Microsoft Natural Ergonomic 4000, which is a pretty great keyboard on its own but has a zoom-slider that's accessible to your index fingers on the home row. With some work you can change the zoom functionality to scrollup and scrolldown.

Solution 3:[3]

I was looking to accomplish the same that Doktorn suggested in Visual Studio Code, so I will put the solution here just in case someone needs the same.

You have to add two new Key bindings in keybindings.json:

[
    { "key": "alt+j",                    "command": "selectPrevSuggestion",
                                         "when": "suggestWidgetVisible" }, 
    { "key": "alt+k",                    "command": "selectNextSuggestion",
                                         "when": "suggestWidgetVisible" }                                                                                 
]

Solution 4:[4]

This method is working in VSCode for Windows 10, latest version. Works just like up and down arrows.

    {
        "key": "alt+j",
        "command": "selectNextSuggestion",
        "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
    },
    {
        "key": "alt+k",
        "command": "selectPrevSuggestion",
        "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
    }

Solution 5:[5]

This!

When my hands leave the keyboard, 90% of the time it's for the arrow keys, often to accept an intellisense suggestion.

So Autohotkey. The script below gives me arrow keys that work the same in all applications! I put them on the top row, right hand to minimise collisions while still being ergonomic. One script does the same thing in SSMS, Visual and Visual Code, and everything else.

ctrlu up

ctrli down

ctrlo left

ctrlp right

Works like a charm. This has become absolutely fundamental for me. The only friction is that by default it will run with normal privileges, so it won't be available in programs you launch as administrator. If you want, set autohotkey to run as administrator. You will have a UAC prompt every time it starts, but you'll have your arrow keys all the time. Autohotkey intercepts the key combos before the app gets them, so you will lose app shortcuts mapped to these keys. In VS Code, ctrlp is essential, but ctrle does the same thing. ctrlp is Print in many other apps, but when was the last time you printed anything?

# ArrowKeys.ahk

^u::
Send,{up}
Return

^i::
Send,{down}
Return

^o::
Send,{left}
Return

^p::
Send,{right}
Return

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Anthony Russell
Solution 2 Bas
Solution 3 Ezequiel Victorero
Solution 4 Rocco Ruscitti
Solution 5