问题标签 [sublime-text-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1171 浏览

encryption - 如何在 Sublime Text 中保存文件之前获取用户输入

我在 Sublime Text 中制作了一个插件,提示用户输入密码以在保存文件之前对其进行加密。在执行保存之前执行的 API 中有一个钩子,所以我的幼稚实现是:

问题在于,当用户输入密码的输入面板出现时,文档已经保存(尽管触发器是“on_pre_save”)。然后一旦用户点击enter,文档被很好地加密,但情况是有一个保存的明文文件,以及一个填充了加密文本的修改缓冲区。

所以我需要让 Sublime Text 等到用户输入密码后再进行保存。有没有办法做到这一点?

目前我只是在加密完成后手动重新保存:

但这很麻烦,如果用户取消加密,那么明文文件就会被保存,这并不理想。有什么想法吗?

编辑:我想我可以通过覆盖默认save命令来干净地做到这一点。on_text_command我希望通过使用or触发器来做到这一点on_window_command,但似乎该save命令不会触发其中任何一个(也许它是一个应用程序命令?但没有on_application_command)。有没有办法覆盖保存功能?

编辑:我最终只是覆盖了与 TextCommand 的默认键绑定,并且似乎没有问题。

0 投票
1 回答
473 浏览

python - 使用 bash -c 运行 osascript

我正在开发一个 Sublime Text 插件(Python),我有一些 shell 脚本是它的一部分。由于 Package Control 为您提供压缩包,因此这些脚本不能作为 zip 文件中的文件运行,因此我将它们存储为字符串并使用 subprocess.Popen 和 bash -c 运行它们。该脚本的 Mac 版本需要 osascript,我无法从字符串运行它。脚本的 osascript 部分如下(一切正常之前):

到目前为止,我已经成功地实现了第一个activate语句,osascript -e 'tell application "Terminal" to tell window 1 to activate';但是第二个语句给我带来了很多麻烦,主要是由于所有的引号。我一直在"""triple quote"""为我的字符串使用 Python 格式。我得到的最远是这样的

但我得到类似“83:87:语法错误:标识符不能在这个“”之后。(-2740)" 和其他同样非特定的错误。有谁知道格式化第二条语句以与 bash -c 一起使用的正确方法(或者更好的是,一种更简单的运行方法)?

0 投票
1 回答
162 浏览

sublime-text-plugin - 如何使用 SublimeLinter 的 cmd 属性

luacheck我正在编写一个用于我们使用的自定义语法的 SublimeLinter(一个 SublimeText 插件)插件。到目前为止,我已经简单地使用它cmd = 'luacheck @',当 SublimeLinter 调用时,@它显然被文件名替换luacheck。问题是,在“背景”模式下使用 SublimeLinter,警告在保存文件之前实际上不会更新,例如,如果我删除包含警告的行,警告仍然存在,只是突出显示一个空格(直到我保存, 那是)。我有一种感觉,这是因为我正在使用,@并且由于它被文件名替换,因此在文件luacheck更新之前不会更新。但是,关于 SublimeLinter 的文档cmd不是很好,而且我很难弄清楚如何正确地写一个。他们 GitHub 上的插件似乎也没有使用@. 如果我复制默认lua插件(使用cmd = 'luac -p * -')并使用cmd = 'luacheck * -',则luacheck执行但仅返回 I/O 错误。cmd有人可以提供更多关于 SublimeLinter属性如何工作的见解吗?

编辑:我能够通过使用tempfile_suffix = 'lua'in来解决这个问题linter.py。根据 SublimeLinter 文档,这用于不使用的 linter stdin,所以我想我的问题可能是 with luacheck

0 投票
1 回答
1286 浏览

python - Sublime Text:显示当前外部元素名称

例程很长,有时会丢失,知道光标当前位于哪个类/函数会很方便(无需一直向上滚动,寻找第一个外部块声明)。任何想法如何在 Sublime Text 3 中得到这个?

我最感兴趣的是 Python 的解决方案,但我想应该有一些通用的方法(插件?)来拥有它。例如,我可以想象将名称写在状态栏中。

0 投票
1 回答
2064 浏览

sublimetext2 - 我可以在 sublime 中创建自己的命令以及如何将 python 实现与该命令相关联吗?

深入了解我以前的问题为什么 Sublime Text 的这个热键配置不起作用?. 现在我来看看 sublime 命令的实现,破解 sublime 有什么命令确实是一种令人困惑的方式,因为在之前的线程中探索是为了找到用于打开浏览器的命令,最后我找到了它的帮助@MattDMo。

然后我发现Packages/Default文件夹中有一个名为open_in_browser.py的文件,我猜命令只是.py文件的文件名,但实际上我找不到对应的文件可以命名为find_pre.py来命令find_prev,然后我将 open_in_browser.py 复制为 open_browsers.py,并将{ "keys": ["ctrl+b"], "command": "open_browsers"}添加到 sublime 键盘映射,但它不起作用。然后我意识到应该有一些地方将sublime命令注册到它们的实现中,那么如果有这样的机制,它是什么?我在哪里可以找到它?

0 投票
0 回答
128 浏览

git - 设置 Sublime 以使用 git 别名

我正在使用 sublime 并希望对其进行设置,以便 Git 包“自定义命令”功能可以查看和使用我在 ~/.gitconfig 中设置的别名,该别名可在我的终端上运行。

在我的 .gitconfig 我定义了一个别名:

当我尝试在“Git:自定义命令”的命令输入提示中输入“打开”时,出现以下错误:

如何获得正确的功能?

0 投票
2 回答
1109 浏览

sublimetext - 使用 Emmet 反向扩展

我正在使用 Sublime Text 和 Emmet。如果有办法将一些 html 代码转换为 emmet 快捷方式,我正在徘徊?所以在其他意义上使用 Emmet。

我没有在网上找到任何东西。

所以从这个:

对此:

谢谢 :)

0 投票
1 回答
118 浏览

python - 无法让 Sublime Text 2 插件工作(不可思议的错误)

我刚刚通过包管理器安装了 ST2 和 CoffeeScript 插件,但是每个插件操作都会向控制台日志抛出以下问题:

我之前尝试过使用替代插件,但仍然发生相同的错误。为它挖掘网络,我看到其他不同的插件报告了这个错误,尽管没有一个帖子明确指出最终解决方案。

我以前做过这个,它确实有效,我最近对该系统所做的唯一更改是为 mac 创建一个新用户并卸载 ST2 以试用 ST3。在与版本 3 出现其他一些不兼容问题后,我再次将其降级到最新的 ST2 版本。

OSX Mavericks 在这里,运行 Python 2.7.5,而 ST2 似乎运行 2.6.8。我不了解 Python,也不知道这是否是问题的根源。我有点迷路了,有人能帮帮我吗?

非常感谢。

0 投票
1 回答
13354 浏览

php - Sublime 文本编辑器中的 PHP 语法检查

在 Gedit 中,我可以在当前文档上添加一个“php -l”的外部工具,如果我安装了 PHP 命令行,它将对文档进行语法检查。有没有办法用 Sublime Text Editor 做到这一点?(注意,我有一台 Mac,它安装了 PHP CLI。)

我想我必须将代码片段粘贴到 Sublime 插件中,对吧?

0 投票
1 回答
386 浏览

html - Sublime Text 的 CSS 样式属性自动完成插件

我需要在 html 中获取样式属性的完成。例如:

是否有任何可用的插件具有所描述的功能或任何其他替代方法?

任何帮助都会很棒。谢谢