Can VS Code input text when I type a rapid shift shift sequence? - visual-studio-code

So, my new keyboard doesn't have the pipe key, and I use it frequently (I'm learning elixir right now). I know that alt + 124 produces |, but it is a bit annoying to type it every time I want to use |> on elixir.
Is it possible to configure a shortcut (thought about something like shift shift) to insert |> in the editor?

Microsoft has its own tool to create custom layouts.
Microsoft Keyboard Layout Creator 1.4 Download.
Here is a brief how-to gracefully stolen from MakeUseOf
Open the Microsoft Keyboard Layout Creator app.
Head to File > Load Existing Keyboard.
Pick the layout you want to customize. You should make sure you pick the layout that matches your current keyboard setup, for example, QWERTY (U.S.).
Go to File > Save Source File As so you have a backup before you start making changes.
Set your new keyboard’s parameters in Project > Properties. You can pick a language and give the keyboard a name and description.
Click on a key and follow the on-screen prompt to remap it to a character of your choosing.
Assigning control keys combinations to input letters is not possible, AFAIK. Just set it so Shift+Something or to any 3rd level key. BTW, I am pretty sure your current 3rd level already has a pipe, to test it press the right Alt (also called AltGr) and press all the alphanumeric keys.

{
"key": "shift shift",
"command": "type",
"args": {
"text": "|>"
},
"when": "editorTextFocus"
}
Looks like using two modifier keys in rapid sequence will work soon. Commit merged: see Feature: Shift Shift, Ctrl Ctrl, Alt Alt Keybinds (Double press modifer keybind support)
Will be in v1.54 - works in the Insiders Build now.

You can define a keyboard shortcut
{
"key": "shift+alt+p",
"command": "type",
"args": { "text": "|>" },
"when": "editorTextFocus"
}
You can choose any key combo you like, see the docs

Related

VSCode keyboard shortcut to go to split windows using the side numeric keypad (and/or top number bar)

I want to use the keyboard to go from split window 1 to 2 to 3 etc.
I know I can press command+1, command+2, command+3 using the numbers at the top of the keyboard.
But his only works for number bar on top, it does not work with the number pad
These keys are accepted:
numpad0-numpad9, numpad_multiply, numpad_add, numpad_separator
numpad_subtract, numpad_decimal, numpad_divide
So you would need to make your keybindings with those keys:
{
"key": "cmd+numpad0",
"command": "workbench.action.openEditorAtIndex1",
"when": "editorTextFocus"
}
You may be able to do this simply with the context menu command Add Keybinding... on each of the commands, like workbench.action.openEditorAtIndex1 you find in the Keyboard Shortcuts list. And then use your numpad keys and see what it adds to your keybindings.json file.
see keybindings - accepted keys

How can I write specific words on terminal( mainly GIT)?

When We press the uparrow button. it types "code.". can we write other words when we press some key? I want to write ./a.exe on the terminal when pressing some key. How can we do so in Visual studio code?
The integrated terminal inside the VS Code is very much customizable when it comes to key bindings. The official documentation says:
The workbench.action.terminal.sendSequence command can be used to send
a specific sequence of text to the terminal, including escape
sequences. This enables things like sending arrow keys, enter, cursor
moves, etc. The example below shows the sorts of things you can
achieve with this feature, it jumps over the word to the left of the
cursor (Ctrl+Left arrow) and presses backspace:
{
"key": "ctrl+u",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\u001b[1;5D\u007f" }
}
This feature supports variable substitution.
Note that the command only works with the \u0000 format for using
characters via their character code (not \x00).

Visual Studio Code: How to define key bindings for page-home and page-end

Whilst coding I frequently find myself needing to jump either to the top or bottom of a file, but I can't find a quick way to do this with a single key stroke. I tried to define a short cut in the key bindings, but I can't find a function like "page-home" and "page-end". I was going to use the alt key with the home button to jump to the top of a page and alt+end for the bottom.
ie I was expecting to be able to define say:
{ "key": "alt+home", "command": "[what is page home command]", "when":
"terminalFocus"}
So, are there such functions page-home/page-end (I may have this wrong, perhaps its defined as something else).
I've spotted a binding for "cmd+home" bound to "workbench.action.terminal.scrollToTop" which sounds like the right function (and a similar one for "cmd+end"), but they don't work.
UPDATE: I've tried to apply changes to the keybindings via the key bindings page, by defining the keystrokes I mentioned before, and it still does not work. Unless I'm doing something wrong, I . think there is a bug that needs to be reported, unless somebody can say otherwise.
Thanks.
The answer is in this GitHub post. The commands you're looking for are cursorTop and cursorBottom.
Open up the command palette (CTRL + SHIFT + P on Windows) and select Preferences: Open Keyboard Shortcuts File
Add in the following settings in keybindings.json:
{
"key": "ctrl+home",
"command": "cursorTop",
"when": "editorTextFocus"
},
{
"key": "ctrl+end",
"command": "cursorBottom",
"when": "editorTextFocus"
}
replacing the key with whatever shortcut you prefer.

How to assign number keys to sublime text keybinding

I want to create a macro in sublime text using the number key on my keyboard. Is this possible?
My attempts have given me these results:
This works for the number 1 key on the keypad but not on the number 1 key on the keyboad
{"keys": ["alt+keypad1"], "command": "run_macro_file", "args": {"file": "Packages/User/action_self.sublime-macro"}}
This works for the f1 key on the keypad.
{"keys": ["alt+f1"], "command": "run_macro_file", "args": {"file": "Packages/User/action_self.sublime-macro"}}
This does not work!
{"keys": ["alt+1"], "command": "run_macro_file", "args": {"file": "Packages/User/action_self.sublime-macro"}}
It seems like the last mentioned should work. Is there a way to use the numbers of the keyboard to run macros?
Any help will be greatly appreciated!
That should work just fine. For example, under Windows/Linux, that key is bound by default to switch to the first tab in the current tab group:
{ "keys": ["alt+1"], "command": "select_by_index", "args": { "index": 0 } },
Possible problems with this include your operating system/window manager seeing the key and handling it before it gets to sublime or having a keyboard layout that makes that key not map to what you think it does.
To check both, open the Sublime console (View > Show Console from the menu or press Ctrl+`) and enter the command:
sublime.log_input (True)
This will make sublime output to the console whenever you press a key. Press Alt+1 and see what it displays in the console.
If nothing displays, something global is eating the key before Sublime gets to see it, which might be a shortcut in your OS of some sort.
Otherwise, it will display what key it thinks you pressed. If it shows you alt+1, then it's seeing the key and your key binding is just not taking effect for some other reason (wrong filename, the command does not do what you think it does, etc) which is a different issue.
If it shows you a key but not what you expect it to be, that's a result of your keyboard layout. In this case you can either switch to a different keyboard layout or just bind with the key as Sublime is reporting it.
Once you're done, you should run sublime.log_input (False) in the console to turn off input logging (or restart Sublime).

Make selected block of text uppercase

Can I make a multi-line selection of text all capitals in Visual Studio Code?
In full Visual Studio it's CTRL+SHIFT+U to do this.
The extension that exists that I have seen only do non-multi-line blocks.
NOTE: THE UI OF VISUAL STUDIO CODE WHEN THIS QUESTION WAS ASKED (5 OR MORE YEARS AGO) HAS CHANGED.
The question is about how to make CTRL+SHIFT+U work in Visual Studio Code. Here is how to do it in version 1.57.1 or above.
Steps:
Open Visual Studio Code.
Press CTRL+SHIFT+P.
Type
open keyboard shortcuts
Select
Open keyboard shortcuts (json)
An editor will appear with keybindings.json file.
Place the following JSON in there and save:
[
{
"key": "ctrl+shift+u",
"command": "editor.action.transformToUppercase",
"when": "editorTextFocus"
},
{
"key": "ctrl+shift+l",
"command": "editor.action.transformToLowercase",
"when": "editorTextFocus"
}
]
Now CTRL+SHIFT+U will capitalise selected text, even if multi line. In the same way, CTRL+SHIFT+L will make selected text lowercase.
These commands are built into VS Code and no extensions are required to make them work.
Update August 2021
There is a UI to see and update keyboard shortcuts:
File-> Preferences -> Keyboard Shortcuts.
Find "Transform to Uppercase":
Click the + icon.
In the popup, press the desired key combination and hit enter:
Do the same for lower case.
Note
In the new versions (eg 1.57.x) of VS Code, Ctrl+Shift+L is a shortcut for bulk selecting all selected text occurrences. So you can use another combination, like Ctrl+Shift+/ etc.
Whenever you want to do something in VS Code and don't know how, it's a good idea to bring up the command palette with CTRL+SHIFT+P (CMD+SHIFT+P on mac), and try typing in a keyword for you want. Oftentimes the command will show up there so you don't have to go searching the net for how to do something.
Highlight the text you want to uppercase. Then hit CTRL+SHIFT+P to bring up the command palette. Then start typing the word "uppercase", and you'll see the Transform to Uppercase command. Click that and it will make your text uppercase.
Creator of the change-case extension here. I've updated the extension to support spanning lines.
To map the upper case command to a keybinding (e.g. CTRL+T+U), click File -> Preferences -> Keyboard shortcuts, and insert the following into the json config:
{
"key": "ctrl+t ctrl+u",
"command": "extension.changeCase.upper",
"when": "editorTextFocus"
}
EDIT:
With the November 2016 (release notes) update of VSCode, there is built-in support for converting to upper case and lower case via the commands editor.action.transformToUppercase and editor.action.transformToLowercase. These don't have default keybindings. They also work with multi-line blocks.
The change-case extension is still useful for other text transformations, e.g. camelCase, PascalCase, snake_case, kebab-case, etc.
Update on March 8, 2018 with Visual Studio Code 1.20.1 (mac)
It has been simplified quite a lot lately.
Very easy and straight forward now.
From "Code" -> "Preferences" -> "Keyboard shortcuts"
From the search box just search for "editor.action.transformTo",
You will see the screen like:
Click the "plus" sign at the left of each item,
it will prompt dialog for your to [press] you desired key-bindings,
after it showing that on the screen, just hit [Enter] to save.
In Linux and Mac there are not default shortcuts, so try to set your custom shortcut and be careful about don't choose a hotkey used (For example,
CTRL+U is taken for uncomment)
File-> Preferences -> Keyboard Shortcuts.
Type 'transfrom' in the search input to find transform shortcuts.
Edit your key combination.
In my case I have CTRL+U CTRL+U for transform to uppercase and CTRL+L CTRL+L for transform to lowercase
Just in case, for Mac instead of CTRL I used ⌘
Change letter case in Visual Studio Code
Updated answer
Show All Commands: Ctrl+Shift+P
and start typing "upper" or "lower" whichever command is highlighted, press Enter:
Note 1. The next time you use the function, it is usually enough to type the first letter of "upper" or "lower" words.
Note 2. You can also assign your own shortcut to these functions as they currently don't have any by default:
Original answer from 2017 (no longer valid for newer VSC versions)
To upper case: Ctrl+K, Ctrl+U
and to lower case: Ctrl+K, Ctrl+L.
Mnemonics:
K like the Keyboard
U like the Upper case
L like the Lower case
I think you can use
Select text
Ctrl+Shift+P
Enter Transform to Uppercase
Without defining keyboard shortcuts
Select the text you want capitalized
Open View->Command Palette (or Shift+Command+P)
Start typing "Transform to uppercase" and select that option
Voila!
At Sep 19 2018, these lines worked for me:
File-> Preferences -> Keyboard Shortcuts.
An editor will appear with keybindings.json file. Place the following JSON in there and save.
// Place your key bindings in this file to overwrite the defaults
[
{
"key": "ctrl+shift+u",
"command": "editor.action.transformToUppercase",
"when": "editorTextFocus"
},
{
"key": "ctrl+shift+l",
"command": "editor.action.transformToLowercase",
"when": "editorTextFocus"
},
]
I'm using the change-case extension and it works fine.
I defined the shortcuts:
{
"key": "ctrl+shift+u",
"command": "extension.changeCase.upper",
"when": "editorTextFocus"
},
{
"key": "ctrl+u",
"command": "extension.changeCase.lower",
"when": "editorTextFocus"
},
Standard keybinding for VS Code on macOS:
Selection to upper case ⌘+K, ⌘+U
and to lower case: ⌘+K, ⌘+L.
All key combinations can be opened with ⌘+K ⌘+S (like Keyboard Settings), where you can also search for specific key combinations.
Select the text to transform.
Use Ctrl + L to selected the whole line
Open Show all commands.
Linux and Windows: Ctrl + Shift + P, Mac: ⇧⌘P
Type in the command, e.g. lower, upper, title
Hit Enter
On a Mac, in Visual Studio Code, its very easy to add a key binding to perform this action, it is not linked to a hotkey combo as a default though.
In the menu bar, navigate to: Code > Preferences > Keyboard Shortcuts
In the search bar that comes up, type: Uppercase
A entry will come up called "Transform to Uppercase"
Hover your mouse over that entry and click the plus sign just to the left of the words "Transform to Uppercase"
In the box that comes up push the keys you want to bind that action to (Cmd +Shift + U is taken so I chose Ctrl + Shift + U) then press enter and you're good to go.
Note this is working at the time of this writing in May of 2021