python - sublime升级到3103后,python中的注释不起作用

标签 python sublimetext3

我刚刚升级到 Sublime 3103,现在评论快捷键 command+/ 不起作用。这很奇怪,因为它不仅仅在 Python 中工作。对于所有其他编程语言,它工作得很好。

我尝试为评论设置自定义键绑定(bind),但又出现了同样的问题。除了 python 之外,在其他任何地方都可以工作。

可能是什么问题?

最佳答案

我也无法重现此问题,但这里有一种解决方法。转至首选项 → 浏览包... 以打开操作系统文件管理器中的Packages 文件夹。创建一个名为 Python 的新文件夹,并在该新文件夹中创建一个名为 Comments.tmPreferences 的空文件(大小写很重要)。接下来,在 Sublime 中打开带有 XML 语法突出显示的新文件,并添加以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//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>
        </array>
    </dict>
    <key>uuid</key>
    <string>6550FEAD-D547-44E4-84F7-7D421D6078B0</string>
</dict>
</plist>

保存文件,它应该立即生效。

<小时/>

这是通过明确告诉 Sublime 使用某种模式进行注释来实现的。 .tmPreferences 扩展名来自 TextMate ,一个非常好的 OS X 编辑器,Jon Skinner 在编写 Sublime 时将其作为他的灵感之一(与 vi 一起)。 (顺便说一句,如果您使用的是 OS X,请查看 TextMate 2 - 它是开源的,并且有很多简洁的功能。不过,插件社区要小得多......)

如您所见,该文件是基于 XML 的,并定义了一个名为 TM_COMMENT_STARTshellVariable(同样,TM 来自 TextMate ),在内部使用来划分单行注释。根据 scope 值,Comments.tmPreferences 文件可用于您希望的任何语言。如果您的编程语言还具有 block 注释构造以及单行注释,则可以使用 TM_COMMENT_START_2TM_COMMENT_END_2 进行定义,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//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_START_2</string>
                <key>value</key>
                <string>"""</string>
            </dict>
            <dict>
                <key>name</key>
                <string>TM_COMMENT_END_2</string>
                <key>value</key>
                <string>"""</string>
            </dict>
        </array>
    </dict>
    <key>uuid</key>
    <string>6550FEAD-D547-44E4-84F7-7D421D6078B0</string>
</dict>
</plist>

这里,我们仍然使用 Python,但我们使用三引号来定义 block 注释或文档字符串。只需突出显示要用三引号括起来的区域,然后按 Shift/ (CtrlShift /(在 Windows/Linux 上)。

关于python - sublime升级到3103后,python中的注释不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35390050/

相关文章:

sublimetext - 按字母顺序对侧边栏中的 "Open Files"进行排序?

bash - 输出 : No value for $TERM and no -T specified in Sublime Text 3

html - sublime 3 在自动完成上添加了额外的尖括号

python - Pandas - 距行 X 分钟内的日期时间

python - 更新具有不同 id 的所有字典值

python - python中数组之间的插值

javascript - 如何缩小选定的样式?

python - python 中的 OpenGL 因 glCheckError 调用而变慢

python - 将二维数组乘以一维数组

build - Sublime Text 构建系统如何访问缓冲区的内容,而不是文件?