Sublime Text 3 snippet keyboard shortcut - sublimetext3

I've been trying to create a shortcut to the snippet palette in Sublime Text 3 but can't seem to get it to work. I don't get an error, I just get nothing. I am on a Mac and have the following in Preferences: Key Bindings - User
{
"keys": [ "ctrl+y" ],
"command": "show_overlay",
"args": {
"overlay": "command_palette",
"text": "Snippet:"
}
}

Did you put your code into this [] ?
It works for me:
[
{
"keys": ["ctrl+y"],
"command": "show_overlay",
"args": {
"overlay": "command_palette",
"text": "Snippet: "
}
}
]

Related

Sublime text user keymap not overriding default

I'm using Lubuntu, have changed just one shortcut on sublime user keymap, but nothing that i change there takes any effect.
on default keymap, i have this
{ "keys": ["ctrl+pageup"], "command": "next_view" },
{ "keys": ["ctrl+pagedown"], "command": "prev_view" },
on userkeyma, i replaced it with this:
{ "keys": ["alt+pageup"], "command": "next_view" },
{ "keys": ["alt+pagedown"], "command": "prev_view" },
but it takes no effect whatsoever
this is sublime text 3 build 3083

How to send cursor to the next line with Sublime keymap

I am using the keymap to execute the current line in sublime repl by hitting ctrl+enter. The cursor remains on the same line. What do I need to add to the keymap so the cursor would jump to the next line (as what happens in RStudio)?
[
{ "keys": ["ctrl+enter"], "command": "repl_transfer_current", "args": {"scope": "lines"}}
]
I found a way to do it using a python script plugin. Apparently, Sublime by default does not have the option of running multiple commands under a single keymap.
I used the method from here: https://forum.sublimetext.com/t/run-multiple-commands-command/6848
the steps are the following:
Sublime - Tools - Developer - New Plugin
copy code from run_multiple_commands.py found here: https://gist.github.com/bgmort/7ae52ea4270f1c404321c20d1b97733c#file-run_multiple_commands-py
and save the file under the same name as on github: run_multiple_commands.py
Sublime - Preferences - Key Bindings User
code:
{
"keys": ["ctrl+enter"],
"command": "run_multiple_commands",
"args": {
"commands": [
{ "command": "repl_transfer_current", "args": {"scope": "lines"} },
{ "command": "move", "args": {"by": "lines", "forward": true} }
]
}
}
or additionally add [ ] if the file is empty:
[{
"keys": ["ctrl+enter"],
"command": "run_multiple_commands",
"args": {
"commands": [
{ "command": "repl_transfer_current", "args": {"scope": "lines"} },
{ "command": "move", "args": {"by": "lines", "forward": true} }
]
}
}]

Implement Vim-like imap mapping in sublime-text 3

I would like to have ; inserted at the end of line, when I press ;; while in insert mode. What would be mapping for that in sublime-text 3?
Somtehing like:
inoremap ;; <C-o>A;
in VIM.
So far, I managed to get to EOL I am currently on, but have no idea on how to chain other command to insert ;. I was not able to find anything in documentation on running multiple commands in sequence.
{
"keys": [";", ";"],
"command": "move_to", "args": { "to": "eol" }
}
As I wasn't able to find any native-to-editor solution to this,
luckily there is a plugin called Chain of Command
https://packagecontrol.io/packages/Chain%20of%20Command
Then you can put this into user keymap settings file:
{
"keys": [";", ";"],
"command": "chain",
"args": {
"commands": [
[ "move_to", { "to": "eol" }],
[ "insert", { "characters": ";" } ]
]
},
// with a help of this line, command won't get executed
// if in command_mode (vintage mode enabled), so it applies to insert mode
// only.
"context": [ { "key": "setting.command_mode", "operand": false } ]
}

Sublime Text 3: Switching 'ctrl+enter' and 'enter'

I realized I use 'ctrl+enter' a lot more than 'enter' in ST3. Would it be possible to switch these two commands?
I can easily switch 'ctrl+enter' to 'enter' with:
{ "keys": ["enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line.sublime-macro"} }
But I'm not sure how to switch 'enter' to 'ctrl+enter'. It seems that only the "auto-completion" functionality of 'enter' is defined in the default keymap.
{ "keys": ["enter"], "command": "commit_completion", "context":
[
{ "key": "auto_complete_visible" },
{ "key": "setting.auto_complete_commit_on_tab", "operand": false }
]
},
Any thoughts would be much appreciated!
PS. And if there was a way I could keep 'enter' to commit completion while also using it to skip to next line, that would be the icing on the cake.
Nevermind, I found it:
{ "keys": ["ctrl+enter"], "command": "insert", "args": {"characters": "\n"} },
That just leaves the question of how to continue to use 'enter' for auto-completion. If anyone has any ideas, I'd be curious to hear them!

sublime text 3 ctrl backspace doesn't work

sublime text 3 Ctrl+Backspace doesn't work
my sublime keymap like this but but still does not work
{ "keys": ["ctrl+backspace"], "command": "delete_word", "args": { "forward": false } },
if it dosen't work for you, you can still make your own shorcut : go to preferences>KeyBendings User and define your own : for example
[
{ "keys": ["f1"], "command": "delete_word", "args": { "forward": false } }
]

Resources