Visual Studio unknown keyboard shortcuts

Karen Payne - Sep 3 '23 - - Dev Community

Learn several productivity ways to make life easier with keyboard shortcuts with Microsoft Visual Studio so fingers stay on the keyboard and not the mouse.

Video is best watched on YouTube

Expand Selection

Suppose there is a need to select a section of code without the mouse?

Example, select new JsonSerializerOptions { WriteIndented = true } from the following code to use in another section of code.

public static void SerializeTickets(List<Ticket> tickets)
{
    File.WriteAllText(TicketsFileName, JsonSerializer.Serialize(
        tickets, new JsonSerializerOptions { WriteIndented = true }));
}
Enter fullscreen mode Exit fullscreen mode

Place the cursor on WriteIndented when press Shift + Alt + + four times, then Ctrl + C to copy the selected text.

Play around with this keyboard combination. For example a developer wants $"{monthName,15} index is {position}" from below. Use Shift + Alt + + several times than Ctrl + C to copy the selected text.

var monthName = "November";
if (result.Contains(monthName))
{
    var position = result.IndexOf(monthName);
    if (position >0)
    {
        Console.WriteLine($"{monthName,15} index is {position}");
    }
}
Enter fullscreen mode Exit fullscreen mode

Expand selection to containing block

This allow selecting the parent code similar to Expand Selection shown above. Given the same method used above, press Shift + Alt + ] which will select the entire method.

Not just code, how about json, CSS styles?

Given the following json

[
  {
    "CustomerIdentifier": 1,
    "CompanyName": "Alfreds Futterkiste",
    "ContactId": 1,
    "CountryIdentifier": 9,
    "ContactTypeIdentifier": 1
  },
  {
    "CustomerIdentifier": 2,
    "CompanyName": "Ana Trujillo Emparedados y helados",
    "ContactId": 2,
    "CountryIdentifier": 12,
    "ContactTypeIdentifier": 7
  },
  {
    "CustomerIdentifier": 3,
    "CompanyName": "Antonio Moreno Taquer",
    "ContactId": 3,
    "CountryIdentifier": 12,
    "ContactTypeIdentifier": 7
  },
  {
    "CustomerIdentifier": 4,
    "CompanyName": "Around the Horn",
    "ContactId": 4,
    "CountryIdentifier": 19,
    "ContactTypeIdentifier": 12
  }
]
Enter fullscreen mode Exit fullscreen mode

A developer wants to make a copy of Antonio Moreno Taquer. Place the cursor in that node and press Shift + Alt + ] to select the node.

Same for CSS, given the following (which overrides placeholders for input elements).

::-webkit-input-placeholder { /* WebKit, Blink, Edge */
    color: coral
}

:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
    color: coral;
    opacity: 1;
}

::-moz-placeholder { /* Mozilla Firefox 19+ */
    color: coral;
    opacity: 1;
}

:-ms-input-placeholder { /* Internet Explorer 10-11 */
    color: coral;
}

::-ms-input-placeholder { /* Microsoft Edge */
    color: coral;
}

::placeholder { /* Most modern browsers support this now. */
    color: coral;
}

h1 {
    font-size: 18px;
}
Enter fullscreen mode Exit fullscreen mode

Place the cursor anywhere in the above section, press Shift + Alt + ] then Ctrl + C to copy the selected rules.

Same for JavaScript, in this case we want the toggle function.

press Shift + Alt + ] two times to select the function.

$debugHelper = function () {
    var href = "lib/debugger.css";
    var addCss = function () {
        if (styleStyleIsLoaded(href) === true) {
            return;
        }
        const head = document.head;
        const link = document.createElement("link");
        link.type = "text/css";
        link.rel = "stylesheet";
        link.href = href;
        head.appendChild(link);
    };
    var removeCss = function () {
        if (styleStyleIsLoaded('debugger.css')) {
            document.querySelector(`link[href$="${href}"]`).remove();
        }
    };
    var toggle = function() {
        if (styleStyleIsLoaded(href) === true) {
            removeCss();
        } else {
            addCss();
        }
    }
    var styleStyleIsLoaded = function () {
        for (var index = 0, count = document.styleSheets.length; index < count; index++) {
            const sheet = document.styleSheets[index];
            if (!sheet.href) {
                continue;
            }
            if (sheet.href.includes(href)) {
                return true;
            }
        }
        return false;
    }
    return {
        addCss: addCss,
        removeCss: removeCss,
        isCSSLinkLoaded: styleStyleIsLoaded,
        toggle: toggle
    };
}
Enter fullscreen mode Exit fullscreen mode

Menu items

Most developers do not check out what is available under Visual Studio's Edit menu, Advanced which is where these commands reside.

Menu items highlighted

Summary

For keyboard users these keyboard shortcuts can keep a developer from holding down Ctrl and arrow keys to select items.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .