Ctrl + C shortcut isn't working inside a build-in terminal in Visual Studio Code
jedrzejchalubek opened this issue ยท 10 comments
A standard Ctrl + c
shortcut which terminates the current process is not working in the build-in VSC terminal. The same shortcut works perfectly in standard and iTerm terminals. I have all 'Complex modifications' enabled.
I suppose it's a problem that we want keys to be remapped when using VSC, but disabled when focusing it's inside the terminal. There is any "way around" for this problem?
I personally got around this problem by excluding VSC from all remappings and then do the mapping inside VSC itself. Then I use ctrl-c to break in Terminal and mac-c to copy.
It's not up-to-date, but my fork is here for comparison. https://github.com/samuelneff/karabiner-windows-mode/tree/sam-additions
I am also struggling with this very same issue. Have you come to any conclusion?
@MNorgren Nope, I didn't find any reasonable or comfortable solution. For now, just closing and creating a new terminal in VSC whenever I need it to terminate it ๐
I've also having this problem, but in PyCharm.
Would it be possible to only map the left Ctrl
key for Ctrl + c
to copy, and leave the right Ctrl
alone, so that it would still work for sending a normal Ctrl + c
interrupt at the terminal?
I just made a change (#58) to use the suggestion of only using left control for the bind. @jedrzejchalubek @MNorgren @WhiteHotLoveTiger, please try the new binding and see if that at least serves as a decent workaround.
There's also the alternative of leaving the IDE's off the CTRL+C binding altogether, meaning CMD+C would have to be used to copy, but that might be a worthy tradeoff? Let me know and we'll work at creating a worthwhile solution.
It doesn't work well with the PC-Style Copy/Paste/Cut
Any working solution for this?
You can set a custom shortcut and target the terminal in vscode.
{
"key": "cmd+c",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0003"
},
"when": "terminalFocus"
}
Note that I have already swapped cmd
with ctl
I did a rule that when clicking Ctrl+Shift+C
it will execute the Ctrl+C
, even if it is remapped with the karabiner-elements.
{
"description": "Quit application from terminal with Control+shift+c",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "c",
"modifiers": {
"mandatory": [
"left_control",
"left_shift"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"shell_command": "osascript -e 'tell application \"System Events\" to keystroke \"c\" using control down' end tell"
}
]
}
]
}
Hope this helps someone!