Sublime - 将 # 放在行首而不是注释时代码的开头

Sublime - put # at the start of a line rather the start of the code when comment

当通过 super+/ 向 Python 插入评论时,它会将 # 放在代码的开头,如下所示:

我想把 # 放在一行的开头,像这样:

是否有允许我执行此操作的设置?

在 Sublime 中使用 XML 语法创建一个新文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>name</key>
    <string>Comments</string>
    <key>scope</key>
    <string>source.python</string>
    <key>settings</key>
    <dict>
        <key>shellVariables</key>
        <array>
            <dict>
                <key>name</key>
                <string>TM_COMMENT_START</string>
                <key>value</key>
                <string># </string>
            </dict>
            <dict>
                <key>name</key>
                <string>TM_COMMENT_DISABLE_INDENT</string>
                <key>value</key>
                <string>yes</string>
            </dict>
        </array>
    </dict>
    <key>uuid</key>
    <string>52CBA191-8A6C-4A04-8F2F-0D1642AE10F2</string>
</dict>
</plist>

您需要将此文件保存在您的 Packages 目录中,该目录可以通过选择 Preferences -> Browse Packages... 在您的计算机上找到。找到它后,返回 Sublime 并将文件另存为 Packages/Python/Comments.tmPreferences。对于 Sublime Text 2,Python 目录已经存在,但对于 ST3,您必须先创建它。

文件的工作方式非常简单。 TM_COMMENT_START 值告诉 Sublime 为评论插入哪些字符 - 在本例中是一个井号后跟 space。 TM_COMMENT_DISABLE_INDENT 值表示 Sublime 应该在行首插入注释(yes),还是在文本前面(no,默认行为)。请注意,您可能需要重新启动 Sublime 才能使更改生效。

除了@MattDMo 的有用答案之外,您还可以考虑使用宏。例如,如果您希望保留默认的评论功能,但又希望能够以您描述的方式发表评论,这可能会有所帮助。此外,这种创建宏和键绑定的通用方法可扩展到您可能想要使用的许多自定义功能。

创建它 - Packages/User/some_filename.sublime-macro

[
  {"command": "split_selection_into_lines"},
  {"command": "move_to", "args": {"to": "bol", "extend": false} },
  {"command": "clear_fields"},
  {"command": "move_to", "args": {"to": "bol", "extend": false} },
  {"command": "insert", "args": {"characters": "#"}},
  {"command": "single_selection"}
]

并通过向用户的 .sublime-keymap 文件添加键绑定来调用它:

{
    "keys": ["super+shift+/"], "command": "run_macro_file", 
            "args": {"file": "Packages/User/some_filename.sublime-macro"}
}