ChatGPT解决这个技术问题 Extra ChatGPT

Keyboard shortcut to comment lines in Sublime Text 3

In Sublime Text 2 it was possible to comment out a line or a block of lines with Ctrl+/ and Ctrl+Shift+/. According to the menu Edit > Comment these shortcuts should be valid, but in Sublime Text 3 (build 3047) they no longer seem to work. Does anybody know the right default keyboard shortcuts for Linux and MacOS? Or is it a bug?

Open the console (View->Show Console) and write this in it: sublime.log_commands(True) and press Ctrl+/ and Ctrl+Shift+/. What do you get in the console output?
Build 3049 has just been released on the dev channel. Try installing that and seeing if the issue has been fixed. And, BTW, on OSX it's Cmd-/, not Ctrl-/.
@dusan the console says command: move_to_group {"group": 6} for Ctrl+Shift+/ and command: focus_group {"group": 6} for Ctrl+/
I think this has been fixed in newer builds. Just dl'ed sublime 3 for Ubuntu 13.10 32 bit and control + / is still working the hot key for comments.

d
dusan

It seems a bug: http://www.sublimetext.com/forum/viewtopic.php?f=3&t=11157&start=0

As a workaround, go to Preferences->Key Bindings - User and add these keybindings (if you're using Linux):

{ "keys": ["ctrl+7"], "command": "toggle_comment", "args": { "block": false } },
{ "keys": ["ctrl+shift+7"], "command": "toggle_comment", "args": { "block": true } }

Update: This also works on Windows 8 (see @Sosi's comment)


Yes, it seems to be a bug, but the workaround does not work satisfactory, at least for Linux (Ubuntu).
If you do sublime.log_commands(True) again and press Ctrl+/ and Ctrl+Shift+/, do you still get the move_to_group and focus_group commands?
You are right, you get toggle_comment {"block": false} and toggle_comment {"block": true}. Somehow the block:true command irritated me, it does not seem to work well. The block:false command works as expected.
I would like to note that this also worked on Sublime 3 on Win8 ;) thanks!
toggle have some problems according to css,html,js
A
Alen Siljak

You can add the following lines to Preferences / Key Bindings - User:

{ "keys": ["control+keypad_divide"],"command": "toggle_comment", "args": {"block": false} }, 
{ "keys": ["shift+control+keypad_divide"],"command": "toggle_comment", "args": {"block": true}}

This is how I sorted the problem out - replacing "ctrl" with "control" and "/" with "keypad_divide".


I wonder how did you came up with the alternate control and keypad_divide?
Worked on Fedora 29, while ctrl and 7 did not.
This should be the accepted answer as it is not workaround
C
Community

This is a keyboard internationalisation issue.

https://i.stack.imgur.com/9lncc.png

https://i.stack.imgur.com/soXPB.png

Changing the user keybindings to those listed below, will work for the German QWERTZ keyboard.

{ "keys": ["ctrl+7"], "command": "toggle_comment", "args": { "block": false } },
{ "keys": ["ctrl+shift+7"], "command": "toggle_comment", "args": { "block": true } }

If the problems are occurring with still a different keyboard layout, change the keybindings accordingly.


Thanks - helped me to understand it complete!
M
Mwiza

U can fix this bug by:

[
   { "keys": ["ctrl+keypad_divide"], "command": "toggle_comment", "args": { "block": false } },
   { "keys": ["ctrl+shift+keypad_divide"], "command": "toggle_comment", "args": { "block": true } },
]

it allow to comment with CTRL+/ and CTRL+SHIFT+/ and u can use / on keypad =)


M
Mwiza

This worked for me.

cmd + /

I'm on Mac OS X El Capitan. Sublime Text 3 (stable build 3114).


F
Frank T

I'm under Linux too. For me, it only works when I press CTRL+SHIFT+/, and it's like a single comment, not a block comment. The reason is to acceed the / character, I have to press SHIFT, if I do not, sublime text detects that I pressed CTRL + :.

Here it is my solution to get back normal preferences. Write in Key Bindings - User :

{ "keys": ["ctrl+:"], "command": "toggle_comment", "args": { "block": false } }, { "keys": ["ctrl+shift+:"], "command": "toggle_comment", "args": { "block": true } }


A
Abhishek

On OSX Yosemite, I fixed this by going System Preferences, Keyboard, then Shortcuts. Under App Shortcuts, disable Show Help menu which was bound to CMD+SHIFT+7.

https://i.imgur.com/WxVUSCw.png

My keyboard layout is Norwegian, with English as the OS language.


This fix the problem for international keyboards on OSX
M
Mwiza

It's simpler than you think press cmd + / in mac.


M
Mwiza

For Brazilian ABNT Keyboards you do Ctrl + ; to comment and repeat it to remove the comment.


M
Mwiza

In my notebook keyboard, a ABNT 2, I can use the CTRL+; shortcut as the default comment action for blocks and lines. The same shortcut to uncomment.


Seems like the keyboard is not properly reconized. Strange that the "/"-key works normally when writing but not for the shortcut.
A
Agilanbu

Use Ctrl + / for single line comment and Ctrl + Alt + / for block or multiline comments.


M
Mr Coder

i am ubuntu 18 with sublime text 3.2

CTR + /


M
Mwiza

On MAC instead of shift use ALT like this CMD + ALT + /


J
Jabba

I prefer pressing Ctrl + / to (un)comment the current line. Plus, I want the cursor to move down one line, thus this way I can (un)comment several lines easily. If you install the "Chain of Command" plugin, you can combine these two operations:

[
    { 
        "keys": ["ctrl+keypad_divide"], 
        "command": "chain",
        "args": {
            "commands": [
                ["toggle_comment", { "block": false }],
                ["move", {"by": "lines", "forward": true}]
            ]
        }
    }
]

A
Adam Nelson

Make sure the file is a recognized type. I had a yaml file open (without the .yaml file extension) and Sublime Text recognized it as Plain Text. Plain Text has no comment method. Switching the file type to YAML made the comment shortcut work.


M
Mwiza

Had the same issue. Check with sublime.log_input(True) command on the console to see what keys are being detected with the CTRL+/ and SHIFT+CTRL+/ shorcuts. Then replace the shortcuts with those. (Changing / for keypad_divide worked for me)


a
alexander.polomodov

For me, on Mac OS Sierra :

{ "keys": ["super+forward_slash"], "command": "toggle_comment", "args": { "block": true } }, { "keys": ["super+alt+:"], "command": "toggle_comment", "args": { "block": false } },

S
Syscall

Sublime 3 for Windows: Add comment tags -> CTRL + SHIFT + ; The whole line becomes a comment line -> CTRL + ;


M
Marian Nasry

If the shortcut ctrl+?, ctrl+shift+? or ctrl+/ is not working, try switching to another, like ctrl+1, ctrl+shift+1, it worked for me.

{ "keys": ["ctrl+1"], "command": "toggle_comment", "args": { "block": false } }, { "keys": ["ctrl+shift+1"], "command": "toggle_comment", "args": { "block": true } }


A
Aerogirl

On my mac the shortcut is ⌘cmd + / which makes multi line comment but as single lines:

// if ($username && $password) {
//  echo "You are good to go";
// } else {
//  echo "Fields cannot be blank";
// }

OR

⌥ alt + ⌘cmd + / and it's result is overall comment, from beggining of the selection to the end.

/*
if ($username && $password) {
    echo "You are good to go";
} else {
    echo "Fields cannot be blank";
}
*/

R
RoboBear

In case anyone has had further issues with Sublime 3 on Windows 7, the above suggestions all did not work for me. However, when I 1 - reran the app as administrator and 2 - highlighted, and chose Edit -> Comment -> toggle comment, afterwards I was able to use a user preferences set keybinding to toggle comments. I don't really have an explanation for why it worked, except that it did.


M
Mwiza

Open sublime Text 3 and go to Preferences menu and the click on Key Bindings then paste this code to make a comment shortcut with CTRL+D.

[{ "keys": ["ctrl+d"],"command": "toggle_comment", "args": {"block": false}},]

then save it. now you can use shortcut.


a
adiga

On windows, use Ctrl + Shift + ?. You will be able to comment the HTML.


Z
Zarko Timarac

This worked just fine for me on Win 10:

    [{ "keys": ["ctrl+7"], "command": "toggle_comment", "args": { "block": false } },
{ "keys": ["ctrl+shift+7"], "command": "toggle_comment", "args": { "block": true } }
]

note that "[ ]" are nesassary and it will give you an error if you miss them.


t
timbocf

I might be late to the party but as of my build 3176 it appears the bug is fixed. Just used Ctrl+T and it worked for a CSS file (Kubuntu 18.10)


S
Stephen Rauch

In Windows use ctrl + shift + : to comment for Python.